Pro vývoj, testování i produkci jsou databázové systémy důležité a mnoho času se spotřebovává na jejich instalaci, nastavení, replikaci a zálohování. Co kdybyste místo získání pouhé VM s nějakou šablonou (tedy IaaS) mohli podobným způsobem pracovat rovnou s databází? Vytvořit novou instanci, zajistit replikaci, provést zálohu nebo obnovení nebo vytvořit přístupový login? Co kdyby to bylo přímo v prostředí OpenStack (GUI nebo API) a to konzistentním způsobem bez ohledu na to, jaký databázový backend případně v jaké generaci se rozhodnete používat? Seznamte se s projektem OpenStack Trove.
Proč DBaaS?
Pokud uvažujete o infrastruktuře jako služba, jako je OpenStack, dříve či později narazíte na to, že vývojáři, testeři i produkce jsou sice rádi, že mají VM, ale databázi si musí instalovat sami. To buď zdržuje vývojáře (ti mají psát kód, ne instalovat a nastavovat databáze) nebo obtěžuje operations (každou chvilku by vývojáři a testeři chtěli klon databáze – jen pro sebe a jen na chvíli). Ruční instalace také vede ke vzniku “oblíbených postupů a verzí”, což může mít za následek odlišné nastavení v různých prostředích nebo dokonce mezi jednotlivými vývojáři ve stejném projektu a připravit překvapení při release aplikace.
V případě, že používáte plnohodnotnou Platform as a Service, jste zvyklí mít všechno zabaleno do infrastrukcture as code – nějakého manifest souboru, na základě kterého vám třeba HP Helion Develpment Platform postavená na Cloud Foundry a Stackato sama vytvoří nový Docker kontejner obsahující všechny potřebné návaznosti a zajistí jeho zavedení včetně balancingu či auto-scalingu. V tomto světě je limitující, když na databázi nemůžete sáhnout a berete ji jako externí službu, kvůli které musíte někomu volat, vytvářet ticket a čekat.
DBaaS vám umožní získat jednotnou multi-tenant sadu nástrojů pro vytváření, replikaci, zálohování, klonování a restore databází bez ohledu na to, jaký konkrétní engine je v implementaci použit (samozřejmě z těch, které DBaaS platforma podporuje). Všichni se tak mohou obsloužit sami a přitom dodržovat pravidla daných bezpečnostních zón nebo přidělených infrastrukturních zdrojů a to přímo z OpenStack. Tak jak vytváříte svoje IaaS prostředí, klikáním, skriptem nebo Heat šablonou, tak si vytvoříte i databázi. Seznamte se s projektem OpenStack Trove.
OpenStack Trove
DBaaS projekt v OpenStack začal už v Grizzly release v roce 2013 na popud firem HP a Rackspace, kdy každá napsala svých úvodních 16000 řádek kódu. Hned v dalších dvou release se přidaly firmy eBay (uživatel) a Mirantis a také vznikla firma Tesora, která se na Trove specializuje. V posledním Kilo release má největší příspěvky Tesora, HP a RedHat, ale participují také eBay, IBM nebo Rackspace. Další statistiky, například pro připravovaný Liberty release (ten vede jako PTL Nikhil Manchanda z HP), najdete na Stackalytics.
Trove tedy přináší jednotnou sadu API a GUI pro DBaaS funkci v OpenStack a to tak, že podporuje pluginy pro různé databázové stroje. Nejdál je určitě s velmi populární MySQL a jejími bratříčky Percona a MariaDB – zejména MySQL je v tak vysoké kvalitě, že se nemusíte bát ho použít nejen při vývoji a testování, ale je vhodný i pro produkční nasazení. Komunita ale pracuje na celé řadě dalších driverů, které dříve či později dostanete i v rámci Helion řešení i distribucí některých dalších výrobců. Patří se zejména velká rodina NoSQL systémů, především MongoDB (asi nejznámější NoSQL stroj), ale i Couchbase, Cassandra nebo Redis. V poslední době se objevují snahy přidat drivery pro Oracle 12c, ale zatím jde spíše o experimentální pokusy. V každém případě považuji projekt za nesmírně zajímavý.
Reálné použití v HP Helion Development Platform
Produktový otisk Trove je v HP Helion portfoliu dostupný jakou součást Helion Development Platform. Jde o nadstavbu nad Helion OpenStack, která rozšiřuje tuto distribuci za rámec IaaS do oblasti PaaS a přidává tak open source projekty jako je právě Trove a některé další. Dále přichází s PaaS pro aplikační vývoj postavené na Cloud Foundry, Stackato a Docker – o tom už jsme na cloudsvet.cz psali. Aktuální release 1.2 se zaměřil pouze na podporu MySQL, ale další databázové systémy můžete očekávat v dalších verzích.
Podívejte se v krátké, sedm minut dlouhé ukázce na to, jak jednoduše můžete pracovat s DBaaS v Helion Development Platform: