SlideShare ist ein Scribd-Unternehmen logo
1 von 28
20. 9. 2016
Cesta změněného
řádku kódu do produkce
Michal Petřík, Head of Software Development
2
Co nás čeká a nemine
› Co je DevOps?
› DevOps a architektura
› Ideální podoba DevOps
› Případové studie
› Diskuze
Co je DevOps
4
Co je DevOps?
› Development & Operations
5
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 letPočátek devadesátých let
6
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
MonitoringPlanning
bug = false;
7
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
8
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
DevOps a architektura
(aneb... ale u nás by to nešlo)
10
DevOps a architektura
Velmi často pracujeme s tímto:
...a good old Monolith
11
DevOps a architektura
Raději bychom možná ale pracovali s tímto:
... brand new cool Microservices
12
DevOps a architektura
Ve spojení s DevOps lze aplikovat tzv. „Strangler Pattern“
Abstrakce
Uživatel
Abstrakce
Uživatel
Abstrakce
Uživatel
Abstrakce
Uživatel
13
DevOps a architektura
Změna architektury jde ruku v ruce s release cyklem
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
14
DevOps a architektura
› Stejně jako u změny architektury lze DevOps zavádět postupně
› Postupovat lze „z obou stran“
– Ze strany vývoje například ve formě automatického buildu, unit testů, ...
– Ze strany automatizace nasazení na prostředí, apod.
› Je vhodné zvolit identifikovat oblasti, ve kterých změna nejvíce
prospěje
– Předpokládá sběr a vyhodnocování správných metrik, například zdroje chyb,
důvody odstávek  monitoring
15
DevOps a architektura
Ideální podoba
Ideální podoba cesty jednoho řádku kódu
ReleaseTest DeployIntegrate OperateCode Build
Agilní vývoj
Continuous Integration
Continuous Delivery
Continuous Deployment
DevOps
Ideální podoba cesty jednoho řádku kódu
Vývojář VCS Continuous
Integration
Quality Gate Test Env.
xStage Env.
Production
Monitoring & Planning
Testing
Ideální podoba cesty jednoho řádku kódu
Případové studie
21
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
22
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 20162003
Jenkins CI, Selenium IDE, SonarQube
23
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
24
Insurance Core System – zajímavé oblasti
Deployment pipeline
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
27
Shrnutí
› Pomocí aplikace postupných změn je dosaženo Continuous Delivery
› DevOps na úrovni interního týmu
› Jsou použity výhradně OpenSource/volně dostupné nástroje
› Když není k dispozici hotové řešení  vlastní microskripty/pluginy
› Nic ale není černobílé
› Velmi těžko dosažitelné bez „týmového nadšení“
28
Diskuze
Profinit, s.r.o.
Tychonova 2, 160 00 Praha 6
Telefon
+ 420 224 316 016
Web
www.profinit.eu
LinkedIn
linkedin.com/company/profinit
Twitter
twitter.com/Profinit_EU
Děkujeme
za pozornost

Weitere ähnliche Inhalte

Ähnlich wie Odborná snídaně 20.9. - Agile@DevOps - 2. část

20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
Jiří Mareš
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
Premek Brada
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra
Jiří Mareš
 
Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011
Jan Mittner
 

Ähnlich wie Odborná snídaně 20.9. - Agile@DevOps - 2. část (20)

Jira DevOps Cloud
Jira DevOps CloudJira DevOps Cloud
Jira DevOps Cloud
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
 
Funkční testování – chybějící vrchol pyramidy (WebExpo 2016)
Funkční testování – chybějící vrchol pyramidy (WebExpo 2016)Funkční testování – chybějící vrchol pyramidy (WebExpo 2016)
Funkční testování – chybějící vrchol pyramidy (WebExpo 2016)
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
Migrace do Data Centra
Migrace do Data CentraMigrace do Data Centra
Migrace do Data Centra
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra
 
CSAS_v06
CSAS_v06CSAS_v06
CSAS_v06
 
Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011
 
VersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeVersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépe
 
ASP.NET MVC a TDD
ASP.NET MVC a TDDASP.NET MVC a TDD
ASP.NET MVC a TDD
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
Odborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileOdborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum Mobile
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
Přechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchPřechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítích
 
Bezbolestné testování v Ruby on Rals
Bezbolestné testování v Ruby on RalsBezbolestné testování v Ruby on Rals
Bezbolestné testování v Ruby on Rals
 

Mehr von Profinit

Mehr von Profinit (20)

Reference Data Management
Reference Data ManagementReference Data Management
Reference Data Management
 
Cloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudCloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloud
 
Building big data pipelines—lessons learned
Building big data pipelines—lessons learnedBuilding big data pipelines—lessons learned
Building big data pipelines—lessons learned
 
