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í.

Analytika

Aniž bych tomu co se v této oblasti děje příliš rozumněl, některé novinky roku 2017 mi připadají zajímavé.

Machine Learning

Určitě bych měl zmínit Machine Learning. Ten je sice v Azure už od roku 2014, ale loni se začalo pracovat na jeho nové generaci (v2). Co přináší? Zatímco první verze byla pro skutečné vědce a vývojář se v tom mohl trochu ztrácet, nová varianta dokáže pokud chcete zahladit složitost této technologie tak, že ji dokážete efektivně využít ve svých aplikacích i pokud nejste profesionální datový vědec. Nově se také podstatně lépe dělají experimenty a svůj model tak dříve dostanete do kondice. Velkou součástí Azure strategie je IoT Edge, tedy vytvoření systému, kdy jedním rámcem či programovacím modelem můžete řešit logiku svých aplikací a zpracování dat v cloudu i na kraje, kde jsou IoT zařízení. To platí pro byznys logiku (viz. serverless s Azure Functions) i další oblasti včetně Machine Learning. Vaše modely (výsledek analýzy ve formě byznys logiky, či chcete-li robota, kterého se můžete zeptat na předpověď budoucnosti) můžete nově monitorovat v Application Insights, tedy tam, kde dokážete sledovat všechny další součástky vaší aplikace.

V neposlední řadě se hodně zapracovalo na komfortu pro uživatele této služby. Objěvil se nový Workbench - pracovní stanice, která funguje ve Windows i v Mac. Nejvíc času prý v Machine Learningu lidé tráví učesáním vstupních dat. Je to zdlouhavé a oproti odhalování neznámého a testování zajímavých modelů podstatně méně záživné. Nový Machine Learning obsahuje umělou inteligenci, která právě pomáhá maximálně zjednodušit vyladění vstupních dat. Skoro se dá říct, že nový Machine Learning v Azure používá machine learning na to, aby vám pomohl připravit vaše data na machine learning.

Strukturovaná data a nasávače

Pokud jsou vaše data rozumně strukturovaná je tady řešení, které je léty prověřené - Azure SQL DW, datové skladiště postavené na relačních principech. Nad něj můžete dát Azure Analysis Services (do plné dostupnosti šlo v květnu 2017) a následně vizualizovat třeba v PowerBI. Tahle "tradiční cesta" je stále cloudovějsí a cloudovější, v SQL DW byly přidány nové compute tiery a schopnost dynamicky přisypávat a ubírat zdroje se vyladila takřka do dokonalosti.

V roce 2017 se zahájila práce na novém nástroji na vytahování a transformaci dat z různých zdrojů do různých jiných datových systémů. Azure Data Factory v2 přináší nový model cenotvorby a velmi pokročilé možnosti konektorů a datových pipeline. Kromě toho se v roce 2017 značně vylepšovaly prostředky pro zjednodušení "nasávání" dat z on-premises do cloudu. Jde především o to, že přímý přístup může být problematický z důvodu síťařiny a zabezpečení (získat z veřejné PaaS služby prostup do firemní core databáze není zrovna vždy vítané), výkonnosti i nepraktičnosti. Řešení pro Data Factory v1, tedy Azure Data Management Gateway, získalo v loňském roce vysokou dostupnost a nová generace Data Factory v2 již přichází s přepracovaným systémem označovaným Integration Runtime. Ten totiž můžete používat jak v Azure verzi tak také v self-hosted v on-premises.

Šelmostroje a chroupače

HDInsight, tedy sada nástrojů postavených na open source technologiích jako je Storm, Spark či Hadoop, získala v prosinci plnou GA podporu pro Kafka (oblíbená platforma pro příjem streaming dat) a také došlo k významné redukci cen (a to je vždycky milá zpráva).

Azure Data Lake Store, tedy na HDFS postavená datová žumpa s obrovskou škálovatelností plně jako služby, je od roku 2017 podporována v HDInsights, z produktů Cloudera a také v Azure SQL DW.

