Razvedravanje oblačnog

Microsoft Azure Services Platform

ratko  azure_deployed_app

O različitim pristupima razvoju nove generacije softvera se već lamentira dulje vrijeme. Koristi se različito oružje teških riječi – ako niste znali što znače skraćenice SOA, SaaS, PaaS, CaaS, S+S, WS i Web 2.0 vjerojatno su vas brzo izbacili iz kluba. Microsoftove inicijative su na tragu spomenutih buzzworda, a najviše buke svakako diže Azure Services platforma u sklopu cloud computing inicijative…

 

 

Započnimo priču od početka i s razjašnjenjima osnovnih termina nužnih za razumijevanje kompletne slike. Services Oriented Arhitecture (SOA) je arhitektura sustava koja je prvenstveno okrenuta prema uporabi informacijskih resursa kroz stvaranje web-servisa koje konzumiraju drugi web-servisi ili pak krajnji korisnici. Pojednostavljeno rečeno, „stare“ računalne arhitekture se otvaraju putem web-servisa kroz koje pristupate njihovim podacima ili pokrećete određene zadatke koje ta aplikacija ionako radi. Otvaranjem se produžuje vijek aplikacija – dovoljno je kreirati web-servis i omogućiti da se nove i druge aplikacije spajaju s vašom.
Web-servisi obično su sučelja prema pojedinačnim elementima poslovnih procesa i vrlo često se kombiniraju zajedno kako bi zajedno tvorili određenu korisničku aplikaciju, i to bez obzira na lokaciju. Web-servisi mogu biti lokalni ili udaljeni, proširujući mogućnosti distribuiranog računarstva. SOA je danas „play of the day“, i sve veće organizacije imaju najmanje jedan „SOA-like“ projekt u svom portfelju. Zanimljivo je da se na isti projekt troše prilični novci, a koliko je to opravdano, znaju samo sami investitori – sve u ime budućnosti.

Servisi i serviseri

Software as a Service (SaaS) druga je najvažnija skraćenica, mada je u određenim krugovima proizvođača softvera već zauzela dominantnu poziciju. SaaS nije ništa nego drugo nego novi tip „distribucije softvera“ gdje, u principu, nema lokalnog softvera već se sve odvija na udaljenom poslužitelju. Web-stranica, rekli bi oni koji vole pojednostaviti stvari. Tehnologija ovdje nije bitna – važniji je model monetizacije. Software as a Service je dakle, model dostave web zasnovanog aplikativnog rješenja prema krajnjem korisniku, u kojem proizvođač rješenja izrađuje aplikaciju, omogućuje dostup do nje putem weba (hosting) te upravlja samom aplikacijom i okruženjem koje ju podržava. Korisnik ne plaća posjedovanje ili iznajmljivanje aplikacije, već njenu uporabu. Sličan model prije nekog vremena bio je poznat pod nazivom Application Service Providing (ASP), iako je donekle bio drugačije arhitekture.

azure_visual_studio_addin

Razvoj Azure aplikacija koristeći dodatak za Visual Studio pojednostavljeno je do krajnjih granica

Software + Services je pak arhitektura koja kombinira lokalnu aplikaciju na korisničkom računalu s web-servisima i drugim web omogućenim aplikacijama koje su otvorene na webu. S+S kombinira bogato korisničko iskustvo koje nose aplikacije na vašem računalu s fleksibilnosti i mogućnosti servisa i aplikacija koje su objavljene na webu.
Pojednostavljeno, svaki model ima svoju namjenu. Tako je, recimo, SOA način kako ćete složiti svoje servise i omogućiti usluge vanjskim korisnicima, SaaS je način kako ćete svoju aplikaciju otvoriti prema korisnicima putem weba, a S+S je način kako ćete iskoristiti klijentske aplikacije i povezati ih s uslugama na webu.
Očigledno je da se ovi modeli međusobno nadopunjuju, te da svaki zauzima jedno mjesto u složenoj arhitekturi. Većina novih usluga i projekata koji se pojavljuju u Microsoftovoj ponudi bit će kreirana upravo na ovaj način. Tako će dio proizvoda svoje temelje zasnivati na Internetu (oblaku), dok će neke servise držati na lokalnom računalu.

Praksa čini razliku

