Začínáte s vizualizačními nástroji? Nebo prolomit cestu konverzací o technologii na kontejnerech a virtuálních počítačích.
Virtualizace zahrnuje proces, kdy jednotlivé zdroje, jako je RAM, CPU, sítě a disky, mohou být „virtualizovány“ a považovány za více zdrojů. Klíčový rozdíl je v tom, že kontejnery mohou virtualizovat pouze softwarové vrstvy postavené nad úrovní operačního systému. Naproti tomu virtuální stroje mohou virtualizovat celé stroje na hardwarové vrstvy.
I když existuje jasný rozdíl, existuje seznam podobností mezi kontejnery a virtuálními stroji, včetně toho, jak zlepšují efektivitu IT, umožňují přenositelnost aplikací, zlepšují DevOps a životní cyklus vývoje softwaru (SDLC). Více o tom později.
Tento příspěvek rozebírá kontejnery a virtuální stroje, ponoří se do výhod obou a končí poznámkou o výběru správného nástroje na základě vašich potřeb. Předpokládá se také, že máte nezbytnou znalost kontejnerů a virtuálních strojů. Pokud ne, je to stále skvělé místo, kde začít.
Table of Contents
Historie virtualizace
Před rozšířením kontejnerů byly virtuální stroje jediným řešením pro izolaci prostředí v rámci fyzické infrastruktury. Ale teprve v roce 2013 Docker vydal svůj první kontejnerizační software.
A od té doby jste si možná všimli obrovského zájmu o kontejnery a o to, jak utvářejí krajinu cloud computingu.
Mnoho vývojářů získalo větší zájem, zejména o výhody agilního vývoje, který kontejnery nabízejí. Měli byste si však uvědomit, že kontejnery a virtuální stroje jsou postaveny na optimalizaci prostředků ve stávající fyzické infrastruktuře.
Jak funguje virtualizace
Virtualizace zahrnuje použití softwaru k vytvoření abstraktní vrstvy nad počítačovým hardwarem, což umožňuje hardwarové prvky, řekněme zejména z jednoho počítače, rozdělit do více počítačů. Takový software se nazývá hypervizor.
Hypervisor umožňuje souběžný běh různých operačních systémů a sdílení společných fyzických výpočetních zdrojů. Při použití na fyzických počítačích nebo serverech v datových centrech umožní fyzickým počítačům oddělit počítačové operační systémy (OS) a aplikace od hardwaru. Poté se může rozdělit na několik „virtuálních strojů“.
Co je to kontejner?
Zdroj: docker.com
Kontejnery představují lehkou a agilní metodu pro manipulaci s virtualizací. A protože nepotřebují hypervizory, opravňují vás k rychlejšímu poskytování zdrojů a rychlé dostupnosti nových aplikací.
Kontejnery můžete také zobrazit jako softwarové balíčky obsahující závislosti potřebné ke spuštění spravované aplikační softwarové aplikace.
Závislosti zahrnují systémové knihovny, balíčky externích kódů (od třetích stran) a zahrnutí všech ostatních aplikací na úrovni operačního systému. Všechny závislosti obsažené v kontejneru existují na úrovních zásobníku vyšších než operační systémy.
Klady 👍
Zápory 👎
Populární prodejci kontejnerů
Zde jsou někteří známí poskytovatelé kontejnerů:
Co je to virtuální stroj?
Zdroj: docker.com
Na druhé straně virtuální stroje (VM) jsou velké (těžké) softwarové balíčky poskytující kompletní emulaci nízkoúrovňového hardwarového vybavení, jako je centrální procesorová jednotka (CPU), disk a síťová zařízení.
Virtuální počítače vám umožňují provozovat více počítačů na různých operačních systémech a přitom stále na jednom počítači. Jak již bylo zmíněno, hypervizory jsou způsob interakce virtuálních počítačů s fyzickými počítači. Hypervizory oddělují virtuální počítače od sebe a alokují mezi ně zdroje, jako je paměť a procesory.
Klady 👍
Zápory 👎
Populární dodavatelé virtuálních strojů
Zde je několik oblíbených prodejců virtuálních strojů:
Kontejnery vs. virtuální stroje
Zatímco virtuální stroje existují již tak dlouho, jsou nahrazovány kontejnery pro podobné účely. Viděli jste klady a zápory obou technologických sad. Zde jsou hlavní rozdíly.
Virtuální stroje FeatureContainersVelké a méně přenosné založené na tom, že každý virtuální počítač má svůj operační systém. Virtuální stroje zabírají velký prostor, měřeno v gigabajtech.
Virtuální počítače nejsou přenosné. Nemají svůj vlastní operační systém. Mají vlastní operační systémy, a tak provádějí další úkoly, včetně; spouštění programů nekompatibilních s hostitelským OS, více programů na různých operačních systémech a spouštění aplikací, které nemohou sdílet prostředky a funkce operačního systému. Velikost a přenosnostMalé a přenosné díky sdílení operačního systému. Kontejnery zabírají místo měřené v megabajtech.
Kontejnery lze přesouvat mezi různými počítači. Kontejnery se spouštějí rychleji než virtuální stroje díky jejich již spuštěnému operačnímu systému. Spuštění trvá několik sekund. Rychlost spouštění VM jsou pomalé, protože musí nejprve zavést vlastní operační systémy. Spuštění trvá několik minut.Cena virtuálních počítačů je relativně vyšší – vysoká potřeba zdrojů a úrovní složitosti a vysoké náklady.Přístup ke zdrojůmKontejnery mají přístup ke všem zdrojům v hostitelském počítači.Virtuální počítače využívají specifické zdroje, které jsou jim přiděleny pomocí hypervizoru. Zabezpečení Méně bezpečné. Kontejnery běžící na sdíleném hostitelském operačním softwaru jsou zranitelné, když je ohrožen hostitelský OS.Složité nasazení; úroveň složitosti virtuálních počítačů naznačuje, že potřebují více času na vývoj. Nasazení se neliší.DeploymentSnadné nasazení; je to kvůli jeho povaze, „samostatný“ a jeho nasazení, přesun nebo upgrade je trochu snadné. Cena virtuálních počítačů je relativně vyšší. Vysoká potřeba zdrojů a úrovní složitosti spolu s tím jsou vysoké náklady. CenaCena kontejnerů je relativně nižší, protože je zde méně požadavků než u virtuálních počítačů. Cena virtuálních počítačů je relativně vyšší – vysoká potřeba zdrojů a složitost úrovně spolu s vysokými náklady.
Jak používat kontejnery a virtuální stroje současně
Pokud vás zajímá, zda je možné používat kontejnery a virtuální stroje společně, odpověď je ano. Praktické případy jsou však omezené. Můžete vytvořit virtuální počítač pro emulaci konkrétních hardwarových konfigurací a instalaci operačního systému.
Jakmile váš virtuální počítač zavede operační systém a je plně funkční, jste nyní vybaveni emulovaným výpočetním systémem se specifickým hardwarem, na který můžete instalovat kontejnery.
Dobrým příkladem pro ilustraci této konfigurace je experimentování se systémem pro nasazení čipů. Některé populární metody pro výpočetní zařízení na čipu, jako jsou vývojové desky BeagleBone a Raspberry Pi, lze emulovat jako virtuální stroje pro experimentování s provozními (běžícími) kontejnery před testováním na skutečném hardwaru.
Další výhodou použití sjednocení kontejnerů a virtuálních strojů je zvýšení bezpečnosti. Můžete například nasadit kontejnery ve virtuálních počítačích. Zvažte příklad, kdy je na jednom počítači nasazeno deset kontejnerů, abyste ukázali, jak je to užitečné.
Pokud dojde ke kompromitaci počítače, riskujete ovlivnění deseti kontejnerů. Řešení je dosaženo distribucí deseti kontejnerů na deset virtuálních strojů. Pokud dojde ke kompromitaci jednoho virtuálního stroje, ostatní části systémové aplikace stále obvykle fungují.
Závěrečná slova
Pokud máte přesné specifikace hardwaru pro svůj projekt nebo vyvíjíte na jednom hardwaru a stále se zaměřujete na jiný, jako Windows vs. MacOS, bylo by nejlepší použít virtuální stroje. V jiných případech, kdy jsou požadavky „pouze software“, by nejlepší možností bylo použití kontejnerů.
Ve většině případů budou vaše potřeby uspokojeny některou z vašich možností. Chcete-li vybrat ten nejlepší, pochopte své potřeby zdrojů a související kompromisy. Správný nástroj tedy bude záviset na vašem projektu.
Pokud potřebujete rychlé a efektivní nasazení, kontejnery jsou vaší nejlepší volbou. Pokud vaše organizace potřebuje virtualizovat kompletní operační systém na hardwaru, jsou nejlepší virtuální počítače. A pokud chcete maximalizovat zabezpečení, nejlepší by byla kombinace obou; s tím však souvisí související náklady.
A konečně, jak kontejnery, tak virtuální stroje jsou platná řešení. Rozhodujícím vodítkem by však měly být vaše specifikace. Pokud stále potřebujete další pokyny a hluboké porozumění, navrhoval bych přejít na Docker vs. virtuální stroj.