Zautomatizujme správu IT infrastruktury.
Dávno minuly časy, kdy se veškeré kroky spojené s instalací, konfigurací a údržbou infrastruktury prováděly manuálně. Vyžadovalo to zapojení velkého počtu pracovníků. Vše probíhalo ručně a tento proces byl náchylný k chybám, což mělo negativní dopad na dostupnost aplikací, bezpečnost a celkový výkon.
Nesmíme opomenout ani celkové finanční náklady spojené s provozem takovéto infrastruktury.
Díky moderním technologiím a filozofii DevOps se však situace výrazně změnila k lepšímu.
V současnosti máme k dispozici rozmanité nástroje, které usnadňují vytváření, nasazování a správu infrastruktury. Využitím vhodného softwaru můžeme automatizovat celou infrastrukturu s minimálním lidským zásahem. Nemluvíme jen o jednoduchých úkolech, ale i o složitých procesech, jako je zřizování infrastruktury, kompletní nastavení aplikací a mnoho dalšího.
Automatizace infrastruktury představuje proces nasazování hardwarových a softwarových komponent, operačních systémů, síťových prvků a úložišť dat s využitím principu IaC (Infrastructure as Code). V tomto procesu je lidská intervence omezena pouze na tvorbu kódu, který detailně popisuje veškeré aspekty vytváření a nasazování potřebných komponent.
Níže naleznete seznam nejpoužívanějších nástrojů pro automatizaci infrastruktury, které se těší velké oblibě v oboru.
Ansible
Ansible je open-source nástroj bez agentů, určený k automatizaci nasazování aplikací, správy konfigurací a orchestraci IT. Vznikl v roce 2012 a je napsán v populárním programovacím jazyce Python. Pro automatizaci používá tzv. Ansible playbooky, které obsahují veškerá nastavení v lidsky čitelném jazyce YAML.
Pokud s Ansible začínáte, podívejte se na tento úvod Ansible Introduction.
Ansible se vyznačuje architekturou bez agentů, což znamená, že není nutné instalovat žádný další software na všechny spravované servery. Funguje na principu push modelu, kdy je lokální systém s definovanými konfiguracemi využíván k odesílání konfigurací na cílové servery.
Dostupné funkce:
- Automatizace s použitím jednoduchého, lidsky srozumitelného jazyka.
- Architektura bez agentů umožňující připojení k serverům prostřednictvím SSH.
- Push model pro odesílání konfigurací ze správcovského počítače na server.
- Základem je Python, což umožňuje využití rozsáhlé nabídky knihoven a funkcí.
- Obsahuje rozsáhlou sbírku Ansible modulů, kterou spravuje tým Red Hat.
Pro firemní prostředí nabízí Red Hat produkt Ansible Tower.
Znalost Ansible je cenná pro systémové administrátory, vývojáře i infrastrukturní inženýry. Pro ty, kdo chtějí urychlit svůj rozvoj, doporučujeme tento tutoriál na Udemy.
SaltStack
SaltStack nabízí funkce pro správu infrastruktury, správu konfigurací a orchestraci s důrazem na rychlost. Vysoká rychlost je klíčový rozdíl oproti konkurenčním řešením, jako jsou Chef a Puppet. SaltStack byl poprvé vydán v roce 2011 a stejně jako Ansible je založen na Pythonu.
Využívá architekturu master-slave, kde Salt Master je hlavní démon, který řídí celý proces, a Salt Minions jsou démoni instalovaní na jednotlivých spravovaných systémech, kteří provádějí instrukce zaslané od Salt Masteru. Salt Master odesílá konfigurace a příkazy do Salt Minions, kteří je poté provedou na svých strojích.
Vlastnosti SaltStack:
- Zaměřen na škálovatelnost a rychlost, umožňuje spravovat až 10 000 minionů na jednom masteru.
- Jednoduché nastavení s jednotnou architekturou vzdáleného spouštění.
- Konfigurační soubory v SaltStack podporují různé druhy jazyků.
- Paralelní provádění příkazů na vzdálených systémech pro rychlou automatizaci.
- Nabízí snadno použitelné programovací rozhraní prostřednictvím Python API.
Chef
Častým zdrojem provozních problémů je nekonzistentní konfigurace aplikací nebo infrastruktury. Chef si klade za cíl tyto problémy efektivně řešit.
Chef je nástroj pro správu konfigurací infrastruktury. Byl vyvinut v jazyce Ruby a poprvé vydán v roce 2009 společností OpsCode.
Chef Infrastructure Management zajišťuje konzistenci prostředí pomocí jednotných konfigurací v rámci celé infrastruktury. Poskytuje řadu nástrojů jako Chef Infra, Chef Automate, Chef Enterprise a Chef Community pro správu infrastruktury.
Funkce správy infrastruktury Chef:
- Konfigurace v jazyce YAML, který je snadno srozumitelný.
- Obsahuje vývojové nástroje pro tvorbu kuchařek (konfigurací), testování a správu závislostí.
- Podporuje snadnou spolupráci v podnikové edici pro efektivní správu složitých prostředí.
- Integrace s mnoha nástroji DevOps, jako jsou GitHub, Jenkins, Azure a Terraform.
Bolt
Bolt je open-source projekt od společnosti Puppet.
Jedná se o nástroj pro orchestraci bez agentů, který je určen pro automatizaci IT. S pomocí Boltu je možné automatizovat manuální úkoly, které jsou v současnosti řešeny ad hoc. Například se jedná o nasazování aplikací, řešení problémů se servery, restartování služeb, aktualizace systémů a podobné operace.
Bolt nevyžaduje instalaci agentů na cílové počítače. Stačí ho nainstalovat na lokální systém a vzdálené cíle se připojují prostřednictvím SSH nebo WinRM.
Vlastnosti Boltu:
- Plány v YAML jazyce, který je jednoduchý a snadno se učí.
- K dispozici je mnoho existujících plánů a pracovních postupů v Puppet Forge (knihovně modulů).
- Snadný přechod z Boltu na Puppet Enterprise pro lepší škálovatelnost.
Terraform
Terraform je open-source nástroj pro provisioning infrastruktury, který se využívá k vytváření a nasazování infrastruktury pomocí IaC (Infrastructure as Code). Byl vyvinut společností Hashicorp a poprvé vydán v roce 2014.
Pokud s Terraform začínáte, podívejte se na tento úvod pro začátečníky.
Terraform výborně funguje s cloudovými poskytovateli, jako jsou AWS, Azure, GCP a Alibaba. Infrastrukturu lze nasazovat a spravovat u kteréhokoli z těchto poskytovatelů velmi efektivně. V současnosti je Terraform hojně využíván k správě Kubernetes clusterů.
Výhody Terraformu:
- Efektivní správa neměnné infrastruktury.
- Zajišťuje kompletní orchestraci infrastruktury, nejen správu konfigurace.
- Používá konfigurační jazyk HashiCorp (HCL), který je lidsky srozumitelný a snadno se učí.
- Nabízí hotové moduly a poskytovatele pro stovky nástrojů a technologií prostřednictvím terraform registry.
Při používání se nezapomeňte řídit osvědčenými postupy pro Terraform.
Závěr
Výše uvedený seznam představuje oblíbené nástroje pro automatizaci infrastruktury, které jsou vhodné pro středně velké i velké podniky. Pokud se zajímáte o oblast DevOps a chcete automatizovat správu infrastruktury, je na čase vybrat si jedno z těchto řešení a začít.