Od tvůrců Sparku se do Azure dostala jejich platforma, která využívá bohatých zkušeností v této oblasti, s názvem Databricks. Ve spolupráci s Azure inženýry, kteří zase přináší bohaté zkušenosti se zpracováním dat v cloudu tak vzniklo v listopadu 2017 preview uceleného řešení Azure Databricks.

Streaming data

Proudová data jako jsou události z chování zákazníka (klikání na webu, vstup do fyzického obchodu a pohyb po něm apod.), naměřené údaje ze senzorů či právě zaznamené vozidlo na mýtné bráně, jsou určitě masivně rostoucí oblastí. Pokud chcete jít open source směrem, nabízí HDInisight proudové chroupače typu Storm či Spark Streaming a od listopadu také Kafka pro nabírání dat. Platformě laděné řešení (tedy dokonale přizpůsobené cloudu a postavené tak, že platíte skutečně pouze za to jak službu využíváte) by na vstupu mělo Event Hub (či IoT Hub), zpracování lze provádět v Stream Analytics, ukládat dlouhodobě třeba v Cosmos DB a vizualizovat s Azure Time Series Insights (takové "PowerBI pro proudová data").

Novinek bylo v roce 2017 hodně. Ostatně Time Series Insights právě v tom roce vznikla. U služby Stream Analytics došlo k rozšíření o podporu zpracování v IoT Edge, tedy schopnost nasadit zpracování proudových dat blíže k IoT zařízením (podobně jako třeba byznys logiku s Azure Functions či Machine Learning). V této službě mě zaujaly ještě dvě věci. Jednou je podpora pro automatickou detekci anomálií. Něco takového je machine learningovou disciplínou, takže zkušený člověk (což já nejsem) si to snadno přidá sám, ale mít do začátku tuto funkci přímo zabudovanou mi přijde velmi užitečné. Co se mi ale líbí nejvíc je schopnost ze Stream Analytics přímo volat Azure Functions. Proudový analyzátor může dojít k nějakým závěrům, že je potřeba něco udělat - přisypat chmel do piva, poslat uživateli na mobil notifikaci se speciální nabídkou či objednat stroj na servis. Potřebujeme tedy vyvolat nějaký kód, spustit byznys logiku. Serverless, tedy Azure Functions, je na to ideální.

 

Mimochodem je zajímavé jak lze vlastně všechno řešit platformou a nebabrat se s infrastrukturními komponentami. Na příjmu Event Hub, zpracování Stream Analyzis, reakce v kódu Azure Functions, vizualizace Time Series Insights, uložení v Cosmos DB, přechroupání do "velké analytiky" s Data Factory a využití potřebných prostředků (Azure Data Lake Analysis a tak podobně), vizualizace trendů v PowerBI a vytrénování předpovědního modelu s Machine Learning a jeho implementace v Azure Functions. Všechno krásné služby s SLA, které mi umožní zaměřit se na moje data a aplikace, místo oprašování operačních systémů v mých VM.

V datových platformách toho v Azure v roce 2017 událo opravdu hodně. A jak je to s infrastrukturou, síťařinou, kontejnery,  správou nebo aplikačními platformami? Čtěte další články na tomto blogu a vyzkoušejte Azure ještě dnes!



Datové hřiště - zpracování proudu událostí s Azure Stream Analytics nakopnuté Terraformem Data Analytics
Datové hřiště - generátory fake dat do kontejneru zabalené Terraformem v Azure nahozené Data Analytics
Datové hřiště - jak si hrát s daty bez sebemenšího kliknutí s Terraform a Azure Data Analytics SQL
SQL Ledger - kostičky, řetízky a kryptografická auditovatelnost vašich dat bez složitostí SQL
Azure Arc pro datové služby aneb cloudová databáze ve vašem vlastním Kubernetes SQL