SaaS-cég Budapesten
Egy gyorsan növekvő csapat minden új környezetet Terraform-modulból hoz létre percek alatt, ahelyett hogy kézzel klónozná a régi szervert, ami korábban napokig tartott.
Az Infrastructure as Code és a GitOps azt jelenti, hogy a szervereid állapota a gitben van leírva, nem valakinek a fejében vagy egy kézi jegyzetben. Terraformmal vagy OpenTofuval építjük fel az infrastruktúrát, Ansible-lel konfiguráljuk, ArgoCD-vel vagy Fluxszal léptetjük a változásokat, minden módosítás review-n megy át, és bármelyik környezet kódból újraépíthető egy incidens után.
A szervereket, a hálózatot és az alapkonfigurációt Terraformmal vagy OpenTofuval írjuk le, Ansible-lel visszük fel rájuk a szoftvereket és a beállításokat, a Kubernetes-erőforrásokat pedig ArgoCD-vel vagy Fluxszal léptetjük GitOps-elven: a gitben lévő állapot a forrás, a klaszter automatikusan ehhez igazodik. Minden módosítás pull requesten és review-n megy keresztül, mielőtt élesbe kerül, így nyomon követhető, ki és miért változtatott bármit. Ezt a folyamatot az első átadáskor együtt állítjuk be veled. Ezt a fegyelmet a legkisebb konfigurációs módosításnál is tartjuk, nem csak a nagyobb infrastruktúra-változtatásoknál.
A kód alapú infrastruktúra csak akkor ér valamit, ha nincs mellette kézi kiskapu. Ezt a listát minden bevezetésnél alkalmazzuk, és a te dokumentációdban is rögzítjük, a katasztrófa utáni helyreállítási gyakorlat eredményeivel együtt. Egy egyetlen kézzel módosított szerver elég ahhoz, hogy a kódból leírt állapot és a valóság szétváljon, és egy újraépítés eltérő eredményt adjon, mint amit vártál. Ezért a drift-ellenőrzést rendszeresen megismételjük. Ezért a kézi kiskaput minden bevezetésnél tudatosan bezárjuk, nem csak elméletben tiltjuk.
Az idő múlásával a legfegyelmezettebb csapatnál is előfordul, hogy valaki kézzel javít egy szervert egy sürgős hiba miatt. Ezt a konfiguráció-eltolódást (drift) rendszeresen ellenőrizzük, és jelentjük, mielőtt a következő kódból történő futtatás felülírná vagy ütközne vele. A Terraform állapotát zároljuk, hogy két párhuzamos futtatás ne írja felül egymást, a titkokat pedig SOPS-szal vagy Vault-tal kezeljük, sosem sima szövegben a gitben.
A Terraform- és Ansible-alapok felépítése, a GitOps-léptetés bevezetése és az első katasztrófa utáni helyreállítási gyakorlat a havi órák terhére történik: 1–8 óra a VPS-terveken, csomagtól függően 5–10 óra a dedikált és 10 óra a GPU szervereken. Az ügyfélpanel DevOps szolgáltatások menüpontjából kéred, javasolt határidővel. A meglévő, kézzel kezelt infrastruktúra kódba öntése jellemzően több hónapot vesz igénybe, ezért szakaszoljuk. A kereten felüli munkát külön számlázzuk, a munka megkezdése előtt egyeztetett becsléssel.
Minden előfizetés havi DevOps, Kiberbiztonsági és Programozási órákat tartalmaz: 1 óra a cPanel Advanced csomagtól felfelé, 1–8 óra VPS esetén, dedikált szervereken csomagtól függően 5–10 óra, GPU szervereken pedig 10 óra. Az órákat az ügyfélpanelből lehet kérni, nem vihetők át a következő hónapra, és ami a keretet meghaladja, azt elfogadjuk és külön számlázzuk.
Elmondod, milyen infrastruktúrád van jelenleg, és mennyire kézzel kezelt, majd javasolsz egy határidőt a DevOps szolgáltatások menüpontban.
Felmérjük a jelenlegi állapotot, kiválasztjuk az eszközöket, és meghatározzuk, mely komponenseket öntjük kódba elsőként, a havi óraszám alapján.
Megírjuk a Terraform- és Ansible-kódot, beállítjuk a GitOps-léptetést, majd egy környezetet teljes egészében kódból építünk fel, hogy igazoljuk a reprodukálhatóságot.
Megkapod a kódot a tárolódban, a drift-ellenőrzés eredményeit, a katasztrófa utáni helyreállítási eljárást és a review-folyamat leírását.
Egy gyorsan növekvő csapat minden új környezetet Terraform-modulból hoz létre percek alatt, ahelyett hogy kézzel klónozná a régi szervert, ami korábban napokig tartott.
Minden infrastruktúra-változás pull requesten és review-n keresztül történik, így az auditornak elég a git-előzményt megmutatni ahelyett, hogy kézzel dokumentálná a szerverek állapotát.
Egyetlen Terraform-modulkészletet ismételnek meg minden új ügyfélprojektnél, így az infrastruktúra kiépítése napok helyett órák alatt megtörténik, egységes minőségben.
Az Infrastructure as Code azt jelenti, hogy a szerverek és a hálózat állapotát kódban írod le, nem kézzel állítod be egyenként. Előnye, hogy a változás review-n megy át, a teljes környezet reprodukálható, és egy incidens után nem kell találgatni, mi volt pontosan beállítva.
A GitOps-ban a kívánt állapot a gitben van, és egy operátor folyamatosan ehhez igazítja a klasztert, nem egy pipeline futtat kézi lépéseket. Ez azt jelenti, hogy a git-előzmény pontosan tükrözi az éles állapotot, és egy visszaállítás annyi, hogy visszaállítod a régi commitot.
A Terraform a szerverek, a hálózat és az alapinfrastruktúra létrehozására és leírására való. Az Ansible a már létező szervereken végzi el a konfigurációt és a szoftvertelepítést. A kettőt együtt használjuk: Terraform hozza létre a gépet, Ansible állítja be rajta a szoftvert.
Ezt konfiguráció-eltolódásnak hívjuk, és rendszeresen ellenőrizzük. A drift-ellenőrzés jelenti az eltérést, mielőtt a következő kódfuttatás felülírná vagy ütközne vele. A cél, hogy a kézi módosítás kivétel maradjon, ne a norma.
Ha minden kódban van leírva, egy teljesen elveszett környezet újraépíthető a gitből, gép- és hálózatkonfigurációval együtt, kézi rekonstrukció nélkül. Rendszeres gyakorlattal ellenőrizzük is, hogy ez ténylegesen működik, nem csak elméletben igaz.
A pontos idő a jelenlegi infrastruktúra méretétől függ, de a legtöbb csapat már az első néhány új környezet létrehozásánál érzi a különbséget: percek, nem napok. A nagyobb nyereség az auditálhatóságban és a katasztrófa utáni helyreállítás megbízhatóságában jelentkezik.
Kódba öntjük az infrastruktúrádat, beállítjuk a GitOps-léptetést, és katasztrófa utáni helyreállítási gyakorlattal igazoljuk a reprodukálhatóságot, a havi órák terhére.