X
Loading...
Ei hakutuloksia
Sisältö
Henkilöt
{ page.post_title }
{ page.titteli }
{ page.sahkoposti }
{ page.puhelinnumero }

Pilviympäristöillä paljon etuja ohjelmistokehityksessä – yleiskatsaus pilvipalveluihin

Pilvipalvelut ja pilviympäristöt antavat ohjelmistoyrityksille avaimet aiempaa kattavampien ratkaisujen tarjoamiseen asiakkailleen. Siinä missä aikaisemmin järjestelmien rakentamiseen saatettiin tarvita useamman yrityksen yhteistyötä tai mahdollisesti uusia laitteistohankintoja oheistöineen, pystytään ne nyt toteuttamaan pilvipalveluiden avulla ketterästi ja itsenäisesti tarjoten asiakkaalle kokonaisratkaisu aina vaatimusten kartoittamisesta sovelluksen ylläpitoon.

Ketterästi, osana ohjelmistokehitystä

Ohjelmistoyrityksissä on käytetty jo vuosikymmeniä versionhallintajärjestelmiä ohjelmakoodin säilömiseen ja hallintaan. Ajoympäristön kuvaus on kuitenkin yleensä ollut erillinen osa-alue, joka on monesti määritelty versiohallinnan ulkopuolella, mahdollisesti erillisissä dokumentin- tai tehtävänhallintasovelluksissa. Usein ajoympäristön kuvaus liittyy kuitenkin vahvasti toteutettuun ohjelmistoon ja ne olisi mielekästä pitää samassa paikassa.

Yksi pilviympäristöjen keskeisimmistä piirteistä on se, että ympäristön hallinta on tuotu kokonaisuudessaan käyttäjälle ja tapahtuu rajapintojen kautta. Tämä mahdollistaa silloin myös sen skriptaamisen alusta loppuun. Sen sijaan, että asiakkaan IT:ltä tai sen ylläpidosta vastaavalta yritykseltä pyydettäisiin tarvittavia palvelimia, palomuuriavauksia tai vaikkapa varmenteita, kirjoitetaankin nämä vaatimukset sähköpostin sijasta skriptitiedostoon ja säilötään sovelluskoodin ohella versionhallintaan. Muutettaessa sovelluksen koodi käyttämään esimerkiksi Redis-cachea, määritellään samalla kyseinen PaaS-palvelu ympäristönluontiskripteihin. Ajettaessa julkaisuskripti sekä ohjelmisto että ympäristö päivittyvät ja uusi ominaisuus on välittömästi käytettävissä.

Se, mihin aikaisemmin saattoi mennä kuukausia ja mikä saattoi vaatia lukuisia sähköposteja, on nyt määriteltävissä tunneissa ja pystytettävissä minuuteissa. Sen lisäksi, että kehitys voidaan aloittaa välittömästi ja ensimmäinen versio on mahdollista julkaista asiakkaan nähtäväksi jo ensimmäisinä päivinä, saadaan myös ympäristön määrittely tuotua sinne, missä se on luonnollisinta, eli kehitysvaiheeseen ja itse kehittäjille. Joskus ei ole helppo etukäteen antaa tarkkoja ympäristövaatimuksia, vaan ne tarkentuvat sovellusprojektin kuluessa.

Pilviympäristöt mahdollistavat helposti myös DevOps -mallisen palveluiden tuottamisen, jossa jatkuvalla integraatiolla ja -toimituksella kavennetaan kehityksen ja tuotantotoimien välistä kuilua ja kehityspanokset saadaan näkymään ketterämmin tuotannossa.

Rajaton globaali laskentateho heti käytettävissä

Koska julkaisuskriptit yksinkertaistavat järjestelmän pystytyksen yhden painikkeen taakse, myös useiden ympäristöjen ylläpitäminen ja uusien luominen helpottuu. Perinteisten dev-, QA- ja tuotantoympäristöjen lisäksi kehittäjä saattaa halutessaan pyöräyttää itselleen uuden tuotantoa vastaavan ympäristön oman tunnuksensa alle ja tehdä kokeiluja, joita ei vielä haluta kehitysversioon. Samalla ympäristöllä asia voidaan demota päättävälle taholle ja ehdottaa sen ottamista käyttöön. Kun ympäristölle ei ole enää tarvetta, se voidaan tuhota. Microsoft tarjoaa esimerkiksi kumppanuusohjelmien ja MSDN-tilausten kautta ilmaista rahaa kehittäjille kuukausittain, mikä on kätevä juuri tällaiseen, eli pilviympäristöön tutustumiseen, asioiden kokeiluun ja arviointiin.

