Oblaki prihodnosti

Objavljeno: 28.4.2009 | Avtor: Uroš Mesojedec | Kategorija: Veliki preizkusi | Revija: April 2009 | Teme: google

V internet se seli vse več storitev in tudi razvijalci programske opreme ga lahko uporabijo na vse bolj zanimive načine. Vrsta podjetij je v minulih letih predstavila lastne pobude za razvoj programja v Oblaku.

Zadnja leta se je veliko govorilo o omrežnem računalništvu, lahkih odjemalcih, programju kot storitvi, zunanjem izvajanju teh programov, razpredenem računalništvu in podobnem. Vmes pa je internet vse bolj in bolj spreminjal naše vsakdanje delo. E-pošta je pravzaprav nepogrešljivo in neredko celo najpomembnejše orodje za komunikacijo, vse več nepogrešljivih storitev za skupinsko delo se je že preselilo v omrežje, sodobni programi neredko nastajajo zgolj s spletnimi pročelji, pametni telefoni dohitevajo zmogljivosti namiznih naprav in marsikdo med nami je lahko nenehno povezan v splet, če si to želi.

Oblak

Za tiho revolucijo, ki vse bolj očitno prodira v vse pore poslovnega in tudi ljubiteljskega računalništva, se je zadnje čase uveljavil izraz "računalništvo v Oblaku" (Cloud Computing). Izraz "Oblak" se v tej zvezi uporablja kot prispodoba za internet, izvira pa iz simbola oblaka, ki ga najpogosteje uporabimo v diagramih, ko bi radi ponazorili globalno omrežje. Hkrati je oblak dobra abstrakcija zapletene infrastrukture, ki se skriva nekje zadaj, nam pa je na voljo skozi precej prijaznejše vmesnike.

Internet oziroma Oblak lahko uporabljamo na najrazličnejše načine. Svetovni splet je prinesel možnost brskanja po nepregledni množici navzkrižno povezane in vse bolj večpredstavne vsebine. E-pošta je povsem preobrazila poslovno in zasebno komuniciranje. Splet 2.0 je prinesel še več storitev, ki predvsem dvigajo stopnjo interaktivnosti in možnosti vplivanja posameznikov na nastajanje vsebine in osebno medsebojno povezovanje, t. i. socialni splet. Zdaj so na vrsti razvijalci, ki se jim Oblak vse bolj odstira in omogoča povsem nov pristop pri načrtovanju in izdelavi namenskega programja oz. aplikacij. Kot smo nekoč trdili za tradicionalne operacijske sisteme, danes velja za naprednejše programske podlage, ki se izoblikujejo predvsem v Oblaku in na mobilnih napravah: tista, ki bo pritegnila največ razvijalcev, ima tudi največ možnosti za trajni uspeh.

Kratka zgodovina

Thomas Watson, nekdanji šef IBM, naj bi njega dni izjavil, da je na svetu morda trg za vsega pet računalnikov. Čeprav vira, ki bi to slavno izjavo potrdil, še niso našli, pa je zanimivo, da se izjava, nad katero smo se nekoč bržkone zabavali in je ponazarjala nesmisel napovedovanja prihodnosti pri tako dinamični industriji, kot je računalništvo, vse bolj uresničuje. Seveda, če računalništvo razumemo v njegovi srži, to je v masovni, avtomatizirani obdelavi podatkov. Računalnikov imamo res okoli sebe na kupe, saj skorajda ni sodobne elektronske naprave ali stroja, ki ne bi vseboval bolj ali manj zapletenega procesorja, a vse bolj postajajo le pametni odjemalci za storitve nekje v omrežju, saj sodobne aplikacije zahtevajo zmogljivosti, ki v našem domu ali na dlani preprosto niso mogoče ali smiselne. Dovolj je, da imamo omrežno povezljivost, saj za marsikaj lahko veliko bolje poskrbi Oblak (glej okvirček "Glasovno iskanje - moč Oblaka").

