Windows Azure je platforma, ktorá sa hodí pre niektoré druhy aplikácií. To, aj všeličo iné som sa dozvedel na Windows Azure Kemp-e, ktorý sa konal pred pár dňami v rámci Microsoft TechDays v Košiciach. Kemp trval niekoľko hodín, počas ktorých sa mohol aj taký úplný začiatočník ako ja, zoznámiť s touto platformou natoľko, aby mal jasno, či a kam treba ďalej vykročiť pri jej používaní. Toto sú moje poznámky z tejto akcie.
Začalo to teoretickým úvodom o cloude a typoch cloudov. Cloud je taký veľký virtuálny počítač, ktorý je v skutočnosti zložený z množstva fyzických počítačov. Na tomto virtuálnom počítači si viete spustiť operačný systém alebo vyhradiť nejakú kapacitu na dáta, ku ktorým potom pristupujete cez rozhranie. Azure je cloud typu Platform-as-Service, čo znamená, že si platíte za podporný softvér (operačný systém, REST služby), na ktorom potom staviate váš softvér. Zaujímavé je, že Microsoft má v súčasnosti tých cloudov 6 a vy si máte vybrať, do ktorého pôjde vaša aplikácia. Na rozdiel napríklad Google sa rozhoduje sám, kde fyzicky umiestni vašu aplikáciu.
Podstatou Azure sú 3 služby: Windows Azure, Storage, SQL Azure. To prvé je virtualizovaný Windows. Na ňom môžete nasadiť sieťovú službu, dynamickú web stránku alebo nejaký výpočtový proces, ktorý cez TCP kanál prijíma a posiela výsledky výpočtu. Je to server, na ktorý by ste nemali ukladať údaje, pretože kedykoľvek môže byť znova-načítaný podľa konfigurácie, ktorú sme mu zadali (a teda všetky údaje a ručne nainštalovaný softvare je preč). Týchto virtuálov môžete mať ľubovoľný počet, pričom platíte za každú inštanciu. Čo môže na takom virtuály bežať? No je to vždy Windows Server 2003 alebo Windows Server 2008 (R2), takže tam máte automaticky .Net 3.5. Okrem toho tam môže bežať PHP interpreter, Java Virtual Machine a Node.js.
Druhou zo služieb je Storage. Je to úložisko hlavne mediálnych a veľkých binárnych údajov. V podstate je to priestor, ktorý si prenajmete (platíte za vyhradené GB), ktoré si reorganizujete pomocou tzv. kontajnerov a ku ktorému pristupujete cez pripravené REST rozhranie. Podporuje 4 typy údajov: Bloby, Tabuľky (nie tak úplne relačné), Disky – Azure Drive (disk sa potom môže objaviť vo virtuálnom operačnom systéme) a Fronty (FIFO, do ktorého môžete dávať jednoduché typy). Potom už len napíšete klienta, ktorý sa pripája na REST služby a pracuje s údajmi. Aby prenos údajov k zákazníkovi príliš dlho netrval, tak existuje sieť Windows Azure Content Delivery Network, čo je sieť menších dátových centier (najbližšie je vo Viedni), kde sa vaše údaje (samozrejme platíte si za každé CDN naviac) synchronizujú.
Posledná služba je SQL Azure. To je niečo ako MS SQL server, ktorý beží v cloude. Z funkcionality MS SQL Servera mu ale dosť chýba. Zarazilo ma hlavne, že zatiaľ nijako normálne nie je vyriešené rozhranie a funkčnosť pre zálohovanie (databáza je samozrejme zálohovaná v cloude, ale to sú zálohy, ku ktorým nemáte prístup a ktoré sa použijú, len ak došlo k zlyhaniu v cloude, nie ak ste napríklad omylom vymazali obsah niektorej tabuľky). Dobrá správa je, že server sa tvári ako štandardný server prístupný na verejnej IP adrese, a teda sa k nemu viete pripojiť pomocou MS SQL Managment Studia. Z programových API, ktoré majú pre neho podporu, sú to ADO.NET, ODBC, PHP. Vie s ním komunikovať napríklad aj SQLCMD. Za zmienku stojí, že transakcie dlhšie ako 20 minút sú automaticky zrušené a že 30 minútové neaktívne spojenie je ukončené (celkovo pri práci s cloudom musíte rátať, že spojene sa môže kedykoľvek rozpadnúť). Platí sa za každú databázu a jej veľkosť.
Ak by ste sa rozhodli pre Azure vyvíjať, tak musíte siahnuť po Visual Studiu alebo Eclipse (podľa platformy a jazyka, ktorú si zvolíte). Ak by ste si chceli cloud skúsiť a ste študent, tak môžete skúsiť Windows Azure Freemium. Ak ste firma, tak môžete skúsiť zažiadať Microsoft o 30 dňový skúšobný prístup. A ako posledné sa tam dá (relatívne zadarmo) dostať cez MSDN benefits alebo BizSpark. A aby toho nebolo dosť, tak pre Slovensko sa čaká komerčné nasadenie v máji/júny a potom sa to všetko zmení. Ak by ste chceli vedieť, koľko by to presne stálo, tak to zistíte pomocou on-line kalkulačny.
Asi najväčším konkurentom pre cloudy sú web hostingy, a preto logicky po čase prišla z publika otázka, prečo cloud a nie hosting. Cenovo môže vyjsť lacnejšie hosting, ale pri cloude máte virtuálny server pre seba (pri hostingu je väčšinou zdieľaný) a môžete veľmi ľahko zvyšovať jeho výkon. Cloud má tiež pravdepodobne širšie možnosti rôznych aplikácií, zatiaľ čo hostingy sú väčšinou o LAMP-e alebo Windows + IIS + ASP.NET.
Celkovo platforma Azure vyzerá byť použiteľná. Podľa môjho názoru to ale nebude tak, že o 10 rokov bude všetko v cloude. Tak ako sa dnes nepíšu len webové stránky, ale aj klasické inštalované programy, tak aj v budúcnosti sa stane cloud len jednou z alternatív pre vývoj aplikácií, ktorá je dobrá pre niektoré prípady.