Virtualizace ve víru open source

3. 1. 2015

Sdílet

 Autor: © vege - Fotolia.com
Projekty virtualizace jsou úspěšné nejen v komerčním světě, ale i u open source řešení. Není divu – idea „rozporcování“ hardwaru je lákavá a sdílení je vlastně jednou z hlavních ideí samotného open source.

Ve světě open source existují dvě hlavní virtualizační technologie, a to KVM (Kernel-based Virtual Machine) a Xen. Prvně jmenovaná se řadí přímo do hlavního jádra Linuxu, což usnadňuje její rozšíření do mnoha linuxových distribucí.

Druhá technologie vznikla dříve a je i díky Amazonu, který na ní staví téměř veškerou svou infrastrukturu EC2 cloudu, velmi populární. Distributoři však musejí podporu Xenu do každé nové verze Linuxu doplňovat samostatně.

Bez toho, že by se zabíhalo do technických detailů, lze říci, že obě zmíněná řešení nabízejí podobné vlastnosti i výkon.

Podpora virtualizace přímo v jádře operačního systému je však jen jedním prvkem z velké skládačky. Aby podnik mohl virtualizaci nasadit a spravovat, musí využít nějaký projekt pro efektivní správu virtuálních strojů.

Asi nejznámější open source projekty tohoto typu jsou Libvirt a oVirt. Libvirt je přitom vhodný spíše pro malá nasazení, a to do několika jednotek hostitelských serverů, protože nenabízí žádnou centralizovanou správu.

Plnohodnotným virtualizačním nástrojem pro větší organizace je oVirt, jenž poskytuje komplexní webovou administrační konzoli, uživatelský portál pro koncové uživatele a hypervizory se snadnou instalací a správou.

Ačkoli se oVirt orientuje zejména na komoditní storage systémy (iSCSI, NFS, GlusterFS, PosixFS), integrovat jej lze i s komerčními variantami Fibre Channel a se sítěmi SAN (Storage Area Network). Softwarově definovaná síť včetně podpory VLAN je u oVirtu samozřejmostí  stejně jako podpora (živých) migrací a vzdáleného přístupu na desktopy.

Projekt oVirt se těší široké podpoře od softwarových i hardwarových firem. Postaven je na známých technologiích KVM, WildFly (JBoss AS) a GWT, takže zpravidla není těžké sehnat dostatek odborníků pro nasazení.

Ačkoli oVirt je podobně jako jiné open source projekty k dispozici zdarma, pro produkční provoz je vhodné si pro implementaci vybrat kvalitního partnera.

 

Configuration management

Virtualizace jistě správu IT zefektivnila, ale co dál? Nabízí se několik možností. V poslední době hodně zejména nových firem upřednostňuje flexibilní způsob nasazování softwaru, kdy namísto delší fáze vývoje raději volí častější nasazování nových verzí do produkce (měsíčně, týdně nebo dokonce i několikrát denně).

Aby to šlo vůbec uskutečnit, je potřeba od základu změnit způsob instalace a konfigurace infrastruktury i aplikací. Tomuto fenoménu se také říká DevOps – spojení slov development a operations.

Nástrojů, které se k těmto účelům používají, je mnoho a pokrývají kompletní životní cyklus systémů, na kterých služby běží. Typicky je potřeba skloubit zajišťování instalací operačních systémů či jejich spouštění na virtualizaci nebo v cloudu, konfiguraci, testování a následnou správu. Tento způsob práce je vhodným krokem pro implementaci virtualizace.

Konfigurace se často zajišťuje open source deklarativními nástroji jako Puppet, Chef, CFEngine, Salt a Ansible. Zejména Puppet technologie se veze na vlně velké popularity a zdá se, že ji používají snad všechny podniky včetně nadnárodních korporací.

Hlavní myšlenka spočívá ve sdílení konfiguračních předpisů (tzv. manifestů). Tvorba konfigurace infrastruktury se tak dá zkrátit, protože se děje formou skládání a upravování již existujících manifestů.

Vhodné je používat software, který vše skloubí dohromady. Open source projekt Foreman nabízí provisioning na holém železe i virtualizaci v cloudu a následnou integraci na konfigurační nástroj Puppet. V přehledném uživatelském prostředí lze snadno vytvářet skupiny serverů, přiřazovat jim konfigurační třídy, parametry a monitorovat odchylky za běhu.

 

Směrem ke cloudům

Nejčastěji se cloud řeší pomocí virtualizace, i když tomu tak být nemusí. Když organizace nasadí vyspělou virtualizační technologii, jde o cloud?

Ano, virtualizační platformu lze do určité míry chápat i jako cloud – tedy pokud bude daná služba dostupná pro koncové uživatele, s dostatečnými prostředky s možností rychlého doplnění.

Pro úplné naplnění definice cloudu, tak jak jej chápe organizace NIST, je také třeba měřit spotřebu zdrojů. V tomto pohledu tedy čistou virtualizaci jako cloud zase chápat nelze, alespoň ne všechny implementace.

