Case Study: Vybudovanie Kubertnetes architektúry pre Slovensko.Digital

Zistiť viac

Občianské združenie Slovensko.Digital už od roku 2016 stráži kvalitu digitálnych služieb štátu na Slovensku. Slovensko.Digital sa so svojim tímom programátorov chce sústrediť na písanie kódu aplikácii a nie na správu serverov, preto v kvalite cloudových riešení pre svoje služby dôverujú nám v Bonet Systems.

Výzva: Rozširovanie 
Single Linux Servera

V čase kedy nás ľudia zo Slovensko.Digital oslovili, už mali skúsenosti s prevádzkou Docker kontajnerov, ktoré radi používame aj v našich riešeniach. Pre svoje služby využívali Platform-as-a-Service (PaaS) – Dokku, ktorá im umožňovala jednoducho nasadiť aplikácie do produkcie.

Produkciu však tvoril jediný linuxový server, ktorý už nedokázal držať krok s rastúcimi požiadavkami tímu. S každou novou aplikáciou bolo potrebné navýšiť zdroje linuxového servera (vertikálne škálovanie).
V Bonet Systems sme zástancami tzv. horizontálneho škálovania – namiesto navyšovania zdrojov jediného servera, rozdeľujeme workload medzi viacero serverov. Hoci horizontálnym škálovaním rastie zložitosť riešenia, viac škálovateľné prostredie umožňuje príidávať zdroje bez akýchkoľvek výpadkov.

Riešenie: Kubernetes Cluster 
a CI/CD Pipelines

Pôvodný proces nasadzovania v Slovensko.Digital bol veľmi jednoduchý a programátorsky prívetivý – spočíval v nahraní zmien do git repozitára. Pretože sme chceli v čo najväčšej miere jednoduchosť tohto procesu zachovať, rozhodli sme sa vybudovať Kubernetes cluster a nasadzovanie vykonávať pomocou CI/CD pipelines. Pre Kubernetes síce existuje Dokku scheduler, vďaka ktorému by sa pre programátorov nezmenilo vôbec nič, avšak pre naše použitie bol vo viacerých smeroch limitujúci. Siahli sme preto po možnostiach, ktoré nám ponúka software Gitlab.

V novom prostredí sa aplikácia automaticky vybuilduje do Docker kontajnera. Následne sa môže vykonať scan aplikácie, pre možný únik hesiel a iných citlivých dát. Samotný gitlab slúži aj ako privátny register pre docker image. K docker imageu je vďaka pipeline vybuildovaný Helm chart, ktorý popisuje zdroje potrebné pre aplikáciu v Kubernetes prostredí. Nové verzie aplikácií kontroluje Helm. Nová verzia sa nasadí až v momente úspešného healthcheck testu. Ak sa vyskytnú problémy ktoré neboli odhalené automaticky, je možné aplikáciu rýchlo vrátiť do pôvodného stavu.

Nové riešenie neobsahuje len produkčné, ale aj testovacie prostredie. Na testovacom prostredí si môže tím Slovensko.Digital svoju aplikáciu poriadne otestovať pred nasadením do produkcie. Databázové migrácie sú spúšťané automaticky pri každom nasadzovaní a aj let’s encrypt certifikáty sú v Kubernetes konečne naozaj automatické.

Vďaka Bonet Systems a Kubernetes má teraz Slovensko.Digital možnost rýchlo a jednoducho pridávať výpočtové zdroje podľa potreby. V prípade nutnosti pridania zdrojov, jednoducho pridáme ďalší Kubernetes node server – bez akéhokoľvek výpadku, či potreby zložitého nastavovania. Nasadené riešenie zvýšilo dostupnosť všetkých služieb Slovensko.Digital. Pri výpadku akéhokoľvek node servera (a výpadkom sa nikdy nedá úplne vyhnúť) sú kontajnery, ktoré na ňom bežali automaticky spustené na ostatných serveroch v clustri.

Výsledok: Zvýšená efektívnosť, škálovateľnosť a úspora nákladov

Riešenie šité presne pre potreby Slovensko.digital sme navrhli a zrealizovali s dôrazom na odbremenenie od prevádzkových problémov. Nové riešenie je efektívnejšie, škálovateľnejšie a zároveň šetrí náklady. Zdroje sú využívané takmer na 100 % a ďalšie sa pridávajú až v momente, keď sú naozaj potrebné.

Hoci Slovensko.Digital aj my máme ešte pred sebou viaceré výzvy, ktoré tieto nové technológie prinášajú, myslíme si, že prechod na nové robustné riešenie môžu oba naše tímy považovať za úspech, ktorý sa ešte veľakrát prejaví aj v budúcnosti.

Bonet nám postavil nielen novú infraštruktúru na k8s, ale aj CI/CD pipeline, pomocou ktorej vieme ľahko nasadzovať naše produkty 
a služby. V podpore idú ďaleko nad rámec toho, čo je bežné 
a spíme preto kľudnejšie.

Ján Suchal

Professional Anarchist at Slovensko.Digital, konateľ

Postaráme sa o prevádzku vašich systémov

Ak zvažujete, ktorá možnosť bude pre vašu firmu tá najvhodnejšie, obráťte sa na našich kolegov, ktorí vám radi pomôžu nájsť optimálne riešenie.

V prípade, že máte doplňujúce otázky ohľadom fungovania monitoringu či ďalších vlastnostiach, zanechajte nám telefónne číslo a my vás budeme čoskoro kontaktovať.

This field is for validation purposes and should be left unchanged.