In res, že v 60. letih minulega stoletja so se pojavljale napovedi, da bo računanje že kmalu urejeno kot javna storitev, podobna storitvenim pisarnam, ki so se tedaj začele pojavljati. Te so lahko po veliko ugodnejših možnostih ponudile storitve, ki jih ni imelo smisla vzpostavljati v prav vsaki organizaciji (npr. fotokopirnica). Ekonomija obsega pač zagotavlja, da bolj specializirani ponudniki lahko vedno zagotavljajo boljšo storitev po ugodnejši ceni, najraje za določeno najemnino. Računalništvo je v teh letih pravzaprav že bilo organizirano kot storitev, ki so jo ponujali računski centri, a so osebni računalniki vse skupaj postavili na glavo in so bili po mnenju marsikoga, predvsem za poslovno rabo, velika zgodovinska napaka. A kaj, ko kaj dosti izbire sploh ni bilo, saj je množična konkurenca, posledica uspešnega kloniranja IBM PC, vsako leto korenito zniževala cene računalniških zmogljivosti na namizju.

Izraz "računalništvo v Oblaku" izhaja iz shematske upodobitve Interneta, ki ga pogosto ponazorimo kot oblak (vir slike: Wikipedia).

In vendar je internet končno prinesel manjkajoči člen v verigi storitvenega modela tudi v računalništvo. Najpogumnejši so že v 90. letih napovedovali, da bo šlo računalništvo kmalu po poti električne preskrbe, kjer so posamezne generatorje ob večjih porabnikih že zdavnaj nadomestili z električnim omrežjem, ki ga napaja le peščica visoko specializiranih ponudnikov (elektrarne). Nekatera podjetja pa so začela vizijo računalništva v Oblaku tudi konkretno izvajati.

Izoblikovalo se je več slojev storitev v Oblaku. Uporabniki so se najprej srečali s programjem kot storitvijo (SaaS), kjer so lahko uporabljali že narejene aplikacije, vendar prek spletnega brskalnika ali podobnega odjemalca, ki je omogočal dostop na daljavo. Na nižjih slojih pa so se izoblikovale tudi podlage kot storitev (PaaS), ki ponujajo pomoč pri celotnem življenjskem ciklu programov, od razvoja in uporabe do vzdrževanja (t. i. "cloudware") in tudi infrastrukture kot storitve (IaaS), predvsem ob pomoči računalniške virtualizacije, ki omogoča dinamično stopnjevanje zmogljivosti z zakupom navideznih strojev po trenutni potrebi.

Glasovno iskanje - moč Oblaka

Google je nedavno za programski podlagi pametnih telefonov iPhone in Android predstavil inovativno, glasovno iskanje. Namesto zamudnega vnašanja iskanega izraza skozi (virtualno) tipkovnico, lahko besede za preiskovanje preprosto izgovorimo v mikrofon. Programska oprema na odjemalcu preprosto digitalizira zvok in ga posreduje Oblaku, bolj natančno enemu izmed visoko zmogljivih Googlovih podatkovnih središč. Ta poskrbijo za prepoznavanje govora s posnetka, za iskanje in razporejanje ustreznih zadetkov in njihovo posredovanje nazaj odjemalcu. Odjemalec zgolj prikaže izide iskanja.

Ta sveža aplikacija je lep pokazatelj zmogljivosti in tudi disruptivnosti Oblaka kot nove programske podlage. Odjemalec ima že danes čisto vse, kar bo sploh kdaj potreboval: zajem in digitalizacijo zvoka ter omrežno povezljivost. Za vse drugo skrbi in bo tudi še naprej skrbel Oblak. To pomeni, da bo vedno večja zmogljivost, tako v prepoznavanju govora kot v naravnem preiskovanju, na voljo brez kakršnihkoli nadgradenj tako strojne kakor programske opreme, saj gre za tipično storitev v Oblaku, ki ji tudi prihajajoči pametni telefoni preprosto ne morejo biti kos, če so prepuščeni sami sebi.

Kako dolgo bo trajalo, da bomo pametni telefon lahko nagovorili v angleščini, on pa bo isti stavek predvajal npr. našemu kitajskemu sogovorniku v njegovem maternem jeziku?

Amazon