Dobar primjer za to jest nova Live Workspace usluga. Workspace možete promatrati kao prostor na Internetu koji vam omogućuje pohranu i upravljanje dokumentima i ostalim tipovima elektroničkih datoteka. No razlikuje se od ostalih rješenja po tome što, ako na Workspaceu pokrenete stvaranje novog Word dokumenta, on zapravo pokreće lokalni Microsoft Word (instaliran na vašem računalu) kako bi vi radili na tom dokumentu. Nakon što ste dokument uredili i stvorili svoj sadržaj, dovoljno je kliknuti na Save gumb i Word zna gdje spremiti dokument – upravo tamo gdje ste ga inicijalno i kreirali, odnosno na Live Workspace koji je negdje na Internetu. Više informacija možete pronaći na adresi workspace.office.live.com.

Drugi primjer Software + Services modela, kojeg većina ljudi niti ne primjećuje jest Microsoft Exchange, odnosno usluga elektroničke S Spošte temeljena na tom proizvodu. Pojednostavljeno, Exchange sam po sebi nema korisnički klijent, već mu se pristupa koristeći različite uređaje i programe. Ovisno o tipu pristupa možete koristiti Microsoft Outlook kao lokalnu aplikaciju na LAN-u koja ima izuzetni korisnički doživljaj (brz, jednostavan i s puno funkcija), Microsoft Outlook kao lokalnu aplikaciju izvana kroz VPN (znači, spajanjem u lokalnu mrežu preko vanjske, recimo Interneta), Microsoft Outlook kao lokalnu aplikaciju koristeći RPC over HTTP (uz tehnologiju koja ne traži dizanje VPN mreže, odnosno S+S model), Microsoft Outlook Web Access (pristup do pošte koristeći web preglednik, koji opet koristi sve prednosti dinamičkog HTML-a, AJAX-a i klijentskog skriptiranja da korisničko iskustvo bude što bolje, odnosno SaaS model), zatim Microsoft Mobile 5/6 sustav za PDA i mobilne uređaje, uključivo i PushMail tehnologiju za trenutno primanje elektroničke pošte (S+S model) ili na kraju Microsoft Voice Recognition za Exchange, koji omogućuje da nazovete svoje Exchange server te da vam on pročita vaše poruke (S+S model). Poduža rečenica, ali što ćete kad novi model otvara toliko novih opcija.

Dakle, samo jedan servis te nekoliko klijenata (aplikacija) koje omogućuju različite korisničke scenarije. Svijet Software + Services pristupa je prilično zastupljen oko nas, mada ga mi takvim ne doživljavamo, djelomično i zato što se najbolje uočava kada se u taj model uključi i uređaj krajnjeg korisnika, recimo SmartPhone telefon.

Ove tehnologije i arhitekture osnova su koje morate razumjeti da bi razumjeli cloud computing. Računarstvo u oblacima samo je skup ovakvih rješenja koje, uzimajući povijesne okvire u obzir u kojima nešto iznajmljujete i plaćate za uporabu resursa, kombinirate u cloud computing rješenjima.

Arhitektura i karakteristike

Cloud computing danas se temelji na nizu otvorenih servisa raznih pružatelja usluga, koje se opet temelje na pouzdanim podatkovnim centrima istih ili drugih pružatelja usluga. Usluge moraju biti visoko dostupne, ali i skalabilne i prilagodljive. I ne samo to, novi pružatelji usluga danonoćno smišljaju oblike i elemente usluga kako bi bili što bliži potrebama korisnika – na neki način vraćamo cloud computing arhitekturu u domenu on-premise računarstva (odnosno, uporaba resursa koji se nalaze u vašem lokalnom Kombinacija modelapodatkovnom centru ili jednostavnije rečeno, sobi s poslužiteljima). Trend ovog prilagođavanja je izrazito jak i iako još nismo stvarno niti zaživjeli model računarstva u oblacima, već se naveliko razglaba o prijenosu koncepta u lokalno okruženje, odnosno stvaranja „računarstva u oblacima u vašoj sobi“. No, prednosti cloud computinga su toliko očigledne da se s pravom pitamo zašto naši enterprise sustavi ne posjeduju barem slične karakteristike, ali naravno zadržavajući fleksibilne troškovne modele koje ima arhitektura oblaka. Teško pitanje, zar ne?

