Develpment envirnment Build prcess DevOps Tmáš Krátký, Bhumír Zubek
Sftwarvý prces???
Sftwarvý prces Převzat z http://csse.usc.edu/csse/research/coradmo/
Vývjvé prstředí
Mtivace Váš systém je určen pr cílvé prstředí u zákazníka, ale musíte h někde vyvíjet a testvat, zákazník h musí někde před nasazením d prdukce akceptačně testvat, zákazník může mít více prdukčních prstředí Je nezbytná existence dalších prstředí mim cílvé! Typy prstředí vývjvá, integrační, testvací, předakceptační, akceptační, prdukční #1, prdukční #2,
Cntinuus Integratin Smke testing, Cntinuus Integratin Vývjvá platfrma SCM Integrační platfrma Pravidelný cmmit Pravidelný build Lkální vývj Pvinná sada testů (krátké a rychlé) Všechny autmatické testy Regresní testy (autmatické a manuální) Výknvé a jiné nefunkční testy, manuální testy ddávka Testvací platfrma
Dílčí úkly všechny typy knfiguračních jedntek zálhy a jejich bnva evidence a zálhy (pdpůrnéh) SW ddávky ("malé"/ "velké") pstupy (instalace, mdifikace, přístupy...) zálha pužitých zdrjvých kódů zdrjvé kódy pužitých knihven audit,...
Přestanu-li existvat sdílené disky, repsitry, PC lidí na prjektu, vývjvé prstředí, pak ze zálh je mžn pstavit vývjvé prstředí a t eknmicky.
Build prces
Suvislst s CM
C musím umět Vyrbit ddávku Nainstalvat ddávku Připravit ddávku pr instalaci zákazníkem Ddat systém jak celek Opravit malu drbnst a pravit ji rychle a eknmicky Pradit si s různými typy prstředí aplikační server, databázvý a replikační server, perační systém,
Pdstatné pjmy Release (Build) Oprava buildu (patch) Ddávka Malá Velká Instalační set En-blc Inkrementální
Pznatky z praxe
Pznatky z praxe Maximálně věrné prstředí vývjvé, testvací, akceptační, Denní build Prces ddávek jednduchý autmatizvaný Kntrlvané zálhvací lgy reprty autmatických testů
DevOps
C je DevOps? Develpment & Operatins 17
C je DevOps? Daily Build Cmpile & Assemble Smke test Cntinuus Integratin Build & Test Every Cmmit Static Analysis Cntinuus Delivery Cntinus integratin Prvisining Cnfiguratin management Deplyment Pčátek devadesátých let Knec devadesátých let Přelm stletí 18
C je DevOps? Frma vývjvéh cyklu Každý krk je maximálně autmatizván Vše je verzván a testván (nejen kód, ale i mdel databáze, data,...) Na všechna prstředí se pužívá jeden unifikvaný prces Celý cyklus řešen frmu malých krků Deplyment Pipeline Rychlá a maximální zpětná vazba pdpruje Agilní vývj (Agile bez DevOps lze jen btížně realizvat) bug = false; true; Build Test Release Vývjáři Planning Mnitring Zákazník Je nutná dpvídající kultura ve vývjvém týmu Inspirván http://www.slideshare.net/amaznwebservices/dv202-devps-at-amazn-a-lk-at-ur-tls-prcesses 19
C je DevOps? Efektivní využití nástrjů Versin Cntrl Prvisining Cnfiguratin Management Build Autmatin Artifact Repsitry Static Analysis Autmated Testing Test Data Cntinuus Integratin and Delivery System Mnitring & Analytics... a vůle zlepšvat 20
Hlavní přínsy Snížení TTM business pžadavků Snížení mnžství chyb se sučasným zvýšení rychlsti jejich prav Snížení nákladů na zdrje (develpment i peratins) Jedndušší zapjení nvých lidí d týmu silná zpětná vazba tzv. Self-service Mžnst bezpečnéh experimentvání Trvání cyklu Důvěra v ddávku Náklady Schpnst experimentvat 21
Insurance Cre System Systém pr kmplexní správu neživtníh pjištění Technlgie: Java 7 Sybase ASE 15.7 a ASA 11 Struts, jquery JBss/Tmcat Jeden kód je pužit pr tvrbu webvé i ffline aplikace Sada nástrjů SVN Apache Ant Liquibase Jenkins Grvy/Bash junit, SnarQube Selenium / BrwserStack Membrane Prxy, SapUI 22
Insurance Cre System BrwserStack, Liquibase Deplyment Pipeline CVS SVN, Grvy Jenkins CI, Selenium IDE, SnarQube Cruise cntrl CI, HTML Unit, CheckStyle CVS, Ant, junit, Perl, Bash 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 23
Insurance Cre System zajímavé blasti Deplyment pipeline Pstupná evluce z Perl/Bash skriptů p jedntlivých blastech V sučasné dbě využívá Grvy a vlastní DSL Každá blast má svůj vlastní jb (build, unit test, stat. analýza,...) Funguje na bázi Self-service 24
Insurance Cre System zajímavé blasti Verzvání databázvéh mdelu Pužití nástrje Liquibase Pdpra verzvání ve větvích a mžnsti slučvání změn Abstrakce změn (zápis v XML, YAML, JSON neb native SQL) Mžnst nastavení lgiky dle kntextů write nce deply anywhere Mžnst rzšiřitelnsti vlastní pluginy (například genervání rllback, auditačních triggerů,...) Implementace přístupem: d teď (prti d nuly ) nvý přístup k vývji v DB: Jednduchá aktualizace lkálních databází Integrační databáze služí výhradně k integraci 25
Diskuze 26
Děkujeme za pzrnst Prfinit, s.r.. Tychnva 2, 160 00 Praha 6 Telefn + 420 224 316 016 Web www.prfinit.eu LinkedIn linkedin.cm/cmpany/prfinit Twitter twitter.cm/prfinit_eu