Flux 7 představuje 8 běžně používaných případů použití Dockeru, konkrétně zjednodušenou konfiguraci, správu kódových pipeline, zlepšenou efektivitu vývoje, izolované aplikace, konsolidované servery, ladění schopností, vícenájemní prostředí a rychlý vývoj. Mluvili jsme o Dockeru, jak ho používat a při jakých příležitostech? Možná vám tento článek pomůže. Pokud je potřeba něco sdělit, můžete nám napsat komentáře.
Před několika týdny jsme se zúčastnili DockerConu, první technologické konference zaměřené na Docker. Je určen vývojářům a praktikům, kteří mají zájem o vytváření, dodávání a provozování distribuovaných aplikací na otevřené platformě Docker, ať už běží na jejich vlastních noteboocích nebo virtuálních strojích v datovém centru. Konference jsme se zúčastnili a Flux7 je partnerem pro systémovou integraci pro nadace Docker a hostujícím řečníkem.
Náš generální ředitel, Aater Suleman, hovořil s jedním z našich klientů. I když byl DockerCon velmi zábavný, měl jsem pocit, že konference se příliš zaměřila na specifika Dockeru a zanedbávala jeho použití. V tomto článku tedy chci představit a sdílet některé praktické případy využití Dockeru.
Než se pustíme do řešení případů použití Dockeru, podívejme se na to, co dělá Docker tak výjimečným.
Docker nabízí lehkou virtualizaci téměř bez dalších režijních nákladů, což je docela zajímavé.
Za prvé, nemusíte se obávat dodatečných režijních nákladů Dockeru a zároveň si užívat virtualizační výkon, který přináší. Za druhé, na stejném stroji můžete vytvořit větší počet kontejnerů než na virtuálním stroji.
Další výhodou Dockeru je, že kontejnery lze spustit a zastavit během několika sekund. Solomon Hykes, zakladatel Dockeru, jednou mluvil o tom, co Docker dokázal navíc k LXC, a můžete se na to podívat.
Zde jsou některé mé případy použití Dockeru, které ukazují, jak využít výhody Dockeru k vytvoření konzistentního prostředí s nízkou režií.
1. Zjednodušená konfigurace
Toto je hlavní využití Dockeru, které propaguje společnost Docker Company. Největší výhodou virtuálních strojů je možnost provozovat různé platformy (software, systémy) na vašich hardwarových zařízeních a Docker poskytuje stejnou funkcionalitu s menší režijní zátěží. Umožňuje vám vložit runtime a konfiguraci do kódu a pak je nasadit, a konfigurace stejného Dockeru může být použita v různých prostředích, což snižuje propojení mezi hardwarovými požadavky a aplikačními prostředími.
2. Správa kódového potrubí
Předchozí scénář velmi pomáhá při správě pipeline kódu. Kód prochází mnoha mezilehlými prostředími od počítače vývojáře až po finální nasazení v produkčním prostředí. Každé mezilehlé prostředí má své malé rozdíly a Docker poskytuje prostředí, které je konzistentní od vývoje až po spuštění, což výrazně usnadňuje zpracování kódu.
3. Zlepšit efektivitu rozvoje
To přináší další výhody: Docker zvyšuje produktivitu vývojářů. Pokud chcete vidět podrobnější příklad, můžete se podívat na Aaterovu přednášku na DevOpsDays Austin 2014 nebo DockerConu.
V různých vývojových prostředích chceme všichni dělat dvě věci dobře. Za prvé, chceme, aby vývojové prostředí bylo co nejblíže produkčnímu, a za druhé, chceme rychle vybudovat vývojové prostředí.
Ideálně bychom k dosažení prvního cíle měli provozovat každou službu v samostatném virtuálním stroji, který by monitoroval její stav v produkci. Nechceme však potřebovat síťové připojení pokaždé, a je obzvlášť obtížné se pokaždé při překompilaci připojit na dálku. To je to, co Docker dělá obzvlášť dobře, stroje ve vývojovém prostředí obvykle mají relativně malou paměť, a při použití virtuálního prostředí často potřebujeme přidávat paměť do strojů ve vývojovém prostředí, ale nyní může Docker snadno povolit spustit desítky služeb v Dockeru.
4. Izolovat aplikace
Existuje mnoho důvodů, proč byste mohli zvolit spuštění různých aplikací na jednom stroji, například v zmíněných scénářích pro zvýšení efektivity vývoje.
Často musíme zvážit konsolidaci serverů pro snížení nákladů a rozdělení monolitické aplikace na jednu volně propojenou službu. Pokud chcete pochopit, proč jsou volně propojené aplikace tak důležité, podívejte se na tento článek od Stevea Yege, který porovnává Google a Amazon.
5. Konsolidovat servery
Stejně jako je více aplikací integrováno prostřednictvím virtuálních strojů, schopnost Dockeru izolovat aplikace umožňuje Dockeru konsolidovat více serverů za účelem snížení nákladů. Bez paměťové stopy z více operačních systémů a s možností sdílet nevyužitou paměť mezi více instancemi může Docker nabídnout lepší řešení pro konsolidaci serverů než virtuální stroje.
6. Schopnost ladění
Docker nabízí spoustu nástrojů, které nejsou nutně jen pro kontejnery, ale fungují i pro kontejnery. Nabízejí spoustu funkcí, včetně možnosti nastavit kontrolní body pro kontejnery, nastavit verze a vidět rozdíly mezi dvěma kontejnery, což může pomoci s laděním chyb. Příklad toho najdete v článku Docker Save the World.
7. Vícenájemní prostředí
Dalším zajímavým případem použití Dockeru jsou aplikace s více nájemci, které se mohou vyhnout přepisování kritických aplikací. Jedním konkrétním příkladem tohoto scénáře je vývoj rychlého, snadno použitelného multitenantního prostředí pro IoT aplikace. Tento základní kód pro více nájemců je složitý a obtížně zvládnutelný, a přeplánování takové aplikace je ztráta času i peněz.
S Dockerem je snadné a levné vytvářet izolovaná prostředí pro více instancí aplikační vrstvy každého tenanta, díky rychlosti Docker prostředí a jejich efektivním diff příkazům.
Více o tomto scénáři se můžete dozvědět zde.
8. Rychle nasadit
Před virtuálními stroji trvá několik dní, než se zavedou nové hardwarové zdroje. Virtualizační technologie Dockeru tento čas zkracuje na minuty a Docker jednoduše vytvoří kontejnerový proces bez spuštění operačního systému, což trvá několik sekund. Přesně to oceňují jak Google, tak Facebook.
Můžete vytvořit destro ve svém datovém centru, aniž byste se museli obávat režijních nákladů na restart. Obvykle mají datová centra pouze 30% využití zdrojů a využití zdrojů lze zlepšit pomocí Dockeru a efektivního přidělování zdrojů. |