Karakteristike ovakvog pristupa uglavnom se mjere dostupnošću, skalabilnošću, pouzdanošću i sličnim elementima koje uobičajeno možete pronaći u kompliciranim sustavima. Takve usluge uobičajeno ovise o internim uslugama virtualizacije računalnih resursa – bilo da su to resursi računanja, pohrane podataka ili mrežnog pristupa. Osnovna postavka arhitekture sustava je da se broj korisnika usluge te broj podataka koje takve usluge koriste mogu značajno mijenjati u malom vremenskom segmentu, čime virtualizacija i upravljanje virtualizacijom više dolazi do izražaja.

Cloud computing arhitektura uobičajeno je fokusirana na kritični element pružanja usluge – pouzdanost. Pouzdanost se uobičajeno iskazuje kroz postignuti nivo i kvalitetu usluge (quality of service) i ugovara se kroz razne service level agreement (SLA) ugovore o nivou isporuke usluge. Tipično, korisnik usluge cloud computinga iznajmljuje infrastrukturu i uslugu koju koristi te ne posjeduje značajnije kapitalne investicije. Korištenje usluge je operativni trošak kojim se jednostavno upravlja i gdje se plaćaju upravo oni resursi koji se koriste, poput struje ili vode. Naravno, ovo nije jedini monetizacijski model, već se koriste i pretplate (subscriptions), ali su neki vendori, naročito Microsoft, prilično kreativni u osmišljavanju modela naplate.

Uporaba usluga na ovaj način donosi i dodatnu prednost – dijeljenje računalnih resursa omogućava da se resursi mogu dijeliti i premještati prema različitim radnim procesima, te tako povećati iskoristivost resursa i bolje kontrolirati njihovu isplativost. Na primjer, procesor jednog poslužitelja možemo dodijeliti radnim zadacima koji su pokrenuti na drugom poslužitelju, te time virtualno povećati mogućnosti resursa koji su dodijeljeni radnom procesu.

Dodatni pozitivni element uporabi cloud computinga je i cijena i dostupnost mrežne infrastrukture, odnosno pad cijena mrežne infrastrukture. Danas je cijena broadband pristupa na Internet toliko prihvatljiva, da se gubi razlika između lokalne povezanosti na lokalne resurse te povezanost na cloud computing infrastrukturu koja se nalazi u udaljenom podatkovnom centru.

Microsoft i oblaci

Microsoft cloud computing promatra na drugačiji način – to nije samo prostor za neograničene računalne resurse izdvojen iz postojećih procesa ili rješenja, već je to nova platforma za razvoj, uporabu i upravljanje rješenjima nove generacije čija uporaba počinje na računalu krajnjeg korisnika i završava rezultatom koji se istom isporučuje.Pored toga, ovakva platforma nije samo prostor u kojem prodajemo resurse, već stvarni prostor novog operacijskog sustava za Internet (zovimo ga, Cloud OS ili Web OS). Takav prostor mora sadržavati sve odlike standardnog operacijskog sustava, bilo da je on u vršnoj kategoriji (poput UNIX, Solaris ili Windows Server poslužiteljskog sustava) ili kućnoj kategoriji. Aplikacije koje postavljate u takav sustav nisu samodostatne nego se oslanjaju na elemente sustava za svoj rad, kao što je na primjer datotečni sustav. To je danas možda razumljivo samo po sebi kada se radi o lokalnom ili poslužiteljskom računalu, ali kada se radi o Internetu ili Cloud Computingu, onda je zanimljivo pitanje.

Gledajući vremenske rasporede, danas se, što se tiče cloud computinga i definiranja operacijskog sustava na njemu, nalazimo u ranim šezdesetima, pokušavajući definirati što jest operacijski sustav. Većina vendora odabire svoj put, a korisnici se pitaju je li to za njih. I time dolazimo do Microsoftove implementacije cloud computing infrastrukture.

Microsoft Azure Services platform bio je veliko iznenađenje i po tome veliki hit Professional Developers konferencije u jesen 2008. godine u Los Angelesu. Toliko veliko iznenađenje da je zapravo ono što se očekivalo kao veliki hit, Windows 7, prošao je relativno nezapaženo, dok je većina novinskih natpisa govorila o Microsoftovoj implementaciji cloud computinga.

Azure Services Platform (ASP, ponegdje možete čuti da ljudi koriste kao skraćenicu samo Azure, što je netočno jer je to samo jedan dio Azure Services Platorme) Microsoftov je korak u operacijski sustav budućnosti. ASP je Internet-scale platforma računarstva u oblacima koja je postavljena u Microsoftovim podatkovnim centrima širom svijeta, a koja pruža operacijski sustav i niz razvojnih i korisničkih servisa koji se mogu koristiti pojedinačno ili zajedno. Microsoftova strategija je da se što više približi programerima, bilo da oni rade aplikacije direktno za oblak ili koriste oblak kako bi poboljšali mogućnosti svojih aplikacija.

