Virtuális gép vagy konténer? Döntési szempontok az üzemeltetésben
Mi a különbség a virtuális gép és a konténer között, mikor melyiket érdemes választani, és miért fér meg a kettő egymás mellett egy közepes cég infrastruktúrájában.
Az üzemeltetési megbeszéléseken ma szinte mindig elhangzik a kérdés: ezt virtuális gépen futtassuk, vagy konténerben? A két technológia nem versenytársa egymásnak, hanem más-más szinten választja szét az alkalmazásokat. Ha értjük a különbséget, a döntés legtöbbször magától adódik.
A lényegi különbség
A virtuális gép (VM) egy teljes számítógépet utánoz: saját operációs rendszert, kernelt és virtuális hardvert kap, a fizikai gépen pedig egy hipervizor osztja szét köztük az erőforrásokat. A konténer ezzel szemben a gazdagép kernelét használja, csak a folyamatokat, a fájlrendszert és a hálózatot választja le a többitől. Ezért a konténer másodpercek alatt indul, és jóval kevesebb memóriát igényel, a VM viszont erősebb elszigetelést ad.
Mikor jobb a virtuális gép?
- Ha az alkalmazás más operációs rendszert igényel, mint a gazdagép, például Windows-szerver egy linuxos környezetben.
- Régi, monolitikus szoftvereknél, amelyeket egy teljes szerverre terveztek, és nem lehet szétbontani.
- Ha szigorú elszigetelés kell különböző ügyfelek vagy biztonsági szintek között.
- Ha a szállító csak egy adott operációs rendszeren és verzión támogatja a terméket.
Mikor jobb a konténer?
- Saját fejlesztésű, gyakran frissülő webes alkalmazásoknál, ahol ugyanaz a csomag fut a fejlesztői gépen, a tesztkörnyezetben és élesben.
- Ha az alkalmazás kisebb, egymástól független szolgáltatásokból áll.
- Ha a terhelés ingadozik, és gyorsan kell példányokat indítani vagy leállítani.
Vegyes környezet a gyakorlatban
Egy közepes cégnél a leggyakoribb felállás, hogy a konténerek is virtuális gépeken futnak. A VM-réteg adja a stabil, jól menthető alapot és az elszigetelést, a konténerek pedig a gyors telepítést. A könyvelő- vagy vállalatirányítási rendszer jellemzően saját VM-en marad, a belső webes eszközök és API-k pedig konténerekben futnak.
Amire a döntés előtt figyeljünk
A konténerek kezelése új tudást igényel: képek (image) építését, egy registry üzemeltetését, nagyobb méretben orkesztrációt. Ha a csapatban nincs erre kapacitás, egy jól karbantartott VM-park sokszor olcsóbb megoldás. A mentést is másképp kell gondolni: a konténer maga eldobható, ezért az adatokat tároló köteteket és adatbázisokat kell külön, rendszeresen menteni.