DevOps: Čeká nás hromada zábavy
Vydejte se s námi na dobrodružnou výpravu do světa DevOps v jedné z největších pojišťoven v ČR.
Autor
Jakub Křikala, vedoucí oddělení DevOps v AIS Servis
Na začátku všeho byl Gitlab…
Je to něco přes rok, co jsme rozběhli produkční gitlab s runnery v kubernetes. Jedeme ve stylu GitOps, takže každá služba už má svůj config managment uhnízděný v Git repu a chce to MR a CI/CD, aby se něco začalo dít.
V kontejnerech střílíme jednu appku za druhou obvykle pomocí operátoru , helmu a argoCD. Čas od času si sáhneme na nějaký ten ingress a loadbalancing.
V nekontejnerizovaném světě používáme pro deploy ansible a awx obvykle na redhetích virtuálech, pěkně od instalace aplikačního serveru – po nalití balíčku a spuštění testu.
Vyrábíme gitlab-ci templates pro vývojáře, aby si svoje build-test-deploy pajplajny, jednoduše poskládali ze skriptů z knihovničky a nemuseli moc psát a googlit. Stejně ten Maven a Gradle známe líp :-P
Jako devopsáci jsme tak trochu líní, protože ruční práce je fakt opruz, je třeba šetřit prsty a maximum rutinních činností dáme do automatu. Python, shell, go jsou naši kamarádi.
Obvykle jsme tak líní, že i ssh konekce na stroj, při řešení incidentu, je pro naše prsty tak namáhavá, že stav, co se se službou real-time děje, si zjišťujeme ze špionů jako je Dynatrace, Grafana, Elastic stack, ale chce to ještě dotáhnout. A pak jdem prsty protáhnout na stolní fotbálek.
Občas pomůžeme i testerům, protože ty jejich hračky jako newman, selenium a tak jsou fajn a baví nás vídat, jak systém zadírá zátěž při performance testech.
Snažíme se dopravovat software do produkce co nejrychlejší cestou, tak aby dodávka byla kvalitní, spolehlivá a otestovaná. A zákazník byl happy.
Vrtáme se v procesech, když to nejde silou, půjde to ještě větší Jirou. S Atlassianem se už se nějaký ten týden známe a je to denní chleba pro psaní pohádek, vylívání srdíček a hledání informací, když jsme v pasti. Už by to možná taky chtělo automatizaci třeba ve stylu „Hey Siri, create an issue…“.
Co nás čeká a nemine? Hromada zábavy!
Chceme vytáčet jeden cluster za druhým jako na běžícím páse tak, aby vývojáři nic nepoznali, a vždycky tam našli to, co tam měli deploynuté, mít pošéfované persistence a databáze a nasazený tooling k příslušnému clusteru – grafana, argoCD, ES. Máme k tomu Tanzu, ale experimentujeme i s AKS.
Bezpečnosti není nikdy dost, takže chceme trochu šlápnout do DevSecOps, než šlápne auditor na nás. Container hardening, vulnerability scan a software code analysis, budou pro vývojáře plyšákem při klidném usínání. Jo a nějaké heslo v plaintextu už bude fakt jenom ošklivý sen.
Zamakáme na nasazování změn do databází. Naučíme Javisty sypat db změny pomocí liquibase nebo flyway, čistě pro jejich pohodlí. A díky tomu pak deployment zvládne každý.
Hrozně se těšíme na Kafku! Jak se ty naše appky pomalu rozpadají a přepisují do micro-servis, roste potřeba po nějakém messaging tech stacku.
- Mít monitoring data a eventy z něj je super.
- Mít monitoring konektory do komunikačních kanálů je ještě víc super.
- A mít triggerování self-healing akcí a reaktivní monitoring je úplně nejvíc boží a vlastně není nutné vstávat z postele…
A pak takový náš skromný sen je, že ráno nemusíme kvůli releasu do produkce vstávat, ale prostě nastavíme scheduler a na telefonu akorát checkneme notifikace o tom, jak se všechno krásně nasadilo, otestovalo a běží to na pána! A můžem si přispat :-D
Třešničkou na dortu bude když z GitOps metamorfujeme na NoOps. To už nebudeme muset dělat vůbec nic! :D No tak, trošku jsem si zapřeháněl.