Welcome to MSDN Blogs Sign in | Join | Help

Pilvialustan sovellusmallit

Pilvialustat (cloud computing platforms tai Platform as a Service (PaaS)) ovat vielä monille melkoinen kysymysmerkki. Muutamat kumppanimme ovat edelläkävijöinä jo rakentantamassa sovelluspalveluratkaisuja Azure alustalle, mutta erityisesti tietotekniikan loppukäyttäjinä toimivat yritykset ovat ihmeissään mitä pilvialustat tarkoittavat.

Myös alan toimijoiden kesken on eriäviä näkemyksiä siitä, mihin suuntaan pilvipalvelualustoja pitäisi kehittää. Vaikka palvelualustoja tarjoavia tahoja onkin vähän, on niiden lähestymistavoissa jo eroa. Toistaiseksi ainoa tuotannossa (beta-status poistettu ja hinnoittelu julkistettu) oleva alusta on Amazonin Elastic Computing Cloud (EC2). EC2:n lähestymistapa on tarjota pienin yhteinen nimittäjä, jonka päälle voi rakentaa hyvin monenlaisia palveluja. EC2:n päällä voi ajaa Windows Server 2003 ja Linux virtuaalikoneita. Tämä jättää asiakkaalle vapauden rakentaa hyvin monenlaisia ratkaisuja. Alustan vapauden vastapainona asiakkaan on myös vastattava itse ratkaisun skaalautuvuuden ja korkean käytettävyyden saavuttamisesta. Myös ratkaisun palvelutason valvonta ja ohjaus on järjestettävä itse. Amazon valvoo vain onko virtuaalikone pystysssä.

Muut suurimmat pilvialustojen rakentajat ovat määritelleet alustojensa rajapinnat ylemmälle sovellustasolle. Google AppEngine ajaa Python sovelluksia, Salesforce.com Force-alusta ajaa Apex-kielellä kirjoitettuja sovelluksia ja Windows Azure-alustalla voi ajaa .NET sovelluksia sekä FastCGI/PHP sovelluksia. Sovellusmallin rajoittamisella tavoitellaan parempaa tuotannon palvelutason valvonnan ja hallinnan automatisointia.

Azure sovellusmalliPilviArkk1

Azure antaa valmiin sovellusmallin, jossa .NET sovellus voi koostua erilaisista web role ja worker role –komponenteista. Web role –komponentti toteuttaa joko käyttöliittymän ASP.NET-selainsovelluksena tai sanomapohjaisen sovellusrajapinnan Windows Communication Foundation (WCF) –palveluna. WCF-palvelun avulla voi toteuttaa web service, REST ja Atom Publishing –pohjaisia rajapintoja. Worker role –komponentti on tarkoitettu pitkäkestoisempien tehtävien taustalla suorittamiseen. Tyypillisesti worker role saa herätteitä Azuren tarjoaman jonomekanismin kautta web role-komponenteilta. Toki worker role voi myös hoitaa erilaisia ajastettuja tehtäviä. Kukin komponentti-instanssi pyörii Azure alustalla omassa virtuaalikoneessaan.

Monesti Azuren web role - worker role –malli ymmärretään väärin perinteiseksi kerrosarkkitehtuurin käyttöliittymä – liiketoimintalogiikka – tiedonhallinta –rakenteeksi. Web role – worker role –mallin tarkoituksena on kuitenkin erottaa toisistaan käyttäjäinteraktio ja  pitkäkestoinen prosessointi, jotta kumpaakin voidaan skaalata toisistaan riippumatta. Esimerkkisovelluksia laajemmissa todellisissa liiketoimintajärjestelmissä kumpikin rooli kannattaa itsessään rakentaa kerrosrakennetta noudattaen. Jos sovellusta tarkastellaan loogisella tasolla, voidaan sovelluksen kerrosrakenne esittää oheisen kuvan (kuva 1) mukaisesti.  Tiedonhallinta ja liiketoimintalogiikka ovat omia loogisia kerroksiaan ja ylin kerros voidaan jakaa kolmeen osaan, jotka kaikki käyttävät yhteisiä liiketoimintakerroksen palveluja. Yksi osa koostaa palveluista käyttöliittymiä, toinen muille sovelluksille tarjottavia rajapintoja ja kolmas hoitaa liiketoimintapalvelujen avulla pitkäkestoista taustakäsittelyä.

Jos sama kuva esitetään Azuren web role – worker role –malliin sovitettuna (kuva 2), nähdään että kummallakin roolilla  on sekä liiketoimintalogiikkaa että tiedonhallintaan liittyvää koodia. PilviArkk2

Web role käyttöliittymäosuus tarjoaa selainpohjaisen käyttöliittymän, jota voidaan terästää AJAX ja Silverlight tekniikoilla. (Mikä tahansa web-palvelimelta jaeltava käyttöliittymätekniikka käy, kuten XBAP ja Flash.) Web rolen rajapintaosuus tarjoaa ulkopuolisille sovelluksille sanomapohjaiset sovellusrajapinnat web service, REST tai Atom Pub rajapinnoilla. Toteutustekniikkana on .NET 3.x:n Windows Communication Foundation. Rajapinnan asiakkaana voi olla esimerkiksi jokin liiketoimintasovellus .NET Services –palvelun Service Bus mekanismin kautta, perinteinen asennettu käyttöliittymä tai vaikkapa Outlook laajennos.

Worker role ajastusosuus koordinoi pitkäkestoisempaa prosessointia joko jonosta tiedonhallintakerroksen välityksellä vastaanotettujen tapahtumien tai erillisen ajatusmekanismin perusteella. Worker role komponentteja voi myös ketjuttaa jonojen välityksellä käsittelyketjuiksi. Jonosta luetut tapahtumat voivat päätyä eri worker role instansseille, joten jonon kautta välitetyille tapahtumille ei voida taata tiettyä käsittelyjärjestystä.

Web ja worker role voivat jakaa tiedonhallintaan ja rajapintoihin liittyvää koodia. Nykyinen Azure SDK tarjoaa valmiin Storage Client –kirjaston (lähdekoodeineen) joka yksinkertaistaa Azure alustan tiedonhallinnan palvelujen käyttöä. Vastaavasti tiedonhallintakerrokseen kuuluu esim. Azure palvelualustan SQL Services (sovelluksen oma relaatiomallinen data) tai Live Services (käyttäjän omistama XML tai blob data) –palvelujen käyttö. Ulkoisten palvelujen käyttö kuuluu myös loogisesti tiedonhallintakerroksen kanssa samalle tasolle. Käytettäviä ulkoisia palveluja voivat olla esimerkiksi .NET Services –palvelun Service Bus mekanismin kautta erilaiset yrityksen sisäiset liiketoimintajärjestelmät, muut Live Services palvelut tai kokonaan muilla pilvialustoilla pyörivät palvelut.

Pilvialustoille sopivista arkkitehtuureista on toistaiseksi esitetty kovin vähän konkreettisia malleja. Olisi kiinnostavaa saada aikaan lisää keskustelua aiheesta. Otan mielelläni vastaan kommentteja joko tämän blogin kautta tai lukijoiden omien blogien kautta.

Erinomaista taustaluettavaa pilvialustoista ovat David Chappellen seuraavat artikkelit:

Introducing the Azure Services Platform: An Early Look at Windows Azure, .NET Services, SQL Services, and Live Services

Introducing Windows Azure

A Short Introduction to Cloud Platforms

Published Friday, March 27, 2009 3:21 PM by PasiM

Comments

No Comments
New Comments to this post are disabled
 
Page view tracker