Specifičnosti platforme

Posebno specifično kod Microsoft oblaka jest davanje mogućnosti programerima da grade aplikacije koristeći postojeća znanja koja imaju, pogotovo vezana uz Microsoft Visual Studio okruženje i .NET Framework okruženje. Microsoft Azure Services Platform podržava sve moderne programske jezike kojima možete programirati u Visual Studio okolini, ali i koristi Visual Studio kako bi kreirao offline (lokalnu) simulaciju oblaka te kako bi programeri mogli razvijati lokalno bez potrebe da se povezuju s oblakom tijekom razvoja programskog rješenja.

Druga bitna odrednica je upravljanje infrastrukturom – Azure pojednostavljuje upravljanje aplikacijama pružajući on-demand računalnu snagu, ali i prostor za pohranu podataka kako bi za nas pohranjivao, pokretao, skalirao i upravljao web-aplikacijama, ali i aplikacijama koje su povezane s postojećim sustavima. Upravljanje infrastrukturom u potpunosti je automatizirano na platformi koja je dizajnirana za visoku dostupnost i dinamičko skaliranje, kako bi se povezao način uporabe s modelom plaćanja za uporabu resursa.

Na kraju, Microsoft ne nudi samo razvojnu okolinu ili operacijski sustav. Tu su i gotove aplikacije koje korisnici odmah mogu koristiti, a koje koriste ASP kao platformu – Windows Live, Microsoft Dynamics, te druge Microsoft Online Services usluge kao što su Microsoft Exchange Online i SharePoint Online.

Kad se selimo?

To je pitanje koje se često ponavlja, te ovisno tko ga postavlja, takav mu je i entuzijazam. Privatni korisnici, male i srednje tvrtke te programeri su odmah prihvatili cloud computing i počeli razvijati rješenja. No s druge strane, enterprise korisnicima se baš i ne žuri i postavljaju s pitanja poput sigurnosti, privatnosti, skalabilnosti i dostupnosti, što su valjana pitanja iz perspektive njihovih scenarija.

Microsoft radi sve da bi prijelaz bio što jednostavniji – rade se dodaci za popularne razvojne alate (na primjer dodatak za Visual Studio koji sadrži lokalne alate za razvoj cloud aplikacija na lokalnom razvojnom stroju), dodaju se novi jezici (Azure je upravo počeo podržavati i PHP koji je jedan od najpopularnijih jezika) i slično.

Do masovnog prijelaza neće doći tako skoro. Kao i svaka platforma, i ova se mora dokazati i pokazati svoju stabilnost. Isto tako, velike kuće prelaze postepeno i njima su studije slučajeva koji obrađuju upravo njihov scenarij izrazito bitni. Ali model, tehnologija i platforma su tu – samo je pitanje dana kada će se masovno početi primjenjivati, ili, ovisno iz koje perspektive gledate, kad će svi priznati da je to jedan od modela koji je potpuno komplementaran s modelom klijent-server računarstva ili lokalnog (on-premise) web računarstva. Software + Services strategija koju nosi Microsoft odlično se uklapa u ove fenomene i cloud computing još je jedan dokaz da vaša aplikacija ili podaci zapravo nisu nigdje i ujedno su svagdje – svojevrsni oksimoron koji nas zapravo više niti ne brine. Dok god mogu do podataka, što se autora teksta tiče, mogu biti i u Gvineji Bissao. Barem je porez tamo manji.

Dijelovi platforme

Azure Services platforma se sastoji od nekoliko komponenata koje omogućuju rad kroz rješavanje bitnih pitanja i odrednica funkcioniranja cloud computinga.

platforma

Windows Azure