Kadar govorimo o praktični uveljavitvi Oblaka, ne moremo mimo spletnega trgovca Amazon, ki je po zlomu podjetij "pikakom" stavil na pravega konja in postal eden največjih ponudnikov storitev v Oblaku, ki jih trži vsem zainteresiranim strankam po nadvse konkurenčnih cenah. Vse skupaj se je začelo z interno reorganizacijo računalniške infrastrukture, pri čemer so uporabili vsa načela, danes znana pod nazivom računalništvo v Oblaku. Zaradi zelo dobrih izkušenj pri interni uporabi so se odločili, da bodo del svojih zmogljivosti začeli ponujati tudi drugim. Skupek storitev, znan pod imenom Amazon Web Services (AWS), že od leta 2002 ponuja model infrastrukture kot storitve in je postal priljubljena izbira predvsem za mlada podjetja, ki lahko svojo inovativno storitev hitro izgradijo in ponudijo najširšim množica, ne da bi morala preveč vlagati v zmogljivo infrastrukturo, ki bi bila zelo verjetno ali premalo uporabljena ali pa bi začela hitro pokati po šivih zaradi prevelikega obiska.

Amazon ponuja bogat nabor v praksi preizkušenih storitev s skupnim imenom Amazon Web Services.

AWS je skupno ime za kup precej različnih storitev v ponudbi, ki pa so vse dostopne prek povezave HTTP s protokoli, kot sta REST in SOAP. Svojo priljubljenost - na AWS naj bi se prijavilo že okrog 400.000 razvijalcev - pa dolgujejo predvsem ugodnemu cenovnemu modelu, ki temelji na plačevanju dejansko porabljene zmogljivosti. Ključne storitve AWS so Amazon Elastic Compute Cloud (EC2), Simple Storage Service (S3), Elastic Block Store (EBS) in Simple Queue Service (SQS), ki pa jih nadgrajujejo tudi z bolj specializirano ponudbo, kot je npr. podatkovna shramba SimpleDB.

Amazonova storitev EC2 temelji na virtualizaciji Xen, v kateri gostijo navidezne strežnike v petih temeljnih oblikah oz. zmogljivostih: majhna (Small, 32-bitni enoprocesorski virtualni stroj z 1,7 GB pomnilnika in 160 GB diska), velika (Large, 64-bitni dvoprocesorski virtualni stroj s 7,5 GB pomnilnika in 850 GB diska) in zelo velika (Extra Large, 64-bitni/8-procesorski/15 GB pomnilnika/1690 GB diska), sledita pa jima še dve različici, ki omogočata visoko intenzivnost rabe procesorja in vhodno-izhodnih operacij (High CPU Medium in High CPU Extra Large), če nam je pomembno predvsem mletje številk (npr. porazdeljeno kodiranje videa). Amazon ponuja že pripravljene navidezne stroje v različnih konfiguracijah, ki temeljijo na operacijskih sistemih Red Hat Enterprise Linux, Sun Open Solaris in Microsoft Windows Server 2003. V resnici je EC2 odprt za kakršnokoli navidezno napravo, ki jo podpira Xen, in to je rodilo kar bogato ponudbo že izdelanih navideznih strojev (Amazon Machine Image, AMI), v kateri bomo našli tudi stroje, temelječe na drugih operacijskih sistemih, vodijo pa seveda izpeljanke Linuxa (Fedora, Ubuntu, Debian ...), ki so lahko dokaj gole ali pa vsebujejo že vse potrebno za strežbo različnih aplikacij (npr. Oracle 11g, Apache Hadoop, IIS/Asp.net, MySQL in podobno). Čeprav Amazon v svoji niši pravzaprav še nima resne konkurence, je nadvse konkurenčen tudi po cenah, saj računa le tisto, kar v resnici porabimo, cene pa se začnejo pri 10 centih za porabljeno uro CPU in dodatnih 10 centih za prenos GB podatkov.

Amazon Web Services je po porabljeni pasovni širini že bolj priljubljena storitev od (nekoč?) ključne Amazonove dejavnosti, trgovin Amazon.com.

