Pomerne často dostávam otázku, čo si predstaviť pod pojmom OpenStack. Myslím, že každému v oblasti IT tento pojem niečo hovorí. Niekto si pod ním predstaví niečo s virtualizáciou, iný zase Amazon AWS zdarma a podobne. Keďže na Slovenskom internete je informácii pomerne málo, tak sa pokúsim aspoň čiastočne popísať o čo ide.
OpenStack je slobodná a otvorená softvérová platforma pre cloud computing a objektové úložisko.
Zadefinovanie otvorenosti je veľmi podstatné, nakoľko ide o jeden z jej najväčších benefitov. Aby som bol úplne presný tak je licencovaný pod Apache License 2.0. Čiže všetko sa dá zdarma stiahnuť, upraviť či ďalej distribuovať, ale o tom až neskôr.
História
Patrilo by sa začať históriou, na jej začiatku sú Rackspace a NASA (Nebula). Odvtedy pribudli desiatky spoločností, ktoré do projektu OpenStack prispievajú či už finančne alebo kódom. Už ich je viac ako 500. Celá platforma je vydávaná v polročných iteráciách po kódovými názvami. Tým prvým bol Austin z októbra 2010 a posledná stable verzia je Mitaka (2016.4.0) zo 7 apríla, predchádzajúca bola Liberty z 16. októbra 2015. Vždy pri tejto príležitosti je naplánovaná konferencia, kde sa preberajú detaily noviniek ale aj smerovanie ďalšieho vývoja.
Projekty
Práve vývoj a neustále novinky sú hnacím motorom, ktorý robí OpenStack atraktívnou platformou. Ako si ju ale lepšie predstaviť? Najlepšie asi ako LEGO alebo inú skladačku. OpenStack sa skladá z viac ako dvoch desiatok samostatných projektov, ktoré umožňujú si poskladať čo potrebujete. Napríklad virtualizačné prostredie, objektové úložisko či databázu-ako-službu. V skratke popíšem aspoň najpoužívanejšie časti.
- Nova – je základom výpočtovej časti, vie obsluhovať hypervízor ako KVM, Xen a ďalšie, čiže ak chcete pracovať s VPS tak toto je to čo potrebujete. Zvláda aj linuxové kontajnery cez LXC
- Swift – objektové úložisko ako ho poznáte napríklad na Amazone v podobe S3. Je dobre škálovatelné a redundantné, môže sa použiť ako samostatná služba či backend pre zálohy a podobne
- Cinder – perzistentné blokové úložisko, ktoré riadi vytváranie, pripojenie a odpojenie blokových zariadení. Môžu sa použiť čoraz obľúbenejšie otvorené riešenia ako GlusterFS či Ceph, no aj komerčné ako Nexenta, EMC, Netapp a ďalšie
- Glance – je image service, čiže tu sa ukladajú imidže operačných systémov – umožňuje tvorbu templates. Tie vie ukladať na rôzne úložiská, jedným z nich môže byť práve spomínaný Swift
- Keystone – pre to aby jednotlivé služby spolu komunikovali treba mať na nich navytvárané prístupy s danými oprávneniami a tak isto ho aj uživatelia potrebujú. Ide teda o Identity Service, ktorá môže byť prepojená s adresárovými službami ako napríklad LDAP. Okrem štandardného prístupu pomocou pomocou uživateľských mien a hesiel podporuje aj tokeny ako ich možno poznáte z prostredia AWS
- Neutron – rieši celú sieťovú časť, pridelovanie IP, routing a podobne
- Ceilometer – každá časť z ktorej je stack vystavaný je merateľná, a teda je možné na ňu napojiť veľmi dobŕe a presné faktúrovanie za využité zdroje
Medzi ďalšie projekty patrí napríklad samotný dashboard Horizon z ktorého je možné vytvárať a manažovať všetko cez webové rozhranie. OpenStack má API, takže je možné ho integrovať s ďalšími systémami a prostredím. Za spomenutie stoji aj Trove, ktoré chce ponúkať reláčné a nerelačné databázy-ako-službu. Potom ešte Ironic, ktorý sa stará o to aby bolo k fyzickým serverom možné pristupovať ako k virtuálnym a tak ich spravovať. Veľké očakávania sú od integrácie kontajnerov, ktorú ma zastrešiť Magnum. Každý z týchto projektov je v rôznom štádiu vývoja a teda aj možnosti nasadenia, čo sa prejavuje na adopcii jednotlivých projektov.
Distribúcie
Ako som na úvode spomínal ide o skladačku, takže jednotlivé časti je možné kombinovať podľa vašich potrieb, prípadne ich nahradiť niečim iným. Existuje kopec providerov, ktorí maju svoje riešenia postavené na takýchto úpravách.
Tieto jednotlivé projekty sú dostupné ako zdrojové kódy, poskladať z nich ale vlastný cloud dá kopec námahy a znalostí. Aj preto existujú rôzne distribúcie od rôznych výrobcov, ktorí pre ne vytvorili nejaký inštalačný proces. Každý takýto výrobca si vyberie súčasti, ktoré bude používať a väčšinou ich inštaláciu zapracuje do nejakého konfiguračného manažmentu (Puttet, Ansible a pod.). Takýto svoj build ponúka na voľné stiahnutie, no a samozrejme aj ako komerčný produkt so supportom. Čiže odporúčaný HW, storage a network setup. Ten si celý môžete kúpiť od neho, prenajať či len si ho nechať nainštalovať na svoje železo.
OpenStack je vydávaný z pohľadu produkčného nasadenia v pomerne rýchlych iteráciách, čiže toto nemusí vyhovovať každému a tak isto ani výrobcovia nevedia takto rýchlo reagovať a vydávať svoje verzie, takže napríklad ponúkajú dlhodobejšiu podporu pre jednotlivé vydania. Spomeniem napríklad Mirantis, Rackspace, Canonical, RedHat či český TCP Cloud – chalani o sebe dávajú čoraz častejšie vedieť.
Nadácia
OpenStack momentálne je naozaj obrovský projekt a jeho najväčší podporovatelia v ňom majú rôzne záujmy. Toto treba držať pod kontrolou a o to sa stará OpenStack Foundation. Funguje na tradičnom hlasovacom princípe, chráni trademark projektu, vyberá poplatky za členstvo a možnosti použitia názvu v produktoch, organizuje konferencie a podobne. Osobné členstvo je zdarma, firemné je pomerne nákladné a naozaj si ho môžu dovoliť len obrovské korporácie.
Python a prispievanie do kódu
Čo som ešte nespomenul je v čom je OpenStack naprogramovaný – ide o Python. Čo sa týka prispievania do projektu, tak to je pod brutálnym dohľadom a validáciou. Ale samozrejme je veľmi vítané a žiadané. Na minuloročnom FOSDEM-e som bol na prednáške slečny, ktorá práve takýmto spôsobom získala prácu a to len pridávaním licencie k jednotlivým projektom :) Každopádne korporácie veľmi pozorne sledujú všetku aktivitu a priamo oslovujú ľudí s ponukou práce.
Práca
Tu sa dostávam k druhej časti nadpisu. Priemerný plat z globálneho hľadiska človeka, ktorý pracuje s Openstackom je asi 140 000 dolárov ročne. Jasné, že u nás je situácia iná ale z vlastnej skúsenosti môžem povedať že mi prišla ponuka na 1 milión českých korún za ročný projekt. To je asi jedna tretina z globálnej sumy, ale stále myslím že na našu zemepisnú šírku nadštandardná. Samozrejme aj tu môže ísť o rôzne pozície, iný plat má napríklad administrátor a iný zase vývojár.
Certifikácia
Výhodou otvorenosti celého systému je, že otvorená a dobre popísaná je aj dokumentácia. Netreba si na začiatok kupovať žiadne drahé kurzy. Materiálu je neúrekom online.
Samozrejme potvrdenie vašich znalostí je obrovským bonusom, ktorý sa da zabezpečiť certifikáciou. Tú poskytujú spolu s kurzom aj tvorcovia jednotlivých distribúcii. Je len na vás, či chcete kurz alebo absolvovať len skúšku. Len pre zaujímavosť:
Mirantis
- OpenStack Bootcamp I (OS100) - 2795 $
- OpenStack Bootcamp II (OS200) - 2795 $
- MCA100 OpenStack Certification Exam - 400 $
- MCA200 OpenStack Certification Exam - 600 $
Rackspace
- OpenStack Fundamentals - 2500 $
- OpenStack Compute Essentials - 1250 $
- OpenStack Object Storage Essentials - 1250 $
- OpenStack Networking - Neutron - 3500 $
- Rackspace Certified Technician for OpenStack-Icehouse - 200 $
Najnovšie cetifikáciu spustila aj samotná nadácia (cez svojich partnerov), čiže ak sa chcete pochváliť nálepkou Certified OpenStack Administrator, tak vás to výjde na 300 dolárov.
Ako začať
Najlepšie tak, že si OpenStack nainštalujete a preskúmate. V dnešnej dobre to nie je absolútne žiaden problém, stačí vám aj virtualizácia či kontajnery na vašom notebooku. Existujú aj inštalátory, ktoré všetky potrebné komponenty vedia nainštalovať na jeden server – RDO alebo DevStack.
Ďalšie tipy:
- prelúskajte web OpenStack.org
- čítajte magazín Superuser a všetok zaujímavý agregovaný obsah na Planet OpenStack
- followujte @OpenStack
- poďte na jednodňové podujatia do Budapešti, či prvý raz do Prahy
- alebo na najbližší Summit do Barcelony
- Slovenská Facebook grupa je mŕtva a je tu OpenStack Czech User Group
Na záver
Čo sa týka témy OpenStack určite nie sme na konci a môžete sa tešiť na ďalší materiál. OpenStack je mimoriadne zaujímavý a čo sa týka core projektov tak aj vyspelý projekt. Produkčne sa nasadzuje, má dobré meno a oplatí sa mu venovať. A to na akejkoľvek úrovni – či už infraštruktúrne ako admin, alebo vývojovo či hľadať problémové časti a pokúsiť sa ich riešiť. Hneď máte úspešný startup :) Ľudia chýbajú už teraz a budú určite aj v budúcnosti.