OpenStack tento rok oslávi svoje desiate narodeniny. WebSupport naň pred 7 rokmi vsadil a serverové produkty ako Virtuálny server (VPS), Virtuálne dátové centrum (VDC) a Private cloud sú postavené práve na ňom.
Jedným z kľúčových ľudí vo WebSupporte je Peter Slovák, ktorý pôsobí ako IT Architect a o OpenStacku nám porozprával viac.
Čo je to OpenStack?
OpenStack sám seba označuje za “cloudový operačný systém”. Ide o skupinu projektov, z ktorých každý rieši istú oblasť prevádzky, istú technológiu a ako celok tvoria kompletnú platformu pre prevádzkovanie cloudových služieb. Napríklad projekt Nova zoskupí dostupné CPU a RAM zo serverov, kde beží; projekt Cinder zase zoskupí dostupný diskový priestor. A spolu vám umožnia z týchto zdrojov vytvárať virtuálne servery. Ak sa rozhodnete pre ďalšiu funkcionalitu, máte možnosť doinštalovať ďalšie projekty. OpenStack teda predstavuje akúsi abstrakciu nad hardvérovými zdrojmi.
Idea vznikla v roku 2010 spoluprácou medzi firmou Rackspace a NASA. Rackspace je dodnes popredným poskytovateľom manažovanej OpenStack platformy, integrátorom a prispievateľom do kódu. Už po pár rokoch získal projekt mnoho podporovateľov – ako open-source nadšencov, tak aj korporácie, ktoré mali záujem o vlastný open-source cloud. V súčasnosti patria medzi najväčších použivateľov telekomunikační operátori, poskytovatelia cloudových služieb, ale aj celosvetové firmy, ktoré prevádzkujú vlastnú infraštruktúru ako napr. Intel a PayPal.
Vo WebSupporte používame OpenStack v hybridnom režime – beží nám na ňom časť internej infraštruktúry a tiež ho prostredníctvom produktov ako VPS a VDC poskytujeme zákazníkom.
Kedy si sa po prvý raz stretol s OpenStackom?
Samozrejme vo WebSupporte, kde ho priniesol bývalý kolega Tomáš Čorej ako súčasť prechodu na novú infraštruktúru. V rámci tejto zmeny sa prekopali hostingy, maily, databázy aj VPS-ká a všetko bežalo na platforme virtuálnych serverov pod OpenStackom. Myslím, že v tej dobe sme boli prvou a jedinou väčšou firmou, ktorá OpenStack používala, minimálne v kruhoch service providerov.
Dovtedy sme virtuálne servery pre zákazníkov vytvárali manuálne spojením technológií ako GlusterFS, LVM, iSCSI a Xen. Proces trval v závislosti od dostupnosti adminov aj niekoľko hodín a funkcie ako snapshoty, konzola v admin rozhraní alebo zmena parametrov by ste hľadali márne.
Keď nám senior admini odprezentovali OpenStack Dashboard, kde ste si vedeli “vyklikať” VPS zo základných prvkov, pripadalo nám to ako zázrak. Developeri sa hneď chytili možnosti používať Openstack API a virtuálne servery sa odvtedy vytvárajú rádovo v jednotkách minút. Do projektu som sa zapojil cca o rok-dva neskôr a hneď som zistil, že priestoru na rozvoj je neobmedzene – OpenStack už vtedy naberal na obrátkach.
Ide o open-source projekt, zapojil si sa do vývoja?
OpenStack má pomerne komplikovaný vývojový a schvaľovací proces. To je pri tisícoch developeroch z celého sveta zrejme nutnosťou, ak chcete zachovať kvalitu kódu. Väčšina mojich príspevkov je v podobe bugreportov, ktorých za tie roky nebolo málo. Treba však uznať, že komunita a maintaineri projektov sú veľmi ochotní vyriešiť váš problém.
Ak by sa niekto chcel stať pravidelným prispievateľom do OpenStack kódu, samozrejme sa to dá a je to len o zvyku. Každá zmena však vyžaduje veľa plánovania, komunikácie s maintainermi projektu, schvaľovania a testovania. Určite to nie je zábavka na vyplnenie pár voľných hodín raz do mesiaca.
Do OpenStack kódu sme prispeli iba raz – v čase, keď sme ho ešte používali aj na manažment LXD kontajnerov (popri KVM virtualizácii, na ktorej bežia zákaznícke VPS). Potrebovali sme kontajnerom limitovať diskový a sieťový IO bandwidth, aby sa navzájom čo najmenej ovplyvňovali. Vďaka open-source povahe projektu a detailnej dokumentácii bola implementácia vecou niekoľkých hodín. Kvôli spomínaným procesom sa však naša feature dostala do stabilného releasu až o cca 8 mesiacov.
Prečo si WebSupport vybral práve OpenStack, keď to bol ešte nový projekt?
Na toto neviem s určitosťou odpovedať, pretože som nebol pri rozhodovacom procese. No ak staviate vlastný on-premise cloud a nový hardvér už zhltol celý rozpočet, veľa alternatív k OpenStacku nemáte. Myslím, že v tej dobe to bola jediná otvorená platforma, ktorá pracovala s full virtualizáciou (teda nie s kontajnermi ako napr. OpenVZ) a obrovským plusom bol aj open-source charakter projektu. Pri komerčných vendoroch ste odkázaní na featury a úroveň podpory, aké ste si zaplatili a nejde o malé čiastky. OpenStack síce zodpovednosť prenáša na vás, no umožňuje vám vidieť a upravovať kód, ktorý beží na vašich serveroch. Túto možnosť sme veľakrát využili.
Ako vyzerá OpenStack infraštruktúra?
Vo WebSupporte sme začali používaním core projektov – Keystone na autentifikáciu, Cinder na manažment diskov, Glance na manažment inštalačných imagov, Nova pre compute, Neutron pre sieť a Horizon ako dashboard. V priebehu rokov sme pridali aj projekt Heat, ktorý zabezpečuje orchestráciu (vytvorenie celej virtuálnej infraštruktúry podľa predpisu) a Manila, na ktorom stojí produkt Storage as a Service. Samozrejme aj konfigurácie jednotlivých projektov sa v čase dosť menili, najmä, keď sme začali poskytovať VDC, alebo keď sme VPS servery presúvali na nové storage pole.
V súčasnosti používame OpenStack v tzv. HA scenári, ktorého cieľom je, aby v infraštruktúre nebol jeden komponent, ktorý je nenahraditeľný. Manažment vrstvu tvoria tri rovnocenné Controller servery, interné VPS nám bežia na 6 Compute serveroch a zákaznícke VPS momentálne na 36 Compute serveroch. Všetko je podporované troma storage poliami, kde sa nachádzajú všetky dáta – ak nám napríklad “odíde” Compute server, na ktorom bežia zákaznícke VPS, do niekoľkých minút ich vieme spustiť na zvyšku infraštruktúry. Veľkou výhodou tohto setupu je Live migrácia, ktorá nám umožňuje presúvať VPS medzi Compute servermi rýchlo a bez reštartu.
Často hľadáme možnosti, ako náš OpenStack zlepšiť a priniesť doň novú funkcionalitu. Pred pár rokmi sa nám podarilo kompletne prekonfigurovať Neutron projekt, aby sme vo VPS mohli používať tzv. overlay siete. To nám umožnilo priniesť zákazníkom Virtuálne dátové centrum. Nedávno sme pripojili nové, výkonnejšie Compute servery, na ktoré sme postupne začali migrovať zákaznícke VPS servery. V súčasnosti sa opäť zaoberáme možným zlepšením networkingu, ktoré by malo priniesť vyšší výkon a stabilitu. Tiež skúmame prechod na openstack-ansible, ktorý by umožnil pravidelné a bezvýpadkové upgrady. V neposlednom rade sa pripravujeme aj na postupné nahradenie storage polí technológiou Ceph, ktorá je tiež open-source.
O OpenStack platformu sa v súčasnosti starajú dvaja kolegovia zo slovenského a maďarského Admin tímu. Tešíme sa aj internému záujmu zo strany 1st Line a 2nd Line supportu – aktuálne beží už štvrtý cyklus firemných OpenStack školení. Vďaka tomu máme vyššiu zastupiteľnosť medzi administrátormi, ktorí vedia v OpenStacku riešiť rôzne požiadavky a problémy.
Ide o komplexné riešenie. Kedy má zmysel, aby si na ňom firma postavila napr. privátny cloud?
Pred pár rokmi by som záujemcov odhováral a strašil zložitou inštaláciou a manažmentom. V súčasnosti je okolo OpenStacku vybudovaný ekosystém, ktorý spraví väčšinu práce za vás. Napríklad openstack-ansible, na ktorý zvažujeme migráciu aj my, je schopný nainštalovať, nakonfigurovať a upgradovať celú platformu iba po nastavení najdôležitejších parametrov. Samozrejme, komplexitu OpenStacku to iba skrýva za ďalšiu vrstvu a stále máte možnosť prispôsobiť veci do detailu. Výhodou sú “sensible defaults” – už sa vám nestane, že si spôsobíte výpadok, ak zabudnete zmeniť nejakú obskúrnu hodnotu spomenutú v mailing liste.
Vlastný cloud však nie je pre každého – určite by som sa doň nepúšťal, ak nemáte špecifické nároky na workload, nie ste nútení do dátovej lokality, alebo si nie ste istí, či hardvér potrebujete dlhodobo. Napriek teraz už jednoduchej inštalácii ide stále o open-source softvér, kde vám nik negarantuje uptime alebo celkovú funkcionalitu. Preto je k OpenStacku nutnosťou aj admin, ktorý sa o vaše riešenie bude starať. O to viac, ak máte špecifické potreby na compute, storage a networking.
Ktoré z OpenStack projektov majú podľa teba potenciál?
Ako človeka, ktorého zaujíma networking, ma prirodzene priťahujú OpenStack projekty VPNaaS a FWaaS. Tie majú za cieľ poskytovať zákazníkom VPN server alebo komplexný L4 firwall ako službu.
Veľmi zaujímavý je aj projekt Murano, ktorý predstavuje akýsi aplikačný katalóg – používateľ má možnosť vybrať si z desiatok aplikácií alebo celých systémov, ktoré sa po pár klikoch v OpenStacku sami vytvoria.
Za pozornosť stoja aj dva projekty, ktoré ako keby ani nepatrili do OpenStack sveta – Ironic a Cyborg. Ironic zastrešuje manažment fyzických serverov, pričom využíva rovnaké zdroje ako pri manažmente VPS – tie isté inštalačné image, siete a podobne. Cyborg sa zasa snaží o manažment akceleračného hardvéru – grafických kariet, FPGA modulov alebo ASIC čipov. Oba tvoria v OpenStacku možnosti pre použivateľov, ktorí sú nároční na špecifický typ workloadu.
Ak by si skúsil pozrieť do budúcnosti, kde bude OpenStack o ďalších 10 rokov?
OpenStack sa už od svojho začiatku snaží byť open-source alternatívou (ak nie konkurenciou) privátnym cloudom a plateným on-premises cloud riešeniam ako Amazon AWS, Google GCE alebo VMware. Získava funding – v podobe financií, ale aj času developerov – od najväčších technologických firiem sveta. Takže v najbližších rokoch určite nikam neodíde.
V posledných rokoch sa Openstack orientoval na zvýšenie stability jednotlivých projektov a na uľahčenie deploymentu a operatívy, teda prvého nasadenia a následných upgradov. Namiesto desiatok nových projektov ročne vidíme zameranie sa na riešenie problémov v tých existujúcich. Myslím, že tento trend bude pokračovať, pretože aj napriek snahe OpenStack ešte stále rastie rýchlejšie, ako sa stíha stabilizovať.
Od začiatku je jasná jeho orientácia na “Everything as a Service”, trend, ktorý ťahajú aj spomínaní cloud operátori, kedy máte namiesto vytvárania virtuálnych serverov a konfigurovania služieb k dispozícii priamo funkciu, ktorú chcete dosiahnuť. Napríklad namiesto inštalovania niekoľkých databázových serverov vo VPS vám projekt Trove umožňuje aktivovať si databázu ako službu, alebo namiesto vlastného loadbalancera môžete použiť projekt Octavia. Myslím, že toto je jedna zo silnejších stránok OpenStacku, vďaka ktorej sa jeho adopcia šíri a preto bude pokračovať aj v budúcnosti.