Amazon razmeroma hitro nadgrajuje svojo temeljno ponudbo tudi z bolj izdelanimi storitvami, ki znatno olajšajo izgradnjo visoko zmogljivih spletnih aplikacij. Značilni predstavnik je Amazon SimpleDB, ki na podlagi storitev EC2 in podatkovne shrambe S3 ponuja preprosto, a zelo zmogljivo podatkovno shrambo, brez velikih začetnih naložb v stojno in programsko opremo ter vzdrževalce, ki jih vsaka resna zbirka podatkov vedno potrebuje. Kot pove že njeno ime, je SimpleDB drastično poenostavljena podatkovna shramba, ki ponuja preprost programski vmesnik (API) za svojo rabo, vse težave v zvezi z vzdrževanjem in nadgrajevanjem pa pušča v Oblaku. Tudi SimpleDB ima nadvse konkurenčen cenovni model. Prvih 25 ur vsak mesec je celo brezplačnih, presežek pa se obračuna po 14 centov na porabljeno uro.

Amazon je začel pri sebi in kmalu svetu ponudil svoje temeljne storitve. Z novostmi pa se že močno bliža ponudnikom celovitih programskih podlag v Oblaku in s preverjeno kakovostjo in zelo konkurenčnim cenovnim modelom še naprej privablja številne razvijalce, predvsem iz mladih in zelo inovativnih podjetij. Z nadaljevanjem začrtane smeri in zanesljivim delovanjem v prihodnosti bodo gotovo ostali eden najpomembnejših igralcev na tem vznemirljivem področju računalništva.

Google

Google je že dolgo sinonim za spletno preiskovanje, ob tem pa jim je uspelo izgraditi impresivno globalno infrastrukturo, ki jo počasi odpirajo tudi razvijalcem. Google seveda ponuja tudi programje kot storitev, predvsem skozi svoj skupek Google Apps, ki ga zadnje čase tudi precej bolj intenzivno tržijo. Skoraj vsaka storitev, ki je na voljo pri Googlu, pa je kmalu na voljo tudi razvijalcem skozi vsak dan bogatejše programerske vmesnike (API), ki seveda temeljijo na HTTP in REST, Google pa vse bolj vzpodbuja tudi razvoj v javascriptu in izmenjavo podatkov s pomočjo zapisa JSON. V zadnjih letih je tako izgradil impresivno, prosto dostopno knjižnico programerskih storitev, ki jih lahko uporabljamo na lastnih spletiščih ali aplikacijah, ki so povezane v omrežje.

Kljub številnim možnostim priklopa na Googlov Oblak, pa smo razvijalci dolgo časa pogrešali celovito podlago, ki bi omogočala gostovanje celotne aplikacije na preverjeni Googlovi infrastrukturi, s čimer bi odpadla skrb po vzdrževanju lastne strojne in programske opreme, hkrati pa bi tudi odpadla bojazen, da bomo ob morebitni (in zaželeni) veliki priljubljenosti, nezmožni učinkovito streči številne odjemalce. Aprila 2008 so v Googlu končno ponudili tudi celovito programsko podlago kot storitev. Pod imenom Google App Engine (GAE) so predstavili skupek razvojnega kompleta in gostovane strežbe, ki omogoča podporo praktično celotnemu življenjskemu ciklu programa: od razvoja, ki ga lahko opravimo na lastnem namizju, do objave, nadzora in vzdrževanja, ki poteka na Googlovi visoko zmogljivi infrastrukturi.

Google App Engine je sicer še omejen na python, a ponuja verjetno najboljšo infrastrukturo, ki nepretrgano pridobiva nove zmožnosti.

Ker gre za posebno programsko podlago kot storitev, smo razvijalci omejeni z zmogljivostmi, ki jih ponuja (za razliko od infrastrukture, ki jo ponudi npr. Amazonov EC2, kjer na virtualnem sistemu gostimo, karkoli želimo, a imamo pri tem seveda veliko več dela). Žal je v tem trenutku to še vedno velika omejitev za številne razvijalce, saj je GAE omejen na prilagojeni python, ki ne dopušča prav veliko posegov do spodaj ležečega sistema. Google sicer obljublja podporo drugim programskim jezikom, hkrati pa dokaj pogosto posodablja zmogljivosti podlage, ki je nedavno pridobila npr. možnost obdelave v ozadju, načrtovana opravila in obdelavo prispele e-pošte.