Tästä päästään kätevästi seuraavaan pilviympäristöille ominaiseen piirteeseen: ne tarjoavat maailmanlaajuisesti näennäisesti rajattoman laskentatehon, jota voidaan ottaa käyttöön sitä mukaa kun on tarve. Microsoftin Azure -pilvi käsittää yli 100 datakeskusta ympäri maailman, 22 eri alueelta. Näiden keskusten avulla on mahdollista rakentaa globaaleja, ympäri maailman nopeasti toimivia verkkopalveluita yhtä helposti kuin alueellisia – asia, joka ei olisi mahdollista monenkaan yrityksen omilla resursseilla tai kaupallisilla webhotelleilla.

Verkkopalveluiden luonne resurssien kulutuksen suhteen puoltaa myös monesti käyttämään dynaamisesti skaalautuvia pilvipalveluita. Lanseerattaessa uutta sovellusta, sovelluksen käyttäjämäärät lähtevät nousemaan tavalla, joka harvoin on tarkkaan tiedossa. Jotkut verkkopalvelut saattavat puolestaan olla luonteeltaan sellaisia, että hetkellisesti tarvitaan valtavaa laskentakapasiteettia, mutta suurimman osan ajasta käyttö on hyvinkin vähäistä. Normaalisti resurssit tulisi varata maksimikuormituksen mukaan, mutta pilvi mahdollistaa resurssien fiksumman käytön, ilman että on tarve maksaa ylimääräisestä. Järjestelmä tulee toki osata suunnitella ja rakentaa sillä tavalla, että se on skaalattavissa haluttuihin käyttäjämääriin asti, mutta sen jälkeen se on ainoastaan konfigurointikysymys. Ympäristö voidaan laittaa skaalautumaan ajastetusti tai määriteltyjen metriikoiden, esimerkiksi liikenteen tai CPU-kuormituksen mukaan. Se voidaan tehdä myös ohjelmallisesti: lipunmyyntisovellus voi tunnistaa automaattisesti potentiaaliset ruuhkahetket ja hieman ennen hittibändin odotetun keikan lipunmyynnin aukeamista sovellus skaalaa itsensä vastaamaan arvioitua tarvetta ja taas kuormituksen laskiessa palaa lähtötilanteeseen.

Yhteenveto

Tässä postauksessa pyrin tuomaan esille pilvipalveluiden keskeisimmät piirteet ja miten ne ovat muuttaneet ja tulevat muuttamaan sovelluskehityskenttää tulevaisuudessa. Koska aihe on niin valtava, niin lyhyttäkin katsausta on melko hankala mahduttaa yhteen blogipostaukseen. Tämän johdosta päädyin kirjoittamaan useamman postauksen sarjan, joiden seuraavassa osassa hypätään syvemmälle pilveen ja lähestytään asiaa teknisemmin kysyen miten pilvipalveluita tulisi rakentaa ja mikä on olennaisinta – kehittäjän näkökulmasta. Case esimerkkinä käytetään Microsoft Azurea, joka erityisesti PaaS-palveluihin panostamalla tarjoaa todella kiinnostavan ja kokonaisvaltaisen palveluvalikoiman ohjelmistoyrityksille. Ympäristön, jossa erityisesti Microsoftin teknologiat hallitsevat kumppaniyritykset saavat muutaman askeleen edun pilvipalveluiden kehittämiseen.

Lisää pilvipalveluista

Lue blogisarjan seuraava kirjoitus: Miten rakentaa pilvipalvelu? Pilvimarkkinoiden kolme jättiä.

Juha Hankkila

KIRJOITTANUT

Juha Hankkila

Software Architect

Juha Hankkila on Eatechin todellinen Windows guru ja koodauspuolen virtuoosi. Juhaa voisi luonnehtia pelinrakentajaksi ja hankalienkin paikkojen ratkaisijaksi, sillä tämä kaveri ratkaisee ongelman kuin ongelman.

Juha Hankkila