Understand your data dependencies – Key enabler to efficient modernisation
 Understand your data dependencies – Key enabler to efficient modernisation  Understand your data dependencies – Key enabler to efficient modernisation
Understand your data dependencies – Key enabler to efficient modernisation
 
Propensity Modelling for Banks
Propensity Modelling for BanksPropensity Modelling for Banks
Propensity Modelling for Banks
 
Legacy systems modernisation
Legacy systems modernisationLegacy systems modernisation
Legacy systems modernisation
 
Automating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresAutomating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data Stores
 
4 Steps Towards Data Transparency
4 Steps Towards Data Transparency4 Steps Towards Data Transparency
4 Steps Towards Data Transparency
 
Software systems modernisation
Software systems modernisationSoftware systems modernisation
Software systems modernisation
 
Data Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduData Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí cloudu
 
Detekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléDetekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přátelé
 
Výsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluVýsledky backtestu propensitního modelu
Výsledky backtestu propensitního modelu
 
Propensitní modelování
Propensitní modelováníPropensitní modelování
Propensitní modelování
 
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
 
Profinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit webinar: Instalment Detector
Profinit webinar: Instalment Detector
 
Profinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publish
 
2019 09-23-snidane qa-public
2019 09-23-snidane qa-public2019 09-23-snidane qa-public
2019 09-23-snidane qa-public
 
2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne
 
Matedatový sklad
Matedatový skladMatedatový sklad
Matedatový sklad
 
Projekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProjekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza Coinmate
 

Odborná snídaně 20.9. - Agile@DevOps - 2. část

  • 1. 20. 9. 2016 Cesta změněného řádku kódu do produkce Michal Petřík, Head of Software Development
  • 2. 2 Co nás čeká a nemine › Co je DevOps? › DevOps a architektura › Ideální podoba DevOps › Případové studie › Diskuze
  • 4. 4 Co je DevOps? › Development & Operations
  • 5. 5 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 letPočátek devadesátých let
  • 6. 6 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 MonitoringPlanning bug = false;
  • 7. 7 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
  • 8. 8 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
  • 9. DevOps a architektura (aneb... ale u nás by to nešlo)
  • 10. 10 DevOps a architektura Velmi často pracujeme s tímto: ...a good old Monolith
  • 11. 11 DevOps a architektura Raději bychom možná ale pracovali s tímto: ... brand new cool Microservices
  • 12. 12 DevOps a architektura Ve spojení s DevOps lze aplikovat tzv. „Strangler Pattern“ Abstrakce Uživatel Abstrakce Uživatel Abstrakce Uživatel Abstrakce Uživatel
  • 13. 13 DevOps a architektura Změna architektury jde ruku v ruce s release cyklem Build Test Release Build Test Release Build Test Release Build Test Release Build Test Release
  • 14. 14 DevOps a architektura › Stejně jako u změny architektury lze DevOps zavádět postupně › Postupovat lze „z obou stran“ – Ze strany vývoje například ve formě automatického buildu, unit testů, ... – Ze strany automatizace nasazení na prostředí, apod. › Je vhodné zvolit identifikovat oblasti, ve kterých změna nejvíce prospěje – Předpokládá sběr a vyhodnocování správných metrik, například zdroje chyb, důvody odstávek  monitoring
  • 17. Ideální podoba cesty jednoho řádku kódu ReleaseTest DeployIntegrate OperateCode Build Agilní vývoj Continuous Integration Continuous Delivery Continuous Deployment DevOps
  • 18. Ideální podoba cesty jednoho řádku kódu Vývojář VCS Continuous Integration Quality Gate Test Env. xStage Env. Production Monitoring & Planning Testing
  • 19. Ideální podoba cesty jednoho řádku kódu
  • 21. 21 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
  • 22. 22 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 20162003 Jenkins CI, Selenium IDE, SonarQube
  • 23. 23 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
  • 24. 24 Insurance Core System – zajímavé oblasti Deployment pipeline
  • 25. 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
  • 26. 27 Shrnutí › Pomocí aplikace postupných změn je dosaženo Continuous Delivery › DevOps na úrovni interního týmu › Jsou použity výhradně OpenSource/volně dostupné nástroje › Když není k dispozici hotové řešení  vlastní microskripty/pluginy › Nic ale není černobílé › Velmi těžko dosažitelné bez „týmového nadšení“
  • 28. Profinit, s.r.o. Tychonova 2, 160 00 Praha 6 Telefon + 420 224 316 016 Web www.profinit.eu LinkedIn linkedin.com/company/profinit Twitter twitter.com/Profinit_EU Děkujeme za pozornost