Programování

Recenze: Puppet vs. Chef vs. Ansible vs. Salt

Šíření virtualizace spolu s rostoucím výkonem standardních serverů v oboru a dostupností cloud computingu vedlo k výraznému nárůstu počtu serverů, které je třeba spravovat v rámci organizace i bez ní. Tam, kde jsme si kdysi vystačili se stojany fyzických serverů, ke kterým jsme měli přístup v datovém centru na chodbě, musíme nyní spravovat mnohem více serverů, které lze rozšířit po celém světě.

To je místo, kde vstupují do hry nástroje pro řízení orchestrace dat a správu konfigurace. V mnoha případech spravujeme skupiny identických serverů, provozujeme identické aplikace a služby. Jsou nasazeny na virtualizační rámce v rámci organizace, nebo běží jako cloud nebo hostované instance ve vzdálených datových centrech. V některých případech můžeme mluvit o velkých instalacích, které existují pouze pro podporu velmi velkých aplikací nebo velkých instalacích, které podporují nesčetné množství menších služeb. V obou případech nelze vyloučit schopnost mávat hůlkou a přimět je všechny, aby se ohnuli podle vůle administrátora. Je to jediný způsob, jak spravovat tyto velké a rostoucí infrastruktury.

Puppet, Chef, Ansible a Salt byli postaveni s ohledem na tento cíl: usnadnit konfiguraci a údržbu desítek, stovek nebo dokonce tisíců serverů. To neznamená, že menší obchody nebudou těžit z těchto nástrojů, protože automatizace a orchestrace obecně usnadňují život v infrastruktuře jakékoli velikosti.

Podíval jsem se do hloubky na každý z těchto čtyř nástrojů, prozkoumal jsem jejich design a funkci a zjistil jsem, že i když některé skórovaly výše než jiné, je tu místo, kam se každý může vejít, v závislosti na cílech nasazení. Zde shrnuji svá zjištění.

Loutkové podnikání

Loutka má pravděpodobně největší podíl mysli ze všech čtyř. Je to nejúplnější z hlediska dostupných akcí, modulů a uživatelských rozhraní. Loutka představuje celkový obraz orchestrace datových center, zahrnuje téměř každý operační systém a nabízí hluboké nástroje pro hlavní operační systémy. Počáteční nastavení je relativně jednoduché a vyžaduje instalaci hlavního serveru a klientských agentů v každém systému, který má být spravován.

Odtamtud je CLI (rozhraní příkazového řádku) jednoduché a umožňuje stahování a instalaci modulů prostřednictvím loutka příkaz. Poté jsou nutné změny konfiguračních souborů, aby se modul přizpůsobil požadovanému úkolu, a klienti, kteří by měli pokyny obdržet, tak učiní, když se přihlásí k hlavnímu serveru nebo prostřednictvím push, který okamžitě spustí úpravy.

Existují také moduly, které mohou zajišťovat a konfigurovat instance cloudového serveru a instance virtuálního serveru. Všechny moduly a konfigurace jsou sestaveny s jazykem specifickým pro loutky založeným na Ruby nebo samotném Ruby, a budou tedy kromě dovedností správy systému vyžadovat i programové znalosti.

ScorecardŠkálovatelnost (20.0%) Dostupnost (20.0%) Výkon (10.0%) Hodnota (10.0%) Řízení (20.0%) Interoperabilita (20.0%) Celkové skóre (100%)
AnsibleWorks Ansible 1.38.09.09.09.08.07.0 8.2
Enterprise Chef 11.49.09.08.09.07.08.0 8.3
Puppet Enterprise 3.09.09.09.09.09.09.0 9.0
SaltStack Enterprise 0.17.09.09.09.09.09.08.0 8.8
$config[zx-auto] not found$config[zx-overlay] not found