[cio] Windows Azure 101: kako ga usvojiti s stanovišta velikeee korporacije?
napomena: tekst je izvorno objavljen u časopisu PC CHIP. Ovo je mali, kako bi rekli, RT.
Postavite li danas pitanje direktoru informatike prosječno velike korporacije o tome što misli vrijedi li razmišljati o oblaku – ne očekujte veliku potporu. Pogledajte samo naslove pojedinih članaka: “CIO: Cloud Computing Survey: IT Leaders See Big Promise, Have Big Security Questions”, “SearchCIO: Addressing compliance requirements in cloud computing contracts”, “Computerworld: Corporate use of cloud services slowed by concerns about data security, reliability”, “CIOUpdate: Is Cloud Computing Ready for the Enterprise?” odnosno “ZDNet: Is the enterprise ready for cloud computing?” jasno je da smo daleko do toga da računarstvo u oblaku postane općeprihvaćeno u korporacijama kao što su to možda uspjele neke druge tehnologije i pristupi. No, što je tome uzrok? Pitanje je to na koje se pokušava odgovoriti na raznim forumima, okruglim stolovima, člancima i dokumentima… I sve se svodi na nekoliko jednostavnih: tehnologija još nije spremna, promjena može i ne mora biti znakovita i možda najbitnije, ne postoje jasni scenariji kako cloud computing iskoristiti u korporaciji.
Kao prva prepreka koju je teško preskočiti uvijek se nameće tehnologija: iako bih rekao da cloud computing nije ništa revolucionarno novo (pendullum se opet vratio ka centralizaciji resursa), dostupnost kojom se otvorila putem Interneta širokom krugu korisnika promjenila je mnoge načine (čitaj: scenarije) uporabe. Resursi negdje gore su jeftiniji i dostupniji. No, nisu uvijek udruživi s tehnologijama koje koristimo u svom okruženju. Tko želi učiti pisanje programa u Phytonu samo zato što je to jedini jezik koji oblak razumije?
Druga prepreka je malo suptilnija: korporacije cijeli svoj život ulažu u elemente računalne infrastrukture nad kojom imaju kontrolu. Posebna su tu pitanja sigurnosti, integracije, privatnosti i upravljivosti. Korporacije su ogroman novac uložile u te kategorije i s pravom smatraju da su njihove okoline sigurne i zaštićene. Kakav sad Internet i aplikacije u oblaku? Internet je “po definiciji” nesiguran i vrlo je teško zamisliti otvaranje korporacije prema informacijama, podacima, procesima i aplikacijama koje nemaju pod kontrolom.
Na kraju, pitanje je tu strukture aplikativne podrške i znanja oko integracije i razvoja: interoperabilnost je danas riječ u izumiranju jer se podrazumijeva da podaci slobodno teku i da ih aplikacije jednostavno razmjenjuju. Razmjeniti podatke između vašeg SAP sustava i male aplikacije koja se nalazi na URL adresi http://myapp.apps.net ne izgleda trivijalno, pogotovo zato što baš niste sigurni s kime bi o tome razgovarali kad se pružatelj usluge na navedenoj adresi nalazi u Kuala Lumpuru…
Probati riješiti sva tri problema u jednom članku gotovo je nemoguće. Zato, usmjerimo se na drugu prepreku: kako korporacija može “prihvatiti” računarstvo u oblaku i integrirati ga u svoje aktivnosti? I pri tome iskoristiti ono što je najbolje i odbaciti iz svog okruženja ono što zbilja ne funkcionira (a zbog limita resursa vjerojatno nikada neće ni funkcionirati).
Rekli bi, pitanja je puno i odgovora je malo. To je i za očekivati, jer je računarstvo u oblaku u svojim povojima, barem pream mogućnostima i razumijevanju. No, treba li to odbaciti kao trenutno neosnovano? Ako želite biti jedan od studija slučajeva u knjizi kao što je “Disruptive Innovation” C.Christensena, najbolje odložite ovaj časopis i dohvatite se AutoMoto Kluba ili sličnog – ionako se nećete za koju godinu imati o čemu brinuti.
Pristup rješavanju problema
Iako sam počeo oprezno, s naslovima novina koji govore o problemima, cloud computing je nešto o čemu svi govore i svi se slažu da je to vrlo značajan korak naprijed za tehnologiju i način njene uporabe. Danas je jednostavno nabrojati barem pedesetak proizvođača različitih oblika računarstva u oblaku koji implementiraju neke pojavne oblike tog pristupa. Tu su svi veliki – i IBM, Amazon, Microsoft, Google, Oracle… iako im je svaki oblak gotovo preslika politike i modela kojeg inače koriste i guraju, u većini pojava postoji cijeli niz zajedničkih stvari koje svi imaju i zbog kojeg se mogu svrstati u ponuditelje računarstva u oblaku.
Korporacije su naravno pozvane da iskoriste ove resurse – iako se na prvi pogled čini da je računarstvo u oblaku uglavnom okrenuto prema krajnjim korisnicima (consumerima), ne grade se uzaludo toliki resursi – svi vjeruju da će dio računalnog kapaciteta korporacije biti kad tad preseljen u oblak i korišten po popularnom “on demand “ principu.
No, ne pristaju svi na krajnost: zašto bi morali koristiti nešto nad čime nemamo kontrolu? I postavlja se logično pitanje: možemo li u svom, korporativnom okruženji imati sustav koji je isti kao onaj koji možemo koristiti u oblaku? Ili drugim riječima: možemo li uzeti oblak i lijepo ga iskopirati u svoje privatno “enterprise” okruženje i time naslijediti sve prednosti koje pruža obkal kao što su skalabilnost, učinkovitost i dostupnost? Mogu odmah ponuditi odgovor: teoretski da, ali teško je za očekivati da svaka korporacija može izgraditi svoj Data Centar veličine Data Centara koje grade Microsoft ili Amazon. Ne samo da bi to bilo nepraktično nego bi bilo i izrazito skupo – vjerojatno i neiskorišteno. Globalni Data Centri se i grade kako bi se iskoristila mogućnost dijeljenja resursa i time smanjili troškovi – teško je zamisliti korporaciju koja to može u potpunosti podijeliti s drugom korporacijom.
No nije ovdje sve za odbaciti. Jedna od ideja jest i da se dio znanja koji je stečen u građenju ovakvih rješenja na neki način “vrati” u proizvode koji su danas dostupni široko na tržištu. Jer, ako je Windows Server 2008 osnovni građevni blok za upostavu Microsoft Data Centara (a jest), zar onda ne bi mogli prakse, politike i mogućnosti koje postoje u Data Centru na neki način implementirati u nove Windows Servere? Bolje rečeno, ako u Data Centru možemo ostvariti neviđenu skalabilnost i učinkovitost, da li bi mogli napisati dio novog programskog koda koji bi to znao napraviti i na naših lokalnih i umreženih 8 servera?
Stariji će se sjetiti napora koje je Microsoft radio s svojim DataCenter izdanjem servera… mislim da to više ne možete pronaći na tržištu. No za očekivati je da će se svi ponuditelji računarstva u oblaku potruditi pronaći načina kako se približiti “smanjenim” verzijama svojih oblaka koje možete implementirati u svojim okruženjima, ali za sada, nema velikih vijesti.
Do tada, ostaje nam dobro razumjeti što nam donosi infrastruktura u oblaku – pogledajmo za primjer Microsoftovu implementaciju i pristup problemu.
Windows Azure
Ljudi često miješaju pojmove Azure Services Platform i Azure – priznajem da nije jednostavno jer se to ponekad čini kao rekurzivni akronim (skoro kao pa GNU /GNU is not UNIX/ ili BING /BING is not Google/). Ali daleko je jednostavnije – Azure je jednostavno dio Azure Services platforme, i zapravo je dio koji čini njenu osnovu, odnosno operativni sustav zasnovan na oblaku (neko vrijeme se koristio izraz Cloud OS). Platformu možete iskoristiti kako bi proizveli i upogonili potpuno nove tipove aplikacija ili pojedinačnih usluga koje mogu biti ili samostalne aplikacije (dakle, poput Web aplikacija na Internetu) ili nadogranje postojećih aplikacijam (recimo, web servise koji nadograđuju vaše aplikacije ili koje vaše aplikacije jednostavno koriste). Ono što je bitno razumjeti da je odabir u potpunosti na strani korisnika – morate pronaći svoj scenarij koji moželi prenijeti u oblak. Nisu svi scenariji pogodni za oblak niti se svi mogu implementirati na platformi. Dodatno, platforma sadži cijeli niz dodatnih usluga, kao što je prikazano na slici 1, i jedna grupa tih usluga upravo je fokus ovog teksta.
Slika 1 Microsoft Azure Services Platform
No, za početak, upustimo se malo dublje u Windows Azure.
Windows Azure temelji se na računalnoj snazi koja se pokreće putem Microsoft Data Centara a čija je primarna zadaća stvaranje, postavka, upravljanje i skaliranje aplikacija i usluga na Internetu. Microsoft ubrzano gradi svoje Data Centre jer razumije da ne možete igrati tržišnu utakmicu ako nemate dovoljno resursa koji će podržati cloud computing – odnosno aplikacije u oblaku. Unutar Windows Azure platforme dvije su grupe aktivnosti od značaja: one koje se bave obradom (dakle, izvršenje aplikacije) te pohranom (dakle, pohrana i prihvat podataka na i sa diska). Rekli bi, uobičajeni zadaci koje radi prosječno računalo. No, za razumjeti je da su upravo ovo dva područja na kojima računala gube svoje mogućnosti i gdje se aplikacije usporavaju ili jednostavno postanu nedostupne. Laičkim riječnikom, upravo su ovo dva područja koji čine uska grla računala – ovo su elementi koje cloud computing mora jednostavno rješavati, odnosno, moraju postati neograničeno skalabilni, barem teoretski. Skalabilnost ovdje mora postati stvar konfiguracije sustava – bilo da se neograničeno dodaje broj procesora, prostora na diskovima, propusnosti mreže ili nešto drugo. Teoretski, moglo bi se reći računalu “dodaj mi još 3 procesora i podigni propusnost mreže na 10GB/s”… upravo sada – i kliknuti na gumb na konfiguracijskoj ploči.
Bitno je za razujmeti da smo upravo zbog toga Windows Azure napravili kao prilično jednostavne usluge (ali time i vrlo skalabilne). Pohrana podataka ovdje se odnosi samo na BLOB binarne podatke, nešto upita te jednostavne tablice, ali nećete pronaći ništa slično relacijskim tablicama (o tome se brine Microsoft SQL Services kao dio Microsoft Azure Services platforme).
No, kao što sam najavio, skalabilnost i dostupnost nisu jedini elementi koji su od značaja za prosječno enterprise korporativno okruženje. Tu su i pitanja sigurnosti, povezivanja “lokalnih” aplikacija s oblakom, pitanja upravljanja aplikacijama te ponekad i pitanja radnog procesa (workflowa). Ako pogledate bilo koju ozbiljniju aplikaciju danas, osim osnovne funkcionalnosti, ovo su uvijek nužni elementi koje morate imati da bi se zvali “enterprise” aplikacijom”. O tome se brinu Azure Services Platform komponente koje se nalaze u… Microsoft .NET Services građevnom bloku.
Microsoft .NET Services
Microsoft® .NET Services građeni je blok od posebnog interesa za one koji sebi postavljaju pitanja slična onima sa početka članka. Naravno, nije za očekivati da će direktor informatike sjesti za Visual Studio i rješiti pitanje federacije identiteta kroz nekoliko linija programskog koda, ali developeri bi ovdje već trebali plivati kao ribe u vodi. Probate li koristiti Microsoft .NET Services kao gradivne elemente, biti će vam jasno da je ovo tek nekoliko .NET usluga i razvojna okolina (software development kit – SDK) kojeg koriste programeri kako bi omogućili rješavanje pitanja s početka priče. Danas, ova razvojna okolina odnosno razvojne komponente rješavaju pitanja povezivanja aplikacija, pitanja pristupa te pitanja upravljanja procesima, ali jasno je da će Microsoft staviti određeno težište na razvoj komponenti koje tržište (čitaj: enterprise) bude od njih tražilo. Usluge koje kroz Microsoft .NET Services možete omogućiti su, shodno prethodnoj rečenici Microsoft .NET Service Bus, Microsoft® .NET Access Control Service, te Microsoft® .NET Workflow Service.
Tabela 1 Opisi pojedinih usluga u Microsoft .NET Services građevnom bloku
|
Usluga |
Opis |
|
.NET Workflow Service |
Komponenta koja pruža infrastrukturu za hosting i upravljanje Workflow Foundation radne procese unutar Azure Services Platforme. Također, komponenta pruža alate i mogućnosti postavljanja, upravljanja i pokretanja instanci radnih procesa u oblaku. |
|
.NET Service Bus |
Komponenta koja prestavlja uslugu povezivanja omogućujući povezivanje između oblaka i korporacijskih resursa. Ova infrastuktura omogućava radnim procesima koji su zasnovani u oblaku komuniciranje s aplikacijama koje rade u korporativnom okruženju kroz postojeće firewallove i NAT uređaje. |
|
.NET Access Control Service |
Komponenta koja pruža claims-based mehanizam pristupne kontrole u oblaku koji podržava WS-Security mogućnosti. Također su podržani zahtjevi federacije, kao što su interoperabilnost s nositeljima identiteta kao što su Active Directory i Windows Live ID. |
Iako su ove usluge primarno napisane na .NET platformi i koriste Windows Communication Foundation (WCF) i Windows Workflow Foundation (WF), to ne znači da ih ne možete koristiti i putem drugih programskih jezika odnosno razvojnih okolina. Ovo je poglavito važno za one korporacije koje su investirale i u druga razvojna okruženja. Time je zgodno za znati da je .NET Services zasnovan na industrijskim i standardnim protokolima, što omogućava jednostavnu integraciju putem REST, SOAP, i WS-* protokola. Na primjer, već postoje Java i Ruby SDK za Microsoft® .NET Services usluge – što otvara vrata raznim razvojnim grupama i jednostavnu integraciju s postojećim rješenjima.
Kako komponente rješavaju problem korporacija?
.NET Access Control Service vam omogućuje jednostavnu federaciju identiteta. Na primjer, ako koristite Active Directory kao imenički servis nije vam potreban niti jedan drugi identitet za aplikaciju koja se nalazi na Internetu. Zar to nije logično? Prijavite se ujutro u svom uredu na mrežu i … cijeli dan koristite različite aplikacije na Internetu a da niste morali upisati niti jedan drugi oblik identiteta (tipa username / password). .NET Services Bus vam omogućuje da vaša aplikacija iz ureda proslijedi neke podatke prema aplikaciji na Internetu (i obratno) na jednostavan način kroz HTTP port, čime administratori i upravitelji sigurnosti neće dobiti slom živaca. Dodatno, ova komunikacija je otvorena za višestruke usluge lokalno (Enterprise Services Bus) koje se povezuju s jednom ili više usluga na Internetu (čineći time – Internet Services Bus, termin koji se baš i ne rabi, ali je dobra slika onoga što dobivate). Na kraju .NET Workflow Service vam omogućuje da se radni procesi koje ste započeli u korporaciji jednostavno nastavljaju kroz dijelove procesa koji su u oblaku i potom vraćaju nazad u korporaciju. Mislite da vam to ne treba? Onda niste upoznati s složenošću procesa u državnoj upravi koji se prostiru ponekad i na nekoliko tijela.
I prema kraju…
Nemojte smetnuti s uma da smo ovdje razgovarali samo o specifičnom problemu i specifičnom rješenju – platforma je daleko bogatija mogućnostima. Ponavljam, sve ovisi o vašem scenariju, a enterprise integracija samo je jedan od scenarija koji se ovdje pojavljuju. Isto tako, osvrnuo sam se samo na jedan građevni blok – .NET Services, iako ih naravno ima i drugih – slika 2.
Slika 2 Razne mogućnosti koje donosi Azure Services Platforma
Neke od ovih mogućnosti su rudimentarne i niti jedna ozbiljnija aplikacija ne može se niti zamisliti bez njih – pogledajte samo na primjer Microsoft SQL Services. No to je neka druga priča i neki drugi scenarij koji razvijatelji aplikacija u oblaku mogu imati. Kao i specifičan problem koji se pri tome rješava. Ali kao što rekoh – nekom drugom prilikom.
RSS pretplata na članke
... i leptir na naslovnici :).
Uf, jesi se raspisao. Ovo ide za “Read later”
Ivan Brezak Brkan
26/12/2009 at 21:48
[...] Kako će korporacije usvojiti Windows Azure, piše Ratko Mutavdžić Postavite li danas pitanje direktoru informatike prosječno velike korporacije o tome što misli vrijedi li razmišljati o oblaku – ne očekujte veliku potporu. Kako korporacija može “prihvatiti” računarstvo u oblaku i integrirati ga u svoje aktivnosti? I pri tome iskoristiti ono što je najbolje i odbaciti iz svog okruženja ono što zbilja ne funkcionira (a zbog limita resursa vjerojatno nikada neće ni funkcionirati). [...]
Linkokracija #2 – Kupujte i organizirajte se na internetu! | Netokracija
27/12/2009 at 09:02