Týmům informačních technologií (IT) se při provozu kontejnerových aplikací nabízí mnoho možností, které se týkají všech úrovní technické odbornosti.
Může být obtížné vybrat jednu, vzhledem k tomu, že poté, co si vyberete, pravděpodobně nebudete v dohledné době migrovat na jinou možnost.
Tento příspěvek porovnává dvě závažné možnosti: Amazon Elastic Container Service (ECS) a Kubernetes.
Obě jsou schopné platformy v doménách orchestrace kontejnerů a správy mikroslužeb. A těsně před dalším přesunem neuškodí osvěžovač na nádobách. Kontejnery byly popularizovány pro usnadnění vývoje kódu, propagaci a nasazení v mnoha prostředích. Jsou to abstrakce v aplikačních vrstvách, obalující kód s nezbytnými závislostmi, knihovny a nastavení prostředí do spustitelného balíčku.
Zatímco hlavním cílem používání kontejnerů je zjednodušit proces nasazení kódu, správa tisíců z nich je stále náročnější. K implementaci vysoce spolehlivých nasazení, škálování aplikací podle zatížení, výměně nezdravých kontejnerů za nové, vyvažování zátěže a odhalování portů je zapotřebí jiný mechanismus.
Zde přichází na pomoc kontejnerová orchestrace. Kromě toho jsou potřeba prostředky pro provoz kontejnerů a správu jejich celkové infrastruktury. K řešení tohoto problému je k dispozici mnoho nástrojů, ale zúžíme zaměření na několik.
Tento článek porovnává ECS a Kubernetes, zdůrazňuje výhody každého z nich a uzavírá směr, jak vybrat ten správný na základě vašeho projektu.
Table of Contents
Co je Amazon ECS?
Amazon ECS je služba pro orchestraci kontejnerů, která zjednodušuje nasazování, správu a škálování kontejnerizovaných aplikací. V zásadě definujete svou aplikaci a její požadované zdroje. Poté Amazon ECS spustí, monitoruje a škáluje vaši aplikaci napříč výpočetními možnostmi a zároveň umožňuje integraci dalších potřebných služeb AWS. Můžete například zkontrolovat stav a upravit své clustery programově.
ECS vám umožňuje nasazovat vaše aplikace prostřednictvím skupiny serverů, nazývaných clustery, pomocí definic úloh a volání aplikačních programových rozhraní (API).
Přečtěte si také: Jaké instance AWS EC2 byste měli použít?
Výhody Amazon ECS
Omezení ECS
Co je Kubernetes?
Kubernetes, běžně nazývaný K8s, je open-source software pro automatizaci nasazení, škálování a správy kontejnerizovaných aplikací.
S využitím 15 let zkušeností s provozováním produkčních úloh Google (kombinací nejlepších nápadů a komunitních postupů) K8s seskupuje vaše aplikační kontejnery do logických jednotek, které můžete snadno objevovat a spravovat.
Kromě toho primární funkce K8s, jako je vyrovnávání zátěže, trvalé úložiště, automatizovaná vrácení pro kontejnerové aplikace, tajemství, samoléčení pro clustery Kubernetes a správa konfigurace.
Přečtěte si také: Začínáme s Kubernetes: Úvod pro začátečníky
Výhody Kubernetes
- Kontrola stavu a samoléčení – Kubernetes chrání vaše aplikace před selháním prostřednictvím pravidelných kontrol uzlů. Pokud dojde k rozdrcení pouzdra nebo nádoby v důsledku chyby, K8s automaticky využije náhradu.
- Vyrovnávání zátěže a směrování provozu – Pokud jde o směrování provozu, K8 budou odesílat požadavky pouze do příslušných kontejnerů. A s vyrovnáváním zátěže K8s rozděluje zátěže mezi moduly, čímž vyvažuje vaše zdroje pro několik případů, jako jsou výpadky, náhodný špičkový provoz nebo dávkové zpracování. Opět můžete také použít externí load balancery, pokud chcete.
- Automatické škálování – Tato funkce umožňuje automaticky upravit počet spuštěných kontejnerů podle využití CPU a dalších ukazatelů CPU.
- Ruční škálování – Pomocí této funkce můžete škálovat počet spuštěných kontejnerů pomocí příkazového řádku nebo rozhraní.
- Řadič replikace – Tento nástroj vám umožňuje určit počet modulů, které odpovídají specifikaci vašeho clusteru; pokud je jich málo, začne znovu, a pokud je jich příliš mnoho, ukončí je.
- Automatizované vrácení a zavádění – Možná budete chtít zavést některé nové konfigurace nebo aktualizace aplikací během vývoje. K8s vám umožňuje uzákonit proces bez výpadku aplikace. V případě poruchy se K8 roboticky vrátí k předchozí verzi.
- Nasazení Canary – Tuto funkci můžete využít testováním nových nasazení v produkci paralelně s předchozí verzí; K8s vám umožňuje zmenšit poslední verzi aplikace a současně zvětšit nejnovější verzi.
- Různá podpora programovacích jazyků a frameworků – Ať už pocházíte z programovacích jazyků Go, Java nebo .Net, Kubernetes podporuje mnoho vývojových jazyků a frameworků. Pokud může aplikace běžet na kontejneru, běží na K8.
Omezení Kubernetes
Porovnání ECS a Kubernetes
Zde je srovnání vedle sebe, které ukazuje rozdíly:
Pointa rozdíluKubernetesAmazon ECSApplication definitionAplikace se nasazují kombinací modulů, uzlů a služeb. Nasazování aplikací má podobu úkolů. Úkoly jsou instance kontejnerů – například kontejnery Docker běžící na instancích ECS.DeploymentComplex, protože clustery musíte nasazovat a konfigurovat ručně.Snadné nasazení prostřednictvím konzole AWS.Podpora uzlů (počet strojů)5000 uzlů na cluster.1000 uzlů na cluster .KontejneryAž 300 000 kontejnerů na cluster.Omezeno využitou kapacitou infrastruktury.Vyrovnávání zátěžePodsy jsou vystaveny prostřednictvím služeb používaných jako vyrovnávače zátěže za řídicími jednotkami vstupu.K dispozici jsou dva vyrovnávače zátěže; ELB-Application nebo Network.PricingFree.ECS jsou zdarma, ale za zdroje EC2 musíte platit.OptimalizaceDobře optimalizována pro jeden velký cluster.Předkonfigurována s požadavky a požadavky na kontejner.AutoscalingParametry automatického škálování definujete při vytváření nasazení.Používáte monitorovací služby jako CloudWatch k automatickému škálování na základě CPU, paměti a vlastních parametrů.Kontrola stavu K dispozici jsou dvě kontroly stavu: připravenost a živost.Dosahováno prostřednictvím monitorovacích služeb, jako je CloudWatch.Objevování službyProváděno prostřednictvím proměnných prostředí nebo DNS.Dosaženo prostřednictvím monitorovacích služeb – CloudWatch.Vendor-lock vNe.Ano.
Případy použití ECS a Kubernetes
Zde je návod, jak technologie kontejnerizace ECS a Kubernetes revolucionizuje průmysl:
ECS INC International zdůrazňuje četné případy použití, kdy byla implementována technologie ECS. V moderních lékařských zařízeních najdete revoluční metody léčby pacientů a techniky podávání léků. Existuje mnoho nástrojů, jako jsou elektronické inhalátory, lékařské autoinjektory a infuzní pumpy.
V doméně IoT máme zařízení pro chytrou domácnost. Pokud přesunete pozornost na automobilový průmysl, máme chytrá elektrická auta s lepším zážitkem z jízdy a vylepšenými bezpečnostními opatřeními, jako jsou asistované brzdové systémy.
To je zatím špička ledovce; můžete se podívat na další aplikace ECS, které nejsou omezeny na bezdrátovou technologii, nositelná zařízení a případy průmyslového použití.
Na druhé straně má Kubernetes svůj podíl na praktických aplikacích. Za prvé, cloud IBM nabízí privátní, veřejné a hybridní funkce v širokém rozsahu běhových prostředí.
Spotify, gigant v oblasti streamování hudby, využívá technologii Kubernetes k usnadnění bezproblémových operací, až 10 milionů požadavků za sekundu. I když se jedná o případy použití v reálném světě, K8 nabízí více funkcí v architektuře mikroslužeb, cloudových nativních síťových funkcích, strojovém učení a otáčení životního cyklu vývoje softwaru.
Závěrečná slova
Po prostudování tohoto průvodce máte solidní přehled o výhodách a nevýhodách volby ECS nebo K8. Klíč k výběru správné možnosti je založen na několika argumentech. Budete muset zvážit náklady, omezení služeb a náklady na talenty.
Pokud chcete využívat bezplatnou službu, K8s bude vaší volbou číslo jedna. Budete však potřebovat solidní talent nebo dovednosti, abyste zvládli složitost, která s tím přichází. I když K8 nemá omezení na dodavatele, bude vyžadovat důkladné pochopení toho, jak platforma funguje. Na druhou stranu ECS dostalo rychlé konfigurace.
Dále se podívejte na podrobnou příručku o Kubernetes vs. Docker.