facebook LinkedIN LinkedIN - follow
Cloud computing , ITSM (ITIL) - Řízení IT , Cloud a virtualizace IT

DevOps a kontejnery vám ušetří desítky procent nákladů na vývoj

Damir Špoljarič


vshosting~Stále větší příklon k vývojářskému přístupu zvanému DevOps spolu s využitím kontejnerových technologií patří mezi důvody, proč se daří práci vývojářů stále zefektivňovat a zrychlovat.


Chcete se o potenciálu DevOps a kontejnerů dozvědět víc? Nebo dokonce uvažujete o přechodu na DevOps či kontejnerové řešení, ale nejste si jisti, zda se vám tato investice vyplatí? Podívejme se, co vám tyto vývojové přístupy mohou přinést, kolik nákladů ušetřit, i to, jak složité by bylo uvést je do provozu.

Spolupráce týmů, časté releasy a důkladné testování

DevOps je složenina z anglických slov Development (Vývoj) a Operations (Provoz), a jde vlastně o přístup k vývoji software, který klade důraz na spolupráci vývojářů s IT odborníky starajícími se o provoz aplikací. Tyto dva světy bývaly tradičně striktně oddělené, ale jejich de facto sloučení s sebou nese mnohé výhody.

Spolupráce oddělení vývoje a provozu vede k transparentní komunikaci a zapojení obou skupin do všech fází tvorby aplikací či jejich částí. Mezi principy DevOps patří také časté vydávání menších částí aplikací, oproti méně frekventovaným releasům větších celků. Spolu s důrazem na důkladné testování a metodické ukládání všech předchozích verzí kódu tak lze velmi rychle identifikovat případný problém, který může nastat po vydání nové části aplikace.

Když k chybě dojde, stačí aplikaci jednoduše vrátit na předchozí verzi - zabere to maximálně pár minut. Vývojáři poté v klidu daný bug opraví zatímco uživatel aplikaci může bez potíží používat. Hledání eventuální chyby je také mnohem snazší, protože vydávaná část aplikace, ve které je potřeba bug najít, je velmi malá.

Výsledkem je významné zrychlení celého procesu vývoje, od napsání kódu po úspěšné spuštění daného softwaru, a to i o 60 % a více. Tato akcelerace pak vede ke snížení nákladů na vývoj, ale i větší spokojenosti zákazníků a tedy i vyšším tržbám. Váš byznys je totiž schopen pružněji reagovat na požadavky klientů, respektive uživatelů aplikace.

Jak moc velké bude zefektivnění, tedy i úspory a potažmo nárůst tržeb, ovšem závisí na mnoha faktorech. Mezi ty nejdůležitější patří velikost vašeho vývojového týmu a míra využití podpůrných nástrojů, jakými je například technologie kontejnerizace, automatizace procesů a volba flexibilní infrastruktury. Zjednodušeně řečeno, čím větší tým máte a čím více využijete možností automatizace a flexibility zvolené infrastruktury, tím efektivnější celý proces bude.

Dobrým příkladem je americká firma Etsy, na jejímž webu lidé prodávají vlastnoručně vyrobené umělecké kousky, šperky a podobně. Před přechodem na DevOps vývojáři v Etsy vydávali nové verze aplikace 3krát týdně a jeden tento deploy jim zabral 4 hodiny, kdy aplikace byla nepřístupná pro uživatele. V případě problému byl pak výpadek ještě mnohem delší, protože návrat do původního stavu nebyl jednoduchý a najít chybu v tak velkém množství kódu také nejde úplně hned. Výsledkem pak byly až milionové ztráty.

Po úspěšné implementaci DevOps principů Etsy provádí okolo 50 deployů denně, díky čemuž jsou minimalizovány výpadky. A když se přeci jen něco nepovede, vývojáři snadno vrátí aplikaci do původního stavu během několika minut a v klidu vše opraví.

Standardizace „přepravy“ softwaru

Kontejnerizace je dalším z „buzzwordů“ současného IT světa a do konceptu DevOps skvěle zapadá. Využití kontejnerů tedy můžeme chápat jako podpůrný nástroj DevOps přístupu. Podobně jako kontejnery fyzické, které standardizovaly přepravu zboží, softwarové kontejnery představují standardní jednotku „přepravy“ softwaru. Díky tomu je IT odborníci mohou nasadit napříč prostředími v podstatě bez úprav (podobně jako fyzický kontejner můžete bez problému přeložit z lodi na vlak nebo na kamion).

Velkou výhodu této standardizace představuje i fakt, že vývojové, testovací i produkční prostředí (tj. kde aplikace výsledně běží) je definováno identicky. Díky tomu se výrazně snižuje riziko výskytu bugů, které se při vývoji a testování neprojevily, a projeví se až při spuštění v produkčním prostředí. Kdo kdy vyvíjel mimo kontejner, ví, jak často tato situace obvykle nastává a kolik času vývojový tým tráví její nápravou. Tvorbu a nasazování kontejneru můžete také automatizovat přes API, což dále přispívá k úspoře času a nákladů na vývoj.

