Ve světě databází se v posledních letech výrazně mění pravidla. Velké databáze a datové sklady, které byly a stále jsou symbolem historické monolitické architektury, se pomalu začínají modernizovat podobně jako to aktuálně pozorujeme i u klasických aplikací. Trendů je zde hned několik. Nejčastěji podniky volí přesun částí dat do databází poskytovaných formou služby (DBaaS, Database as a Service) v rámci různých, zejména veřejných cloudů. Zde však hrozí rizika spojená se závislostí na jediném poskytovateli a možnost zpomalení či dokonce zastavení inovací v důsledku nevhodně zvolených technologií, a jedná se víceméně jen o evoluci outsourcingu. Druhým trendem je tzv. kontejnerizace databází, kdy v souladu s moderní cloudově-nativní architekturou dochází k dekompozici dat a jejich správě v rámci jednotlivých mikroslužeb.
Převážná většina firem volí dva výše zmíněné trendy. Potvrzuje to studie Gartner Peer Insights, která se těmito trendy zabývá a mapuje nejen aktuální situaci, ale i výhled, jak jednotlivé podniky své databázové systémy plánují používat v následujících letech. Databázi jako službu používá 61 %, a databáze v kontejnerech 52 % podniků. Zajímavé je i zastoupení provozu databází na virtuálních serverech či na pronajatých fyzických zařízeních umístěných v datovém centru poskytovatele služby, které aktuálně s moderními aplikacemi používá 46 % dotázaných firem – zde je ale třeba zmírnit, že toto řešení je považováno spíše za dočasné a postupně dochází k migraci těchto databází do kontejnerových prostředí.
Tyto trendy vidíme i v České republice. „Pomocí námi vyvinutých Kubernetes operátorů se nám podařilo plně zautomatizovat nasazení, správu i zálohování našich NoSQL databází, které provozujeme v rámci Red Hat OpenShift,“ říká Martin Balon, DevOps Engineer z Fortuna Entertaiment Group. Na tomto konkrétním příkladu vidíme, že přesun databází do kontejnerového prostředí přináší další benefity z hlediska snadné automatizace celého životního cyklu databází. Od jednoduchého vytvoření prostředí pro vývojáře až po automatizaci provozu, údržby, monitoringu i zálohování těchto systémů.
Podpora edge computingu
Pokud se zamyslíme ještě dále, kontejnerizace databází nám umožňuje i jejich snadný provoz a nasazení tzv. na okraji (edge computing). I zde vidíme velmi výrazný příklon k řešením založeným na kontejnerové platformě Kubernetes, např. OpenShift single node cluster, v rámci kterého může celý Kubernetes cluster fungovat na jediném serveru. Zajímavý je i projekt MicroShift, který umožňuje optimalizovat celou platformu pro malá zařízení Internetu věcí, jako je raspberry pi, či jiné systémy na čip (malá specializovaná zařizení)
Benefity kontejnerizace databází se v plné síle projeví až v budoucnu, ale už dnes je důležité sledovat trendy v cloudově nativním vývoji a snažit se o dekompozici dat a dodržování nepsaného pravidla, že každá mikroslužba si spravuje svá data. I když to na první pohled může působit složitě, je to do budoucna nevyhnutelný trend. Velkým SQL systémům, které dnes už jen těžko drží krok s principy moderního softwarového vývoje a spíše nás začínají brzdit, byla hozena rukavice. Mít všechna data pohromadě na jednom místě může vypadat jako správné řešení z hlediska jejich konzistence a správy, takové řešení je však těžko škálovatelné a neumožňuje různý přístup k datům. Některé mikroslužby těží z dat uložených ve formě dokumentů, jiné z objektového přístupu a některé potřebují databáze, ve kterých jsou data uspořádána podle časových hodnot.
Možnost do infrastruktury jednoduše přidat nový druh databáze, který může posloužit jako „pískoviště“ pro vývojáře a zároveň vést k novým neotřelým řešení, je neocenitelná. Možnost pak tyto databáze spolehlivě provozovat v rámci standardizované OpenShift platformy a s pomocí operátoru plně automatizovat jejich životní cyklus je téměř revoluční. Kontejnerizace databázových systémů má ambici kompletně změnit způsoby, jakými zpracováváme a ukládáme data, a přináší velké množství nových možností podobně jako distribuovaná streamovací platforma Apache Kafka, která změnila oblast messagingu a integrace a která rozšířila koncept streamovaní zpráv jako běžný návrhový vzor.
Rychlost vývoje v oblasti moderních informačních technologií je opravdu vysoká, udržet s ní krok je náročné, ale přináší to ohromné benefity z hlediska výrazného snižování jak nákladů na provoz a vývoj jednotlivých aplikací, tak i kompletní správu a modernizaci infrastruktury.
David Bečvařík, Technology Lead pro Českou republiku a Slovensko, Red Hat