Dříve nebo později se každý DevOps setká s potřebou naučit se a používat nástroje pro správu konfigurace a vzdálené provádění úloh. Nástroje pro správu konfigurace hrají v DevOps velkou roli.
Důležitost nástrojů pro správu konfigurace
Práce s infrastrukturou podle konceptu Infrastructure as Code s využitím těchto systémů je nezbytným minimem pro zajištění systematického přístupu k IT operacím.
Hlavní myšlenkou těchto nástrojů je zajištění sledovatelnosti změn, opakovatelnosti a konzistence, pohodlí, hromadného a simultánního nasazení a celkově vyšší kvality IT operací.
Přístup Microdevops
V Microdevops bychom nemohli poskytovat kvalitní služby bez povinného využívání nástrojů pro správu konfigurace. Vlastně je používáme téměř na všechno, zde jsou jen ty nejjednodušší příklady:
- Nastavení operačního systému.
- Nasazení aplikací.
- Vytváření uživatelských účtů.
- Správa firewallů.
- Spouštění služeb.
- A samozřejmě samotné služby pro správu konfigurace.
Top 10 nástrojů pro správu konfigurace v DevOps
Pokud jde o nejpoužívanější nástroje pro správu konfigurace v DevOps, můžeme zmínit následující:
- HashiCorp Terraform – dnes de facto standard pro nasazování a konfiguraci infrastruktury v cloudu. V Microdevops jej používáme.
- Ansible – téměř standard pro správu konfigurace, ale nepoužíváme ho, protože jsme si svého času vybrali…
- Salt (SaltStack) – podobný Ansible (také YAML, také Python), i když méně populární, ale zato funkčnější: události, zeromq, agent. Většina našich systematických znalostí je soustředěna v Salt. Nepoužíváme ho každý den, ale každou minutu.
- CFEngine – říká se, že je populární, ale v praxi jsme ho nikdy neviděli ani netestovali.
- Chef a Puppet – klasika správy konfigurace. Velmi funkční a vyzrálé nástroje, ale ve srovnání s Ansible a Salt méně přehledné a těžkopádnější, proto je nepoužíváme.
- Pulumi – často se zmiňuje jako alternativa Terraformu a bývá chválené, ale nepoužíváme ho, protože jeho přístup je příliš radikální.
- AWS CloudFormation, Azure ARM/Bicep, Google Cloud Deployment Manager – nástroje uzamčené na konkrétního poskytovatele cloudu (AWS, Azure, GCP), používají se, pokud je nutné pracovat nativně v dané platformě.
Bonus: žádný z výše uvedených nástrojů se neobejde bez dalšího klíčového prvku:
- Git + GitLab/GitHub/… – konfigurační manifesty jsou ve skutečnosti textové soubory ve formátech YAML/JSON/Terraform atd. Proto je nutné je uchovávat jako kód (Infrastructure as Code), a ten musí být verzován v git.
Šablona klientského repozitáře Microdevops a automatizace
Kromě výše uvedených principů a opakovaně použitelného kódu Microdevops máme také šablonu klientského repozitáře, která umožňuje velmi rychle generovat a aktualizovat projekty pro klienty (a lze ji opakovaně aplikovat i na existující repozitáře!).
Naše účetní systém dokonce automaticky generuje klientské repozitáře na základě této šablony, přidává do nich seznamy serverů, tarifních plánů atd. Jinými slovy, automaticky konfiguruje samotný kód pro správu konfigurace.
Klíč k úspěšné správě konfigurace
Závěrem lze říci, že na tom, který nástroj pro správu konfigurace si vyberete, vlastně nezáleží. Důležité je:
- Nástroje pro správu konfigurace používat systematicky.
- Hromadit znalosti ve vybraném (nebo více) nástroji.
- Mít dostatečnou expertizu pro rychlou implementaci myšlenek a úkolů pomocí kódu, bez ručních operací a technického dluhu.
Pokud tyto podmínky splníte, váš DevOps bude na vysoké úrovni!