Windows Azure je ono što bismo zvali operacijskim sustavom na webu. Kao i svaki drugi operacijski sustav, on služi za razvoj i pokretanje programa, pružanje okoline za rad web-servisa i općenito upravljanje okruženjem koji čini Azure Services Platform. Kao i većina drugih „temeljnih“ servisa, Azure pruža usluge hostinga i storagea na kojima se nalaze vaše aplikacije, ali dodaje i okolinu koja je skalabilna i upravljiva. Tako je, na primjer, jednostavno dodati novi poslužitelj u vašu konfiguraciju (ili, u budućim verzijama, procesor ili memoriju) kad vam to zatreba – dovoljno bi bilo nekoliko klikova mišem. Windows Azure je otvorena razvojna platforma koja podržava sve .NET programske jezike, ali i alate i tehnologije trećih strana, kao što su Eclipse, Ruby, PHP i Phyton. Uglavnom, možete koristiti većinu znanja koje imate da bi kreirali Azure aplikacije, što Microsoft jedinstveno pozicionira na tržištu.

Live Services

Live Services je grupa servisa koje Microsoft popularno naziva blokovima za izgradnju aplikacija i sastavni su dio Azure Services platforme koja obrađuje podatkovne i aplikacijske resurse. Live servise već dobro poznajete, samo ih možda niste razmatrali u ovom kontekstu. Na primjer, Live Framework (Mesh), PhotoGallery, Messenger, Silveright Streaming i Spaces, sve su to Live Services usluge koje, naravno, imaju svoja aplikativna i servisna sučelja koja možete koristiti prilikom gradnje cloud aplikacija. Favorit je svakako Live Framework, koji donosi „stvarni“ aplikativni OS i podršku podacima (da ne kažemo, offline web aplikacije).

Microsoft SQL Services

Baza podataka u oblaku, rekli bi djelomično upućeni, i bili bi u pravu. Ovu tehnologiju pratimo još iz razdoblja dok su ju popularno zvali CloudDB, i dok nismo baš bili sigurni kako ju najbolje iskoristiti. Tehnologija koja se prikazala za vrijeme PDC2008 konferencije bila je rano izdanje koje je koristilo web sučelja do baze (REST i SOAP varijante), što je bilo prilično interesantno, jer se koristio zanimljiv ACE model (Authority, Containter, Entity). Iako je takav pristup nudio praktično neograničenu skalabilnost, upravljanje bazom je izrazito teško, te je tim već pod početka najavljivao da će se u potpunosti preći na podršku relacijskim bazama podataka. I to se početkom proljeća dogodilo – baza podataka u oblaku mijenja svoje programsko sučelje od standardno web orijentiranog (REST, SOAP) u relacijsko koje već od prije koristi njegov zemaljski brat, SQL Server. Nije da ovo programeri neće prihvatiti objeručke, jer je to upravo ono što koriste i što "napadaju" već godinama, tako da je krivulja učenja gotovo zanemariva. Dakle, SQL Server Data Services po novome povezuju se na bazu koristeći Tabular Data Stream (TDS), protokol koji je kompatibilan s Transact-SQL (T-SQL) jezikom, kojeg već poznajemo iz SQL Servera. Stari pristupni protokoli (REST, SOAP) se gase, ali ih je moguće emulirati putem web servisa.

.NET Services

Iako bi vam na prvi pogled moglo izgledati da cloud computing brine samo o onome što je u oblaku, u stvarnosti to baš i nije tako. Jedan od imperativa je povezivanje s postojećom infrastrukturom, korisnicima, ali i poslovnim procesima. Upravo zbog toga, Azure Services platform posjeduje .NET Services objekte koji omogućuju da se koristi pristupna kontrola i identitet bez obzira da li se radi o identitetu koji nastaje u oblaku ili dolazi iz enterprise okoline. Isto tako, tu su i komponente povezivanja preko Enterprise Services Busa koji omogućuje da se podaci prenose i servisi povezuju između enterprise organizacija i aplikacija u oblaku, kao i podrška za upravljanje radnim procesima (workflow i orkestracija). Ove komponente su osnova za bilo kakvo povezivanje s enterprise organizacijama i zasigurno ćete posegnuti za njima ako radite složene end-to-end scenarije.
Primijetit ćete da se na shemi nalaze i Microsoft SharePoint Services i Microsoft Dynamics CRM Services. Neka vas to ne zavara, jer su to samo dvije od mogućih raznih usluga koje će se pojaviti na Azure Services platformi. Isto tako, dio Microsoftovih servisa i proizvoda već sada funkcionira na novoj platformi, pa je pitanje dana kada će ih Microsoft (i gdje) predstaviti kao Software as a Services aplikacije.

Napomena: Članak je preuzet iz posebnog izdanja WinDays Mreža 2009, objavljenog u travnju 2009, izdavač BUG d.o.o.