Blankytně modrý Microsoft (díl I.)
V polovině října 2008 Microsoft veřejně uvedl na konferenci Professional Developer Conference 2008 (https://www.microsoftpdc.com/) první informace o nově připravované platformě služeb i verzi operačního systému Windows pod společným názvem Azure. Tímto krokem jsme se tradiční výrobce desktopových a serverových systémů definitivně dostali do oblasti internetových služeb, které v současné době bývají souhrnně nazývány termínem „cloud computing“.
Po několik následujících týdnů se budu snažit popsat, jaké jsou záměry Microsoftu v cloud computingu a jak vypadá Azure platforma v současné chvíli. V průběhu následujících měsíců se ale celá platforma bude silně vyvíjet a jednotlivé služby budou postupně přibývat. V současné chvíle je celá platforma i vývojové kity v CTP verzi, tedy ve stavu, který teprve předchází beta verzi. Detailní specifikace se mohou tedy v čase do jisté míry měnit. Architektura Azure však již méně a dlouhodobé strategie jsou jasné a stabilní.
Přivítal bych jakoukoli zpětnou vazbu na nasazení, použití a integraci s vašimi produkty a rád bych se vyhnul detailním technickým diskusím o nefunkčnosti jednotlivých API. Určitě však přivítám nahlášení veškerých chyb.
Platforma služeb Azure™
Aplikace lze dnes provozovat z pohledu nasazení dvěma základními způsoby – uvnitř organizace nebo v internetu. Mezi těmito dvěma póly existuje celá řada variant, kdy část aplikace běží na lokálním počítači, např. díky kvalitní úrovni a rychlosti vizualizace, případně na serverech organizace, a část v internetovém oblaku, ze kterého využívají takové služby, které firma není schopna s odpovídající kvalitou nebo rozsahem zajistit sama. Příkladem mohou být vysokokapacitní datové sklady s nelimitovaným výkonem a vysokou dostupností, univerzální synchronizace různých typů zařízení a systémů, vysoce výkonné výpočetní systémy nebo transakční systémy.
Má-li se stát cloud computing široce využívanou platformou, musíme mít k dispozici podobné prostředky a nástroje jako při vývoji a provozu současných aplikací. Ideálně identickou nebo velmi příbuznou tomu, co dnes k dispozici máme. Pro provoz to je operační systém nebo běhové prostředí pro aplikace (jako jsou Microsoft .NET nebo Java), dále pak základní služby a pokročilé služby, kam patří souborové služby, řízení identity, servisní sběrnice nebo služby řízení workflow. Nedílnou a nezanedbatelnou součástí jsou vývojové jazyky a knihovny. Ty umožní tvůrcům programového vybavení přenášet část exitujících aplikací na internetové služby, případně rozšiřovat existující aplikace. Aby cloud computing mohl dostatečně flexibilní a elastický a mohl tak reagovat na různé typy scénářů, je nutné, aby existovaly nejen služby, nýbrž musíme mít k dispozici i prostředí, ve kterém můžeme spouštět naše cloud aplikace.
Microsoft pod společný název Azure umístil hostingovou platformu široce dostupných cloud služeb běžících v Microsoft datových centrech a skládá se ze dvou základních součástí
· operačního systému Windows Azure a
· sady vzájemně nezávislých služeb.
Na obrázku 1. vidíme, jak jednotlivé součásti Azure na sebe navazují.
Obr. 1. Přístup uživatelů k Azure službám
Propojení klientských zařízení s dostupnými službami je realizováno prostřednictvím standardizovaných webových protokolů. Můžeme tak hodit za hlavu diskusi na jakém typu zařízení mohu služby konzumovat a jaký operační systém na zařízení běží. Použití tenkého klienta ve formě prohlížeče není nutné, byť pro celou řadu scénářů může být zajímavé. Osobně vnímám jako chybné tendenci dogmatického prosazování prohlížeče jako jediného klientského programu.
Je zřejmé, jak různě lze kombinovat různé služby a aplikace provozované lokálně a v internetu, s dostupností na všech typech klientů. Použitím Azure služeb lze lehce odbourat počáteční náklady a zaměřit se na vytvoření cloud aplikace se znalostmi z běžných desktopových a webových aplikací. Programátorům zůstávají stejné nástroje jako je Visual Studio, programovací jazyky, knihovny a běhové prostředí .NET Framework.
Platforma Azure má ještě další významnou výhodu a tou je škálovatelnost, tedy schopnost růst podle potřeb uživatelů aplikace. Potřebujete, aby vaše aplikace dovedla obsloužit 10x nebo i 1000x více klientských požadavků? Azure škáluje dostatečně dobře, aby takové požadavky bylo možné bez omezení zvládat.
Škálovatelnost však není v poslední době jediným požadavkem. Čím dál tím více je žádána zároveň elasticita, která poskytuje dynamické přizpůsobování aktuálním potřebám bez nutnosti investic. Existují projekty, ve kterých je aplikace intenzivně využívána po omezenou dobu a je zcela zbytečné pro ni budovat technické zázemí s odpovídající kapacitou a dostupností. Stejně tak existují aplikace, které jsou velmi intenzivně využívána dvakrát ročně a po zbytek období „v klidu odpočívají“. Jak pro takové scénáře optimálně budovat infrastrukturu? Nechme tyto starosti na dobře se rozpínající i smršťující se cloud. Zároveň si můžete být jisti, že vždy budete platit pouze za spotřebovaný výkon, třeba kolísavý.
Na počátku jsme si představili existenci základních služeb, které Azure platforma nabízí. V Microsoftu jsme v návrhu šli ještě dále. Základní služby označené přívlastkem „Services“, jak je vidíte na obr. 2., neobsahují žádné uživatelské rozhraní a jsou určeny pouze aplikacím. Nad základní úrovní služeb dále běží celá řada plně hostovaných aplikací přímo sloužících koncovým uživatelům. Tyto hostované aplikace mají přívlastek „Online“ a jsou ukázkovým příkladem poskytování softwaru jako služby (SaaS). K dispozici můžeme mít jednu a tutéž funkcionalitu dvěma způsoby. Příklady mohou být SharePoint a Dynamics CRM. V Online verzi jde o plně hostované produkty s plným UI, zatím co v služební verzi mohu programově přistupovat k jejich funkcím ze své vlastní aplikace.
Obr. 2. Stavební bloky Platformy služeb Azure
Platforma služeb Azure se skládá z jednotlivých elementů ilustrovaných na obrázku 2. Jmenovitě jde o:
Windows Azure™ – vytváří běhové prostředí kompatibilní s .NET aplikacemi.
Microsoft .NET Services – sada služeb umožňujících snadnou realizaci volně provázaných aplikací. V danou chvíli existují tři základní. Access Control pracující s identitou uživatele, Servis Bus podporující snadné vystavení webových služeb a Workflow, které má na starosti koordinaci funkce jednotlivých částí rozsáhlejších aplikací.
Microsoft SQL Sevices – široce zpřístupňuje datové služby postavené nad SQL serverem za využití standardních protokolů jako SOAP a RESTful rozhraní.
Live Services – prostřednictvím těchto služeb mají aplikace přístup k Microsoft Live aplikacím jako je vyhledávání, sdílení dat, řízení identity adresářové služby a řada dalších.
Budoucí služby – v budoucnu budou dostupn0 další dvě služby postavené na produktech SharePoint Services a Dynamic CRM Services. Jejich funkcionalitu bude možné využít jako stavební bloky se svých vlastní aplikacích.
Online a Live aplikace – část cloud aplikací a služeb určených přímo pro koncového uživatele nabízí i Microsoft. Mezi ně patří Windows Live Office Live, Exchange Online, Sharepoint Online nebo Dynamics CRM Online.