Várható volt, hogy ez a fordulat előbb-utóbb bekövetkezik, mert a virtualizáció térhódítása az elmúlt pár évben különösen felgyorsult, a bevirtualizált szerverek aránya sok szervezetnél ma már meghaladja a 75 százalékot.
Közrejátszanak azonban a trendfordulóban más tényezők is. Jóllehet a vállalaton belüli adatközpontokban a virtualizáció továbbra is a legelterjedtebb platform az x86-os szervereken futó munkaterhelések kiszolgálására, a Gartner elemzői szerint a szolgáltatás új modelljei és megközelítései - közöttük a számítási felhő és a konténeralapú virtualizáció - egyre nagyobb hatást gyakorolnak erre a piacra.
Egyes szervezetek körében erősödik a "fizikalizáció" trendje is, követőinek több mint 20 százaléka mondta, hogy 2017-re x86-os szervereinek kevesebb mint egyharmadát virtualizálja be - ez az arány egy év alatt a kétszeresére nőtt. A szoftveresen meghatározott infrastruktúra (SDI) és a hiperkonvergens, integrált rendszerek (HCIS) megjelenésével a szervervirtualizáció nyomás alá került. Még pár évvel ezelőtt is mindenki egyetértett volna azzal, hogy az infrastruktúra agilitásának növelésére a szervervirtualizáció a legjobb megoldás, mára azonban bővült a választék, mutatott rá elemzésében (Market Trends: x86 Server Virtualization, Worldwide, 2016) a Gartner.
Menő Docker
Minthogy a virtualizált és a felhőalapú alkalmazások, amelyek a közelmúltig jellemzően a házon belüli adatközpontban, egyszerű szoftverképek formájában futottak, egyre inkább hibrid környezetben futtatható és méretezhető, többrétegű alkalmazásokká fejlődnek, új megközelítésekre van szükség, amelyekkel csökkenthető az architektúra összetettsége, fejtette ki a Gartner egy másik jelentésben (Cool Vendors in DevOps, 2015), amelyben a hasonló nevű, nyílt forráskódú szoftverkonténer-technológia mögött álló Dockert a DevOps módszert támogató, legmenőbb szállítók közé sorolta.
A Docker azzal egyszerűsíti az elosztott alkalmazások fejlesztését, szállítását és futtatását, hogy egy fájlrendszerbe csomagolja a szoftvert, amely mindent tartalmaz, ami a futtatásához szükséges - a kódot, a futtatókörnyezetet, a rendszereszközöket és -könyvtárakat, vagyis mindazt, ami egy szerverre telepíthető. A konténerbe csomagolt alkalmazás ennek köszönhetően minden környezetben azonos módon fog futni, legyen az házon belül vagy a nyilvános felhőben, vagy mindkettőben.
Egyre több vállalat támogatja a Docker platformjával a DevOps-ra jellemző, folyamatos alkalmazásintegrációt és -szállítást (angolul continuous integration/continuous delivery CI/CD), amivel nagyobb hatékonyságot, lényegesen gyorsabb alkalmazásfrissítést és -bővítést ér el, miközben a kód megbízhatóságát is növelni tudja. Az ING, a világ egyik legnagyobb pénzügyi szolgáltatója is a Docker platformmal áramvonalasította több száz, különböző szervezeti egységet kiszolgáló alkalmazásainak folyamatos továbbfejlesztését, amelyen több mint 180 DevOps-csapat dolgozik. A fejlesztéshez, a teszteléshez és a közzétételhez szükséges szerverek gyorsabb hozzárendelésével, a bevezetés, a teljes CD-folyamat automatizálásával a cég az infrastruktúra-erőforrások használatát tekintve 50 százalékos költségcsökkentést ért el, emelte ki a Gartner jelentés kapcsán a Docker saját weboldalán.
Öreg VM nem vén VM
Az önálló futtatókörnyezetként működő konténerek egyedül a hoszt operációs rendszer magján osztoznak, így bár a virtuális gépekre (VM-ekre) emlékeztetnek, azoknál sokkal könnyebbek, mivel nem fut rajtuk egy teljes vendég-operációsrendszer. Egy nagyobb rendszerben ezzel szemben, amelyben számos virtuális gép működik, a vállalat ugyanannak az operációs rendszernek megannyi telepítését kénytelen használni. Ugyanazon a hardveren ezért átlagosan hat-nyolcszor több konténer futtatható, mint virtuális gép - írja testvérlapunk, az InfoWorld a két megközelítést összehasonlító cikkében (Chenxi Wang: Linux containers and Docker explained, 2016. május). A webméretű követelményeket támasztó alkalmazáskörnyezetekben a hagyományos szervervirtualizációval összevetve a könnyű, jól hordozható és rugalmas konténerek sokkal vonzóbb megoldásnak tűnnek.
LXC néven ismert az eredeti Linux konténer, amely egy operációsrendszer-szintű megoldás, amellyel több, egymástól elszigetelt Linux rendszer futtatható ugyanazon a hoszton. A konténerek elválasztják az alkalmazást az operációs rendszertől, vagyis a vállalatok a Linux egy minimális, tiszta telepítését futtathatják, és minden mást egy vagy több konténerbe csomagolhatnak. A konténereket azután szabadon, rendkívül egyszerűen mozgathatják a technológiát támogató Linux szerverek között.
A Docker, amely speciális, egyalkalmazásos LXC konténerek fejlesztését célzó, nyílt forráskódú projektként indult, néhány jelentős változtatást eszközölt a nagyobb hordozhatóság és rugalmasabb használat érdekében. Idővel önálló futtatókörnyezetté fejlődött, amely lényegében felhőszerű rugalmasságot kölcsönöz minden, konténerek futtatására alkalmas infrastruktúrának. Sokak szerint ezért a Dockernek köszönhető, hogy napjainkban ilyen gyorsan nő a konténermegoldások népszerűsége.
Lényegüket tekintve mind a Docker, mind az LXC konténerek kis helyet foglaló, könnyűsúlyú virtualizációs mechanizmusnak számítanak, amelyek hasonló módon kezelik az erőforrások elszigetelését, azonban van közöttük néhány fontos különbség is.
A nagyobb hordozhatóság talán a Docker legnagyobb előnye az LXC-vel szemben. A Docker a hálózat, a tárolóhely és az operációs rendszer több elemét választja el az alkalmazástól, mint az LXC, így azt valóban függetleníti az alacsony szintű erőforrások konfigurációitól. A becsomagolt alkalmazás környezete így biztosan változatlan marad, amikor a felhasználó a hosztok között mozgatja a Docker konténereket.
Köszönhetően ennek a megközelítésnek a fejlesztők olyan helyi fejlesztőkörnyezeteket alakíthatnak ki, amelyek pontosan megegyeznek a leendő éles környezetekkel. Miután a fejlesztő végzett a kódírással és -teszteléssel, a szoftvert egyszerűen becsomagolhatja egy Docker konténerbe, és azt közvetlenül közzéteheti a nyilvános felhőben, például egy AWS szerveren, vagy a vállalat saját magánfelhőjében, és az alkalmazás azonnal működni fog, mert környezete nem változott.
Látva a konténerek előnyeit, milyen szempontok alapján döntheti el a vállalat, hogy mikor melyik virtualizációs megközelítést érdemes használnia?
Mivel a konténerek egy operációs rendszer adott verziójához kötik a felhasználót, az ebből fakadó előnyök mellett bizonyos korlátokat is szabnak. Ha a legfontosabb követelmény, hogy ugyanazt az alkalmazást a lehető legtöbb példányban a lehető legkevesebb szerveren futtassa a vállalat, akkor célszerű a konténereket választania, annak tudatában, hogy a rendszerek védelmére fokozottan kell ügyelnie, amíg a konténerek biztonságával kapcsolatban minden szakmai kérdés megnyugtató választ kap.
Többféle alkalmazást, illetve különböző operációs rendszereket futtató vállalatok voksoljanak inkább a virtuális gépekre, és tegyék ezt egyelőre azok a szervezetek is, amelyeknél a biztonság első számú kritérium, tanácsolja az InfoWorld cikkírója.
Más szóval a szervezetek többsége a gyakorlatban konténereket és virtuális gépeket is futtatni fog adatközpontjában, illetve a nyilvános felhőben. A konténerek gazdaságossága, különösen nagy méretekben, akkora pénzügyi előnnyel kecsegtet, hogy azt aligha hagyhatja bárki figyelmen kívül. Ugyanakkor a virtuális gépek még mindig számos erénnyel bírnak.