V poslední době je jedním z nejvíce sledovaných open source projektů na internetu OpenStack. Jde o komplexní řešení pro tvorbu soukromého, veřejného nebo hybridního infrastrukturního cloudu (IaaS), které se dá v lecčems inspirovat službou AWS/EC2. Projekt se těší bohaté oficiální podpoře od všech hlavních dodavatelů hardwaru i softwaru.

Podobnost s Amazonem je výhodou, protože uživatelé se dokážou velmi rychle zorientovat. Ovládání se řeší formou webového administrativního rozhraní, kde spravují instance, obrazy systémů, oddíly, sítě i objektovou databázi.

Produkty vycházející z OpenStacku nabízí mnoho poskytovatelů, přičemž každý řeší jiným způsobem instalaci i škálování. A zde přicházejí ke slovu systémy pro správu konfigurací CM (Configuration Management). Například RDO, jedna z distribucí OpenStacku, používá projekt Foreman.

Velké popularitě se ovšem těší také platforma jako služba (PaaS). Pro softwarové firmy je velmi atraktivní nabídnout svým pracovníkům možnost rychlého nasazení aplikací. Infrastruktura se v tomto případě zcela odstíní a koncový uživatel (vývojář) šetří spoustu času.

Takto lze nasazovat nejen aplikace pro použití uvnitř firmy, ale zejména řešení vyvíjená pro třetí strany, a tak samotný vývoj zefektivnit. Ideální kombinací pak je, když softwarová firma své aplikace pro koncové zákazníky přímo hostuje.

Mezi softwarem s otevřeným zdrojovým kódem a vhodnou licencí za zmínku stojí projekt OpenShift Origin, který nabízí flexibilní platformu pro technologie Java, J2EE, Ruby, Python, Perl, PHP, Zend, MongoDB, PostgreSQL a MySQL. Vychází z Linuxu, virtualizace KVM a kontejnerů se zabezpečením SELinux (Security Enhanced Linux).

Velkou výhodou OpenShiftu je rychlost zavedení. V první fázi lze pro počáteční vyhodnocení použít hostovanou verzi, poté zdarma nainstalovat OpenShift Origin uvnitř firmy, a pokud se prokáže zefektivnění práce, k dispozici je verze s komerční podporou od více dodavatelů.

 

Containers

Skupina vývojářů, kteří pracovali na virtualizační technologii KVM, naprogramovala i funkční operační systém OSv s částmi převzatými z FreeBSD Unixu (síťový a diskový stack). Učinili však v jeho případě několik zásadních rozhodnutí.

Jejich operační systém je určen pouze pro virtuální prostředí, což třeba eliminuje nutnost programovat stovky hardwarových ovladačů. V systému běží maximálně jeden proces a neexistuje uživatelský paměťový prostor. To věci zjednodušuje a zrychluje.

Operační systémy s mnoha funkcemi se díky virtualizaci často „degradují“ pouze na nositele jednoho procesu, kde běží samotná aplikace nebo služba (například SQL nebo webový server). Standardní OS ale vyžaduje další údržbu a je nutné platit často drahé licence a podporu.

Dnes je již OSv plně funkční a běží na KVM, Xenu a připravuje se podpora pro VMware. Autoři se v první fázi zaměřili na spouštění JVM (Java Virtual Machine), a díky svému návrhu rychlostně překonávají standardní, plnohodnotné operační systémy. První testy servírování webové aplikace pomocí technologie Apache Tomcat vypadají velmi nadějně.

Druhou zajímavou technologií, kterou používá zmíněný OpenShift, jsou kontejnery umožňující doslova „nakrájet“ operační systém na malé části, ve kterých běží aplikační procesy. Ty do ostatních kontejnerů nevidí, takže takto lze efektivně sdílet hardware (i virtualizovaný), a vměstnat tak mnoho procesů na jeden systém. Lze též definovat kvóty a přidělovat limity prostředkům.

Kontejnery určitě nejsou nic nového. Komerční Unixy je mají zabudované přímo v sobě (například AIX, Solaris, HP-UX), pro Linux a BSD existuje mnoho open source řešení jako třeba  OpenVZ, VServer nebo LXC. Ačkoliv se podpora v Linuxu stále zlepšuje, nastavení kontejnerů vyžadovalo od uživatelů vždy notnou dávku úsilí.

Tomu je ale díky projektu Docker konec. Docker představuje open source nástroj postavený nad technologií LXC, který výrazně zjednodušuje proces zabalení aplikace i samotný provoz v kontejnerech a poskytuje nástroje pro tvorbu obrazu (resp. balíčku) s aplikací a následné změny.

ICTS24

Kontejnery jsou velmi populární zejména pro tvorbu PaaS cloudů a lze je využít i v jiných IT workflow. Projekt se těší velkému zájmu a určitě o něm ještě bude hodně slyšet.

Autor je pracovníkem ve Virtualization R&D společnosti Red Hat