Google ponuja tudi sprotno spremljanje zdravja infrastrukture, ki omogoča storitve Google App Engine.

No, če se s pythonom nekako znajdemo, nam GAE lahko ponudi zelo veliko. Podlaga ponuja zanesljivo in visoko zmogljivo zbirko podatkov Bigtable, ki jo uporabljajo vse zmogljive Googlove storitve. Za spletno pročelje lahko uporabimo delno omejeno različico ogrodja Django ali pa uporabimo posebno Googlovo ogrodje, podobno JSP (ali ASP.net). GAE ponuja tudi posebne knjižnice za obdelavo slik, predpomnjenje v pomnilniku (memcache) in seveda enotno avtentikacijo, ki je kar Googlova. Potencialni uporabniki naše aplikacije so tako vsi, ki imajo Googlov (ali Gmail) račun. Seveda so nam hitro in brez večjih težav na voljo tudi vse druge Googlove storitve, za katere je na voljo programerski vmesnik.

GAE je tudi cenovno zelo ugoden. Temeljna strežba je (in bo po obljubah vedno) brezplačna, na voljo nam je 500 MB diska, Google pa ocenjuje, da lahko naša aplikacija postreže do 5 milijonov obiskovalcev na mesec brez dodatnega plačila. Če bo naša aplikacija bolj priljubljena, bodo določeni obiskovalci lahko blokirani. Seveda so nam na voljo najrazličnejša orodja za spremljanje priljubljenosti, tako da lahko pravočasno ustrezno reagiramo. Dodatne zmogljivosti lahko dokupimo po cenah, ki so praktično enake Amazonovi ponudbi EC2 (10 centov za uro CPU in enako za preneseni 1 GB podatkov).

Google App Engine ponuja izvrstna orodja za popoln nadzor objavljenih aplikacij na podlagi.

GAE je značilen predstavnik celovite programerske podlage kot storitve, ki sicer postavlja jasne meje razvijalcu, hkrati pa drastično olajša celoten življenjski cikel programa, še posebej gostovanje, nadzor in vzdrževanje. Z vedno bogatejšimi knjižnicami in (upajmo) podporo drugim programskim jezikom bo GAE postal pomembna podlaga za izkoriščanje Oblaka, še posebej z večanjem priljubljenosti skupka spletnih programov Google Apps, kamor se aplikacije za GAE lahko še posebej enostavno vklopijo.

Microsoft

O Microsoftu kroži šala, ki gre nekako takole: vsako inovacijo v računalništvu najprej zaničujejo, potem napovejo svojo rešitev, ki bo veliko boljša od vsega, kar je, po dveh ponesrečenih poizkusih končno naredijo nekaj spodobnega, na koncu pa razglasijo, da je bilo vse skupaj tako ali tako njihova ideja že od začetka. To, kar jim je uspelo pri grafičnem uporabniškem vmesniku in pisarniški programski opremi, zdaj poizkušajo tudi v Oblaku, ki so ga dolgo zaničevali in mu odrekali bolj pomembno vlogo v prihodnosti. Na področju programja kot storitve so že precej obogatili svojo ponudbo Live, ki pa je še vedno preveč navezana na Okna in Pisarno. Za programerje pa se njihova sveža pobuda imenuje Windows Azure, a je še vedno v zelo omejenem preizkušanju in javnosti še ni na voljo.

Shematski prikaz storitev podlage Windows Azure.

Windows Azure kljub imenu ni pravi predstavnik družine operacijskih sistemov Okna, gre bolj za tržno ime za povsem novo programsko infrastrukturo, ki bo omogočala napredne storitve, kot jo od podlage v Oblaku lahko pričakujemo. Temelj ponudbe naj bi bile različice Windows Server 2008 z virtualizacijo Hyper-V, Azure pa kot sloj nad posameznimi virtualiziranimi izvodi skrbi za porazdelitev bremena in zanesljivo delovanje t. i. "tkanine" (fabric). Azure ponuja nekaj ključnih storitev, kot so SQL Services, .NET Services, Live Service in SharePoint services, ki jih razvijalci lahko povežejo v bolj razdelane aplikacije ob pomoči programskega jezika C# in ogrodja .net.

