Continuous delivery: cél a működő szoftver Visual Studio 4/16/2017 Application Lifecycle Management konferencia Continuous delivery: cél a működő szoftver Csutorás Zoltán, Novák István, Farkas Bálint, Érsek Attila, Kőnig Tibor © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Kódépítés: kész termék minden pillanatban 4/16/2017 Kódépítés: kész termék minden pillanatban Érsek Attila, Novák István © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Folyamatos integráció Tesztek Bot és ágak Miről lesz szó?
A halogatás művészete A szoftverfejlesztésnek szerves része a tesztelés és a visszajelzés. A fejlesztőknek a halogatás. Mik a tipikus formái a halogatásnak? „Code Freeze” / „Check-In Stop” Waterfall, vagy újabban: „Scrumfall” Késői integráció, elkésett tesztelés A fejlesztési folyamatnak nem része a visszajelzés a kihelyezés és konfiguráció
Az utolsó előtti pillanat is mindig túl késő! http://www.reddit.com/r/ProgrammerHumor/
A folyamatos integráció pillérei „Tedd vagy ne tedd, de ne próbáld!” - Yoda Közös kód forrás Automatizált kódépítés Öntesztelő Build folyamat Hibák azonnali javítása Gyors Build Tesztelés valódi környezetben Átláthatóság Automatizált kihelyezés
A Build automatizálás segít megválaszolni a nehéz kérdéseket Lesz termék a kódunkból? Időben vagyunk-e? Megfelelő minőséget állítunk ellő? Az automatikus buildek adják a csapat pulzusát!
A folyamatos áramlás csapat felelősség Gyakori hibák Készlet halmozás Félkész feature Teszteletlen kód Automatizálás hiánya Felelősség hiánya http://devopsreactions.tumblr.com/
Folyamatos integráció Több mint az eszközök összessége, sokkal inkább: Csapat habitus és együttműködés Gördülékeny folyamatok alkalmazása Törekedés a mindig értékes állapotra Igény a jobb minőségre
Demo Younderwater Build-ek Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
A tesztelés helye a kódépítésben Tesztek típusa: Unit Integrációs Smoke Manuális …… (whatevr) Tesztek valódi típusai: gyors / lassú egyszerű / komplex pozitív / negatív A tesztelés a fejlesztőknél kezdődik!
Think, Red, Green, Refactor, Repeat #1 Gondolkozz, hogy milyen teszt a legjobb lépés a kódod késszé válásához #2 Írj egy pár tesztet, amennyit még átlátsz. #3 Módosítsd a kódod, hogy a tesztek sikeresek legyenek #4 Most már bátran refaktorálhatsz #5 if(!Developer.Instance.Tired) continue;
Behavior Driven Development Feature: DiveLog As a scuba diver or a diver-to-be I want to log my dives @divelogentry Scenario: Registering a divelog with illegal data Given the user has entered the following values: | BottomTime | Comment | Date | DiveSite | Location | MaxDepth | | 20 | "test" | "2012.01.01" | "test" | "test" | 101 | When the user press save Then the user is presented with an error message
Demo Tesztelés Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Decentralizált Attila subteam fetch subteam fetch Bálint subteam fetch István
Decentralizált és mégis centralizált Attila subteam fetch Bálint remote origin István
Branch kezelés alapjai origin/master master A B C I’ll use the orange box to indicate where the master pointer is on the remote server. Here we are as before with our local master branch and the remote master branch both pointing at (A) bugfix-1 git branch bugfix-1 git checkout bugfix-1 git commit (*2) git push origin bugfix-1
Branch kezelés alapjai origin/master master origin/master A D B C But in fact there are two versions of the orange master pointer. One is what we last know about the upstream master and the other is what is actually up there (which we don’t know about). bugfix-1
Branch kezelés alapjai origin/master master A D B C But in fact there are two versions of the orange master pointer. One is what we last know about the upstream master and the other is what is actually up there (which we don’t know about). bugfix-1 git checkout master git pull origin
Branch kezelés alapjai Merge flow? vagy Rebase flow?
Branch kezelés alapjai – Merge flow origin/master master A D E B C But in fact there are two versions of the orange master pointer. One is what we last know about the upstream master and the other is what is actually up there (which we don’t know about). bugfix-1 git checkout master git merge bugfix-1 git push origin
Branch kezelés alapjai – Rebase flow origin/master master A B C D’ bugfix-1 But in fact there are two versions of the orange master pointer. One is what we last know about the upstream master and the other is what is actually up there (which we don’t know about). origin/bugfix-1 git checkout master git rebase bugfix-1 git push origin
Demo Pull Request Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
A szoftver kibocsátása: automatizált és ellenőrzött folyamat 4/16/2017 A szoftver kibocsátása: automatizált és ellenőrzött folyamat Érsek Attila © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Tematika Agilis szoftver kibocsátás Környezetek könnyedén Automatizálj! Ellenőrzött folyamatok
A release folyamat tipikus problémái Szoftver verzió kihelyezése manuálisan Valós környezetbe való kihelyezés csak a fejlesztés végén A környezet és szoftver konfigurációja nem része a kihelyezésnek
A gyakorlás az út a tökéletességhez Az agilis út Minden változásról visszajelzés kell A visszajelzések a lehető leghamarabb meg kell hogy érkezzenek A visszajelzésekre reagálni kell Csapatok erősítése Hibák csökkentése Nincs „Release stressz” Rugalmasság A gyakorlás az út a tökéletességhez
A Younderwater környezetek Dev Quality Assurance Production
Demo A Younderwater környezet Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
A DevOps alapok Younderwater App 2) Code Repository 1) Develop 3) Build 4) Test 5) Deploy Younderwater App Azure 6) Monitor and Improve
Sprint Sprint Automatizálj! Operate Define Fejlesztés Felügyelet Visual Studio 2012 4/16/2017 PRODUCT BACKLOG RELEASE PIPELINE Sprint Felügyelet Define Deliver Operate Fejlesztés Sprint CUSTOMERS Leszállítás Automatizálj! Kaotikus Komplex Hiba érzékeny © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Hogyan működik? (IaaS) TFS RM Web RM Desktop DEV RM Server QA Visual Studio 2012 4/16/2017 Hogyan működik? (IaaS) RM Web RM Desktop DEV TFS Drop Location RM Server QA © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Hogyan működik? (PaaS) PaaS TFS RM Web RM Desktop DEV RM Server / Visual Studio 2012 4/16/2017 Hogyan működik? (PaaS) RM Web RM Desktop PaaS DEV TFS Drop Location RM Server / RM Online Proxy QA © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Kódépítés és kibocsátás Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Automatizált kibocsátás Visual Studio 2012 4/16/2017 Automatizált kibocsátás Teljes követhetőség Felügyelt és jóváhagyott folyamatok Egyformán, megismételhetően Minden környezetre DEV QA PROD TFS © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
A kibocsátás folyamata Jóváhagyási folyamat Minden része felügyelt Jóváhagyás Értesítések Manuális tesztek Tesztek Automata tesztek Teszt adatok Konfiguráció App Telepítés Konfiguáricó Infra Létrehozás
A pár dolog, amire emlékezz Alkalmazás életciklusnak része a kibocsátás Az automatizált folyamatok a barátaid Deklaratív kibocsátási folyamat és konfiguráció kezelés Egy kattintásos kihelyezés bármilyen környezetbe Egységes menedzsment réteg A megszokott eszközökkel és módszerekkel, függetlenül attól, hogy mit használsz
Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.