Mezi další neopomenutelné benefity kontejnerů patří izolace aplikací od sebe navzájem. Jinými slovy díky kontejnerům získáte možnost zároveň provozovat několik aplikací, z nichž každá vyžaduje různou verzi nějaké služby (např. databáze).

Za zmínku stojí také bezproblémová škálovatelnost: aplikace můžete provozovat v libovolném počtu instancí kontejnerů, a to podle aktuální potřeby. Počet kontejnerů lze téměř okamžitě navyšovat (například během vánoční špičky) nebo naopak snižovat. Díky tomu ušetříte velkou část nákladů na infrastrukturu třeba v období, kdy poptávka po vašem zboží není tak velká. Zároveň když se zájem nečekaně zvedne - řekněme, že jste online lékárna v době pandemie - kapacitu bleskurychle navýšíte a hotovo.

Monitoring jako klíč k úspěchu

K DevOps i kontejnerizaci také nevyhnutelně patří detailní monitoring, který přispívá k rychlé identifikaci chyb v kódu (například pokud se po vydání nové části kódu náročnost provozu celé aplikace zdvojnásobí, někde je zjevně problém). Monitoring je zároveň klíčový k měření byznysových metrik, díky kterým můžete vyhodnotit, zda právě vydaná změna pomáhá dosáhnout vašich cílů nebo ne.

Pro představu: dejme tomu, že jste se u svého e-shopu rozhodli pro redesign domovské stránky, jehož cílem je zvýšení počtu objednávek o 10 %. Díky detailnímu monitoringu brzy po vydání zjistíte, jestli jste vytyčených 10 % dosáhli či nikoliv. Kdybyste oproti tomu udělali 5 změn v e-shopu najednou, bude vyhodnocení účinnosti jednotlivých opatření mnohem složitější. Řekněme, že celkovým výsledkem těchto 5 změn je zvýšení počtu objednávek o 7 %. Která z novinek způsobila největší nárůst? A nezpůsobuje naopak některá z nich snížení počtu objednávek? Kdo ví.

Přechod na DevOps a kontejnery, snadno a rychle

Důvodů proč začít využívat principu DevOps společně s kontejnerizací je nespočet: od zrychlení vývoje a nasazování softwaru, přes mnohonásobně nižší výskyt chyb a jejich snazší odstraňování, až po automatizaci celého procesu a směrodatnější vyhodnocování účinnosti změn. Jednoduše řečeno, DevOps a kontejnery šetří váš čas, peníze i bolehlav.

Jak ale tento poměrně velký skok udělat? Tady jsou hlavní 4 kroky, které budete muset podniknout:

  1. Krokem číslo jedna je získat na vaši stranu vlastní vývojáře a IT odborníky - bez jejich podpory se daleko nedostanete. Naštěstí se DevOps i kontejnery těší v IT komunitě značné popularitě a vidina minimalizace času stráveného odstraňováním bugů také hraje ve váš prospěch.
  2. Následně budete potřebovat dobrého poskytovatele infrastruktury pro vaše aplikace - typicky nějakou formy Kubernetes platformy. Většinu z vás nejspíš jako první napadnou klasičtí cloudoví poskytovatelé, které každý zná. Bohužel, podle zkušeností našich klientů vám uživatelská (ne)přívětivost těchto providerů celý proces příliš neusnadní. Další variantou je poskytovatel, který vám Kubernetes platformu předpřipraví, zdarma poradí, co a jak a poskytne vám nonstop podporu na telefonu. To v češtině a za výrazně nižší cenu. Nechceme se chlubit, ale přesně tohle splňuje Kubernetes platforma od vshosting~.
  3. Až si vyberete mezi poskytovateli toho nejvhodnějšího, přijde čas na úpravu vašich aplikací tak, aby byly s kontejnerizací kompatibilní. To bude hlavní úkol vašich vývojářů. Jakmile úpravu zvládnete, stačí aplikace převést na Kubernetes platformu.
  4. Poté už můžete zavádět nástroje pro Continuous Integration, Continuous Deployment a další vychytávky a automatizovat procesy. Důležité (a trochu osvobozující) je doporučení, že není potřeba všechny změny a automatizace zavádět najednou. Naopak se vyplatí, když budete změny zavádět postupně a měřit jejich účinnost. Jen tak se vám podaří celý proces vývoje maximálně vyladit.

Obr. 1: Příklad infrastruktury využívající kontejnerovou technologii v datovém centru - vshosting~
Obr. 1: Příklad infrastruktury využívající kontejnerovou technologii v datovém centru - vshosting~

Každá změna stojí úsilí a nese s sebou nějaké obavy. Když jde ale o přechod z klasického vývoje na DevOps a kontejnery, jsou tyto zádrhely mnohonásobně vykompenzovány nespornými výhodami. Protože který online byznys by nechtěl ušetřit desítky procent nákladů a času na vývoj a zároveň více vydělat díky lepšímu porozumění zákazníkům?

Damir Špoljarič Damir Špoljarič
Autor článku je ředitelem firmy vshosting~.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.