Dnešní svět je v mnoha ohledech neuvěřitelně dynamický a mnohé technologie, standardy nebo produkty mají doslova jepičí živost. Stejně tak platí, že v běžném i profesním životě jsme silně závislí na informačních technologiích. A aby byly skutečným pomocníkem, musí i ony dostatečně rychle a pružně reagovat na okolní změny. Jenže čím rychlejší vývoj je, tím více chyb vzniká a výsledná řešení ne vždy fungují tak, jak bychom potřebovali. Důsledkem je začarovaný kruh neustálého zdokonalování, oprav, hledání nových postupů, zdokonalování, oprav, a tak neustále dokola. Nejde o nový problém, jen je dnes znatelnější a jeho řešení vyžaduje nové přístupy – například průběžnou integraci, zejména pak ve spojení s tzv. průběžným doručováním a průběžným nasazováním.
Kontinuální vývoj
Průběžná integrace (Continuous Integration, někdy také kontinuální integrace) je přístupem k vývoji software, kde každá součást je do výsledného celku integrovaná průběžně v co nejkratších smysluplných intervalech, typicky denně. Díky tomuto nepřetržitému zapracovávání změn je možné rychle sestavovat nové verze, které opravují chyby i přináší další požadovanou funkcionalitu. Historie tohoto přístupu sice spadá již do 60. let minulého století, nicméně jeho obliba i rozšířenost roste právě v souvislosti s dnešním dynamickým rozvojem.
Obecně je průběžná integrace chápána jako kombinace postupů a odpovídajících nástrojů k urychlení vývoje software. Smyslem je dát vývojovým týmům k dispozici techniky, které umožní efektivní zrychlení celého vývojového cyklu při současné minimalizaci nároků na lidské zdroje i při co největším snížení chybovosti. Obvykle není díky průběžné integraci nutné čekat na dokončení všech rozpracovaných změn a vytvářet novou verzi lze prakticky ihned po každé opravě či rozšíření. Navíc ve spojení s automatickým testováním je přínosem i rychlé odhalení případných chyb a tedy i „vrácení zpět“ do vývoje. O drastickém snížení nákladů na samotné testování ani nemluvě.
Automatické vydávání
Průběžné doručování – z anglického Continuous Delivery – je rozšířením průběžné integrace, které má za cíl umožnit co nejrychlejší a současně efektivní zpřístupnění nejnovějších změn uživatelům. Nové verze tak mohou být do produkčního prostředí nasazovány ve velmi krátkých časových intervalech, ihned po zapracování změn, jejich automatickém otestování a rozhodnutí, že k uvolnění skutečně dojde. Opět není nutné čekat na mnoho vzájemně nesouvisejících úprav. A aby vše fungovalo jak má, je důležité nasazovat opravdu i po malých změnách – v případě problémů pak cesta zpět nepředstavuje žádné problémy. K pomyslné dokonalosti pak přivádí průběžné doručování průběžné nasazování (Continuous Deployment), které zajišťuje automatické nasazování každé integrované a otestované změny. Tedy zcela bez lidského rozhodnutí: nasazení zabrání pouze chyba zjištěná během automatického testování.
Vhodný pomocník
V současnosti je na výběr řada „průběžných“ nástrojů, za zmínku stojí zejména ucelená sada produktů společnosti Atlassian, která má řadu partnerů po celém světě a jedním z nich je i česká společnost Onlio. V jejím portfoliu z pohledu podpory průběžné integrace nechybí nástroje pro správu verzí (zejména Sourcetree), služba pro správu verzí Bitbucket (obdoba služby GitHub), nástroj pro evidenci (nejen) chyb a problémů JIRA (k dispozici je integrace s Bitbucket), řešení pro spolupráci Confluence nebo platforma Bamboo, která spojuje všechny oblasti průběžné integrace, doručování a nasazování včetně automatizovaného testování do jediného workflow. Silnou stránkou platformy Bamboo je i integrace s dalšími nástroji a službami – vedle výše uvedených lze tuto platformu propojit se stovkami dalších nástrojů a plně si tak vývoj, testování i nasazování přizpůsobit individuálním potřebám. Mocným pomocníkem je i Bitbucket Pipelines & Deployments, integrované řešení průběžné integrace a nasazování pro Bitbucket Cloud.
Průběžná integrace je důležitou součástí extrémního programování, agilního vývoje i umožnění úzké spolupráce mezi vývojovými a provozními týmy, tedy tzv. DevOps (z Development – Operations) přístupu. A přestože ji nelze považovat za všelék v jakémkoli prostředí či projektu, jde o jednu z možností, jak efektivně reagovat na stále náročnější požadavky digitálního věku. Nutné je ale pochopit, že samotné technologie nestačí a že ve skutečnosti jde o celkovou filosofii k vývoji IT a zejména o lidi, kteří tyto nástroje budou používat pro usnadnění vlastní práce.
Autor: Martin Cvrček, absolvoval ZČU FAV, obor kybernetika. V současné době pracuje ve společnosti Onlio jako Atlassian konzultant převážně pro řešení postavené nad JIRA a Confluence v enterprise prostředí.