Infrastruktura a DevOps

Srdcem naší infrastruktury je virtualizační technologie Docker. Docker pomáhá už samotným vývojářům při konfiguraci jejich lokálního vývojového prostředí, ale nedozírné ceny nabývá právě ve fázi nasazení aplikace do produkce. Zde, především v kombinaci s instrumentační technologií Kubernetes (k8s), stavíme pro naše systémy stabilní, flexibilní a škálovatelné běhové prostředí

Jsou to vzletná slova, pochopitelná možná jen odborníkům. Nechte nás proto situaci vysvětlit na dvou příkladech:

Vaše aplikace již vesele funguje, ale znenadání se vyskytne chyba (řekněme, že způsobená nekompatibilní změnou v technologii třetí strany), která výrazně brání vašim klientům v práci s aplikací, a tudíž i vám ve vydělávání peněz. V rámci SLA chybu rychle odchytíme a kód upravíme do funkční podoby. Díky automatizaci a virtualizaci můžeme opravu dostat do produkce prakticky v rámci několika málo minut a aplikaci aktualizovat zcela bez výpadku. Nemusíme čekat do večera na servisní okno, kdy je možné provést několikaminutovou odstávku. Vše proběhne lusknutím prstu, transparentně a vaši klienti zpozorují jen to, že jejich klíčová funkce opět šlape jako hodinky.

Nestačí? Co třeba jiný příklad?

Daří se vám. Podnikání roste a to přináší i nové uživatele do vaší aplikace. Původní konfigurace s takovým zájmem nepočítala a začíná být trochu pomalá. Jednoduše docházejí zdroje, ze kterých aplikace čerpá – výkon procesoru, paměť a místo na disku. Pro nás to ale není žádný problém. Díky Docker / Kubernetes virtualizaci jsme schopni (opět zcela transparentně a bez výpadku) aplikaci škálovat do šířky, tedy přidat nové servery, nový výkon a paměť tak, aby vyhovovala novým potřebám. A nejlepší je na tom to, že k tomu nemusíme upravit jediný řádek kódu.

Automatické pipeliny nám ulehčují život.

Naši geniální inženýři vyrobili hromadu pipeline, které nám automaticky testují zdrojový kód z Gitlabu či Githubu a kompilují ho do podoby Docker obrazů, balíčků, jakýchsi základních stavebních prvků naší běhové architektury, které lze univerzálně spustit v různých virtualizovaných prostředích. K tomu využíváme různé Continuous Integration služby (CI), například Gitlab, či CircleCI.

Bez monitoringu jsme slepí.

To je přece jasné. Pro spolehlivé odladění chyb, ať už chyb ve funkcích, nebo performance problémů, je klíčové mít aplikace stále pod dozorem. Aplikační logy skladujeme v Elastic databázi a procházíme pomocí nástroje Kibana. Nečekané výjimky se nám automaticky reportují do Sentry. Vytížení prostředků, CPU, paměti a diskového prostoru sledujeme také v Kibaně, případně v Centronu či jiných monitorovacích nástrojích.

Není podstatné, v čem jednotlivé části infrastruktury řešíme. Důležité je, že je řešíme. My Eluviané se o svá dítka staráme, záleží nám na nich a jsme neustále v pozoru. My Eluviané máme nad věcí kontrolu.

Zpět