Co přinesl rok 2017 v Azure v datových platformách

Rok je v cloudu dlouhá doba. V této sérii zpětných pohledů se pokouším ohlédnout za největšími novinkami, které rok 2017 přinesl. Dnes se podívám na oblast, na kterou nejsem specialista, ale přijde mi vždy zajímavá. Poohlédněme se za novinkami v datových platformách v Azure.

Operační data

Zatímco analytika a proudová data jsou pro mne stále dost magická záležitost, operační data, tedy to co používají aplikace pro ukládání a zpracování byznysových či technických dat, chcete-li transakční data, jsou oblast se kterou pár zkušeností mám (byť to není hitparáda). V roce 2017 se toho v Azure stalo opravdu hodně.

Relační databáze jako služba

Novinky v Azure SQL Database

Microsoft SQL je v Azure dostupný v platform as a service formě už velmi dlouho (prakticky od začátku) a je to tedy prověřená a vyladěna služba. Na rozdíl od konkurenčních řešení, která jsou postavena na konceptu automatického sestavení VM s DB a jejich správu (např. RDS v Amazonu), funguje Azure SQL jako skutečná platforma. Ve skutečnosti využíváte sdíleného megaclusteru a jednotlivé součástky jsou provozovány v Azure Service Fabric, tedy řekněme v jisté formě kontejnerů. To umožňuje nabídnout plně platformní funkce a to včetně plynulé (a garantované) změny výkonu (přeškálování bez restartu). Neřešíte CPU a paměť, ale požadovaný výkon (v DTU, přesně specifikovaných transakcích za vteřinu).

A co ty novinky? Zajimavý je auto-tuning. Postupně přidávané možnosti vizibility a schopnosti ladit výkon došly v roce 2017 do možnosti zapnout to jako automat. Azure SQL je databáze, která se sama přizpůsobuje vašim aplikacím a ladí se na ideální výkon.

V říjnu přišla do plné dostupnosti možnost transakční replikace z tradičního SQL (třeba on-premises) do Azure SQL. Dále pokud jste potřebovali relativně velký storage prostor, ale ne nutně velký výkon, nebylo to s Azure SQL ideální, nicméně postupně se přidala velmi široká nabídka.

V říjnu se objevilo pokračování využívání machine learning technik pro ochranu vaší databáze před útoky s funkcí SQL Vulnerability Assessment. V souvislosti s bezpečností se v roce 2017 stalo transparentní šifrování (TDE) s Microsoft-managed klíčem výchozím stavem (DB je tedy ihned šifrovaná) a přidala se podpora využívání vlastního klíče uloženého v Azure Key Vault.

Preview SQL Managed Instance

Azure SQL Database doporučuji jako první volbu. Perfektní šíře služeb a díky plné PaaS architektuře nad Service Fabric ideální poměr ceny a výkonu. Má však ale tři nevýhody. Jednak není 100% stejná jako SQL Server z on-premises (například pracuje jinak s uživateli DB, má jiný monitoring apod.). Za druhé pokud jste investovali do klasických licencí nemůžete si je přenést do Azure. A za třetí platformní služba běží na veřejném endpointu – dnes je sice možné provést tunelování z VNET (takže aplikace běžící v Azure může mít jistou formu privátního přístupu), ale Azure SQL DB neběží uvnitř vašeho VNETu – takže ji nemůžete využívat pro aplikaci v on-premises přes IPSec VPNku nebo ji nasadit na čistě privátní IP adrese. Řešením je použití SQL Server ve VM v Azure, ale to není managed služba. Všechno je tedy na vás – patching OS a DB, nastavení clusteru, zálohování. Nebylo by něco mezi tím?

Právě na tohle je zaměřená SQL Managed Instance. Využívá podobných vlastností plné správy jako Azure SQL DB, ale je nasazena čistě na VM, které pro vás sice Microsoft spravuje, ale které jsou ve vašem VNETu. To samozřejmě znemožňuje maximální efektivitu čistokrevné PaaS v Service Fabric, omezuje přecházení mezi výkonnostními tiery a v neposlední řadě zvyšuje cenu. Nicméně je to stále plně managed (PaaS) služba, která ale navíc má 99% kompatibilitu s klasickým SQL, můžete využít Azure Hybrid Use Benefit a přenést si vaše klasické licence a je u vás ve VNETu například pro případ, že do ní potřebujete přistupovat z aplikaci schované za vaší VPN.

Pro jednodušší situace je k dispozici základní verze s připravovaným SLA 99,9%, pro enterprise nasazení pak kompletní spravovaný HA cluster s chystaným SLA 99,99%.

Open source relační databáze jako služba

V květnu 2017 byla v preview oznámena open source varianta relační databáze jako služba. Konkrétně to začalo s MySQL a PostgreSQL s tím, že na konci roku se přidala MariaDB. Řešení je postaveno na plném open source engine bez modifikací a znamená tak úplnou kompatibilitu a nulové uzamčení k Azure jako cloudu. Podobně jako u Azure SQL DB máte v ceně služby automatické zálohování dat, plnou redundanci (jakmile všechny DB v roce 2018 přejdou do GA bude SLA na úrovni 99,99%) a správu, tedy patchování OS i minor verzí engine.

NoSQL jako služba s Azure Cosmos DB

Moje nejoblíbenější DB v Azure je jednoznačně Cosmos DB – moderní plně spravovaná NoSQL DBaaS s laditelnou konzistencí a SLA nejen na dostupnost, ale i konzistenci a výkon. Do roku 2017 vstupovala ještě pod názvem DocumentDB a v minulém roce zaznamenala neuvěřitelnou expanzi včetně přejmenování.

Asi největší peckou je myslím multi-model multi-API design. Cosmos DB pod jediným engine nabízí Document-oriented (JSON) databázi (ukládáte a čtete JSON objekty), Key-Value store (ukládáte klíč a hodnotu, ale s neuvěřitelnou škálou), Wide-column-oriented (ukládáte data do „jakoby“ tabulek se shluky sloupců) ale i Graph (ukládáte objekty a modelujete vztahy mezi nimi). To všechno umí CosmosDB. Protože umí pracovat v mnoha modelech logicky také podporuje vícero tváří, tedy způsobů ovládání. A tady je další zajímavost – Azure CosmosDB nabízí podporu pro některá API běžná v open source. Klasický SQL-like jazyk DocumentDB byl rozšířen o podporu MongoDB a to včetně wire protokolu 3.4 a agregačních pipeline. Chcete-li JSON store, vyberte si – buď zúročíte svoje znalosti SQL nebo využijete nabytých zkušeností s Mongo. Dále je k dispozici Table API (totéž API, které používají Azure Storage Table), nově také Cassandra (wide-column) a Gremlin (graph).

CosmosDB je skutečně celoplanetární. Jednoduše kliknete na obrázku planety kde chcete mít data nareplikovaná a ona tam budou. Pro čtení pak používáte „anycast“, takže vaše aplikace nemusí obsahovat logiku vyhledávání správné instance pro čtení vs. zápis (na rozdíl od použití georeplikace třeba se SQL). To už bylo i dříve, ale Azure nově pro databáze ve více jak jednom regionu garantuje nejen SLA 99,99% na zápis (včetně garance latence), ale také 99,999% na čtení.

Pokračovat ve čtení "Co přinesl rok 2017 v Azure v datových platformách"