Ključna prednost Microsoftove ponudbe se skriva v razvojnem orodju, ki ga bo prinesel bodoči Visual Studio 2010. Razvijalci, ki so ključni za uspeh vsake podlage, potrebujejo učinkovita orodja, Visual Studio pa bi znal biti zelo udobno okolje tudi pri programiranju Oblaka, vsaj sodeč po prvih preizkusnih različicah.

Shema tipične aplikacije, ki izkorišča storitve Windows Azure.

Po drugi strani spremlja Microsoft neprijetna izkušnja samozadostnosti in najustreznejše podpore predvsem drugim izdelkom iz lastne hiše. V Oblaku so stvari precej drugačne in moč vsake podlage se bo merila tudi po tem, kako odprta je za povezovanje navzven in tudi navznoter. Bistvena prednost Oblaka je namreč neomejena povezljivost in neodvisnost od značilnosti odjemalcev. Če bo Azure zadovoljivo deloval le v paru z Okni in bo za učinkovito delo potreboval še nameščeno Pisarno, potem to sploh ni več Oblak, temveč - kot pravi sam Microsoft - "software plus services", zgolj privesek za tradicionalni model računalništva na namizju, ki nima prihodnosti.

VMWare

Glede na izjemne izkušnje z virtualizacijo smo tudi od podjetja VMWare (ki je že nekaj časa del velikana EMC) že dolgo pričakovali tudi ustrezno podlago v Oblaku. S precej zamude so se le zganili in nedavno predstavili pobudo vCloud, ki veliko obeta, a je še v fazi razvoja.

Pobuda vCloud je predvsem ponudba infrastrukture kot storitve, obljublja pa zanimiv pristop k virtualizaciji, ki zna ustvariti povsem nov trg številnih ponudnikov, na katerem bo konkurenca poskrbela za inovativne pristope in nizke cene. Ključna prednost pobude vCloud je to, da gradi na preizkušeni podlagi preverjene virtualizacije in bogatega nabora že izdelanih strojnih podob (virtual machine images). VMWare se je odločil, da bo svoj Oblak gradil ob pomoči številnih partnerjev, ki bodo omogočali zanesljivo gostovanje že izdelanih virtualnih strojev. S tem odpravljajo Ahilovo peto ponudbe v Oblaku - preveliko odvisnost od enega samega ponudnika. Standardizirane podobe navideznih strojev bo mogoče brez večjih težav prenašati med številnimi ponudniki, ki si bodo konkurirali s ceno in kakovostjo storitve.

Ključna prednost pobude vCloud je svobodna izbira ponudnika gostovanja virtualne naprave.

Za razvijalce vCloud ne prinaša kakšnih posebnih novosti, saj gre predvsem za pobudo, ki bo prinesla inovacije med ponudniki infrastrukture kot storitve. Najrazličnejše programske podlage, ki se bodo rojevale na njej, verjetno ne bodo del ponudbe samega vClouda.

V prihodnost z Oblakom naprej

Storitve v Oblaku so iz dneva v dan bogatejše in pod dokaj bogato ponudbo najrazličnejših programskih storitev se vzpostavljajo "operacijski sistemi" prihodnosti - visoko zmogljive, globalno razpršene, zanesljive in vedno dostopne programske podlage, na katerih bo mogoče graditi inovativne aplikacije prihodnosti, ki bodo izkoriščale globalno omrežje in vse večje zmogljivosti številnih, predvsem mobilnih odjemalcev (npr. ozaveščenost o trenutni lokaciji).

Kot že omenjeno, bo ekonomija obsega poskrbela, da bo peščica globalnih ponudnikov vedno lahko ponudila boljšo storitev po nižji ceni. Kot se že dogaja pri aplikacijah za končne uporabnike, bo sčasoma gotovo res tudi za razvijalce. Tisti, ki bodo Oblak sprejeli med prvimi, bodo lahko pridobili ključno prednost v primerjavi z zamudniki. Še posebej, če njihove ambicije niso zelo omejene in bi želeli svojo inovativno storitev ponuditi vsemu svetu. Visoka razpoložljivost in zmogljivost Oblaka je zanje ključna.

Primerjava ponudnikov računalništva v Oblaku

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki