development environment build process...
TRANSCRIPT
![Page 1: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/1.jpg)
Development environment
Build process
DevOps
Tomáš Krátký, Bohumír Zoubek
![Page 2: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/2.jpg)
Softwarový proces
?
?
?
![Page 3: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/3.jpg)
Softwarový proces
Převzato z http://csse.usc.edu/csse/research/CORADMO/
![Page 4: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/4.jpg)
Vývojové prostředí
![Page 5: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/5.jpg)
Motivace
o Váš systém je určen pro cílové prostředí u zákazníka, ale …
– musíte ho někde vyvíjet a testovat,
– zákazník ho musí někde před nasazením do produkce akceptačně otestovat,
– zákazník může mít více produkčních prostředí
…
Je nezbytná existence dalších prostředí
mimo cílové !
Typy prostředí
o vývojová,
o integrační,
o testovací,
o předakceptační,
o akceptační,
o produkční #1,
o produkční #2,
o …
![Page 6: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/6.jpg)
Continuous Integration
Vývojová
platforma
Integrační
platforma
Testovací
platforma
SCM
Lokální vývoj
Pravidelný
commit
Pravidelný
build
Smoke testing, Continuous Integration
dodávka
Povinná sada testů
(krátké a rychlé) Všechny automatické
testy
Regresní testy
(automatické a manuální)
Výkonové a jiné
nefunkční testy,
manuální testy
![Page 7: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/7.jpg)
Dílčí úkoly
o všechny typy konfiguračních jednotek
o zálohy a jejich obnova
o evidence a zálohy (podpůrného) SW
o dodávky ("malé"/ "velké")
o postupy (instalace, modifikace, přístupy ...)
o záloha použitých zdrojových kódů
o zdrojové kódy použitých knihoven
o audit, ...
![Page 8: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/8.jpg)
Přestanou-li existovat sdílené
disky, repository, PC lidí na
projektu, vývojové prostředí, pak …
ze záloh je možno postavit
vývojové prostředí …
a to ekonomicky.
![Page 9: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/9.jpg)
Build proces
![Page 10: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/10.jpg)
Souvislost s CM
![Page 11: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/11.jpg)
Co musím umět
o Vyrobit dodávku
o Nainstalovat dodávku
o Připravit dodávku pro instalaci zákazníkem
o Dodat systém jako celek
o Opravit malou drobnost
…a opravit ji rychle a ekonomicky …
o Poradit si s různými typy prostředí
– aplikační server, databázový a replikační server, operační systém, …
o …
![Page 12: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/12.jpg)
Podstatné pojmy
o Release (Build)
o Oprava buildu (patch)
o Dodávka
– Malá
– Velká
o Instalační set
– En-bloc
– Inkrementální
![Page 13: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/13.jpg)
Poznatky z praxe
![Page 14: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/14.jpg)
Poznatky z praxe
o Maximálně věrné prostředí vývojové, testovací, akceptační, …
o Denní build
o Proces dodávek
– jednoduchý
– automatizovaný
o Kontrolované
– zálohovací logy
– reporty automatických testů
![Page 15: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/15.jpg)
DevOps
![Page 16: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/16.jpg)
17
Co je DevOps?
› Development & Operations
![Page 17: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/17.jpg)
18
Přelom století
Co je DevOps?
Daily Build
Compile & Assemble
Smoke test
Continuous Integration
Build & Test
Every Commit
Static Analysis
Continuous Delivery
Continous integration
Provisioning
Configuration management
Deployment
Konec devadesátých let Počátek devadesátých let
![Page 18: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/18.jpg)
19
Co je DevOps?
› Forma vývojového cyklu
– Každý krok je maximálně automatizován
– Vše je verzováno a testováno (nejen kód, ale i model databáze, data, ...)
– Na všechna prostředí se používá jeden unifikovaný proces
– Celý cyklus řešen formou malých kroků Deployment Pipeline
– Rychlá a maximální zpětná vazba
– podporuje Agilní vývoj (Agile bez DevOps lze jen obtížně realizovat)
› Je nutná odpovídající kultura ve vývojovém týmu
Inspirováno http://www.slideshare.net/AmazonWebServices/dvo202-devops-at-amazon-a-look-at-our-tools-processes
bug = true;
Vývojáři Zákazník
Build Test Release
Monitoring Planning
bug = false;
![Page 19: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/19.jpg)
20
Co je DevOps?
Efektivní využití nástrojů
› Version Control
› Provisioning
› Configuration Management
› Build Automation
› Artifact Repository
› Static Analysis
› Automated Testing
› Test Data
› Continuous Integration
and Delivery
› System Monitoring & Analytics
› ... a vůle zlepšovat
![Page 20: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/20.jpg)
21
Hlavní přínosy
› Snížení TTM business požadavků
› Snížení množství chyb se současným zvýšení rychlosti jejich oprav
› Snížení nákladů na zdroje (development i operations)
› Jednodušší zapojení nových lidí do týmu
– silná zpětná vazba
– tzv. Self-service
› Možnost „bezpečného experimentování“
Trvání
cyklu
Důvěra
v dodávku
Náklady Schopnost
experimentovat
Trvání
cyklu
Důvěra
v dodávku
Náklady Schopnost
experimentovat
![Page 21: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/21.jpg)
22
Insurance Core System
› Systém pro komplexní správu neživotního pojištění
› Technologie:
– Java 7
– Sybase ASE 15.7 a ASA 11
– Struts, jQuery
– JBoss/Tomcat
› Jeden kód je použit pro tvorbu webové i offline aplikace
› Sada nástrojů
– SVN
– Apache Ant
– Liquibase
– Jenkins
– Groovy/Bash
– jUnit, SonarQube
– Selenium / BrowserStack
– Membrane Proxy, SoapUI
![Page 22: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/22.jpg)
23
Insurance Core System
2004
BrowserStack,
Liquibase
CVS SVN, Groovy
Deployment
Pipeline
CVS, Ant, jUnit, Perl, Bash
Cruise control CI, HTML Unit, CheckStyle
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2003
Jenkins CI, Selenium IDE, SonarQube
![Page 23: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/23.jpg)
24
Insurance Core System – zajímavé oblasti
Deployment pipeline
› Postupná evoluce z Perl/Bash skriptů po jednotlivých oblastech
› V současné době využívá Groovy a vlastní DSL
› Každá oblast má svůj vlastní job (build, unit test, stat. analýza, ...)
› Funguje na bázi Self-service
![Page 24: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/24.jpg)
25
Insurance Core System – zajímavé oblasti
Verzování databázového modelu
› Použití nástroje Liquibase
– Podpora verzování ve větvích a možnosti slučování změn
– Abstrakce změn (zápis v XML, YAML, JSON nebo native SQL)
– Možnost nastavení logiky dle kontextů write once deploy anywhere
– Možnost rozšiřitelnosti o vlastní pluginy (například generování rollback,
auditačních triggerů, ....)
› Implementace přístupem: „od teď“ (oproti „od nuly“)
› nový přístup k vývoji v DB:
– Jednoduchá aktualizace lokálních databází
– Integrační databáze slouží výhradně k integraci
![Page 25: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/25.jpg)
26
Diskuze
![Page 26: Development environment Build process DevOpsprofinit.eu/wp-content/uploads/2016/12/08_DevEnvBuild... · 2016-12-27 · 25 Insurance Core System – zajímavé oblasti Verzování](https://reader034.vdocuments.site/reader034/viewer/2022042309/5ed6ee21ff4a11075f7710f5/html5/thumbnails/26.jpg)
Profinit, s.r.o.
Tychonova 2, 160 00 Praha 6
Telefon
+ 420 224 316 016
Web
www.profinit.eu
linkedin.com/company/profinit
twitter.com/Profinit_EU
Děkujeme
za pozornost