Build 2021 -uutuus: Azuren sovelluspalvelut kaikkialla

Microsoftin Build 2021 -konferenssi toi koko joukon merkittäviä uudistuksia Azure-pilvipalveluihin. Yksi meille tärkeimmistä oli sovelluspalveluiden – siis käytännössä PaaS-hostauksen – saattaminen Azure Arcin piiriin. Jatkossa Azuren PaaS-palveluita voi ottaa käyttöön myös Azuren ulkopuolella, yhdistäen Kubernetes-alustan universaalin joustavuuden ja korkeatasoisen PaaS-alustan tuottavuuden. Pohdit sitten työksesi web-sovelluksia, integraatiotyönkulkuja tai serverless-arkkitehtuureja, tämä uudistus voi keikuttaa maailmaasi.

Olimme syksystä 2020 alkaen mukana Microsoftin esiversio-ohjelmassa, jossa yhdessä Azure-tuoteryhmän kanssa testasimme, kehitimme ja ratkoimme ongelmia hybridipilven terävimmällä reunalla. Pilottiasiakkaamme halusi mahdollistaa keskitetyn Azure-vetoisen hallinnan integraatioilleen, joiden ajoympäristöt on kuitenkin hajautettu. Tässä työväline oli siis ensisijaisesti Logic Apps, mutta Arcin laajennus tarjoaa paljon mahdollisuuksia muuhunkin PaaS-kehitykseen.

Lue lisää: Case Fortum ja Logic Apps Azure Arcin päällä

Tämä teknologia on vielä tuoretta, ja kaikkiin projekteihin nyt julkaistu esikatseluversio ei sovi. Tässä blogipostauksessa avaamme perusteet Azure Arc -pohjaisesta hybridisovelluskehityksestä. Jatkamme Azure Arc -teknologian käyttöä ja seurantaa – ja raportoimme tietysti kiinnostavimmista käänteistä blogissamme ja uutiskirjeessämme.

Moniympäristökehityksen kaari

Julkaisun ytimessä on siis laajennus Azure Arciin. Mutta mikä se ylipäätään on? Tavallaan Arc ei edes ole varsinainen palvelu, vaan välikappale, joka mahdollistaa Azuren hallintatyökalujen ulottamisen muualla kuin Azuressa ajettaviin resursseihin. Arcilla on ikää pari vuotta, mutta tuotantovalmius on melko tuoretta. Tähän asti Arc on tarjonnut neljä erilaista palvelua:

Kun Arc ensimmäisen kerran lanseerattiin 2019, kävi selväksi, että palvelun piiriin tulee vähitellen lisää palveluita. Build 2021:n suuri uudistus onkin merkityksellinen nimenomaan kehittäjäyleisölle: sovelluspalvelut Azure Arcin päällä.

PaaS <3 Kubernetes?

Julkaisussa on oikeastaan kyse kahden trendin kohtaamisesta:

Yhdellä puolen kehää on varsinkin suurempien organisaatioiden tarve tuottaa hallittuja, monistettavia ja alustariippumattomia ajoympäristöjä, mihin käyttöön yhä useammin päädytään pystyttämään Kubernetes-klustereita – ovat ne sitten paikallisessa konesalissa tai jossain pilvessä. Vastakkaisessa nurkassa taas Kuberneteksen käyttöönotto vaatii huomattavaa panostusta opiskeluun, eikä käyttökokemus ole esimerkiksi Azuren App Serviceen tottuneiden kehittäjien kannalta kovinkaan kepeä. Kehittäjien näkökulmasta sovellusten paketointi konttimuotoon ja Kubernetes-hallinnan opiskelu ei välttämättä ole se kaikkein kiinnostavin tai tärkein haaste, jolloin IT:n hallinnantarve voi tuntua kohtuuttomankin raskaana.

Azure Arc enabled Application Platform tarjoaa mahdollisuuden viedä keskeisimpiä Azuren PaaS-palveluita mille tahansa tuetulle Kubernetes-alustalle niin, että itse Kubernetes jää taustalle näkymättömiin. Ratkaisu on siis ollut rajoitetussa testissä syksystä 2020 alkaen, ja nyt Buildin myötä kaikkien julkisesti testattavissa. Build-vaiheessa asennettavissa olevat palvelut ovat Web Appit, Functionit, Logic Appit, Event Grid ja Azure API Managementin gateway.

Arc-idyllissä kehittäjän ei tarvitse miettiä, miten Kubernetes-klusterit toimivat. Kunhan palikat on kerran konfiguroitu paikoilleen, uusi ajoympäristö näyttäytyy vain perinteisinä Azure-resursseina: esimerkiksi App Service Planina, johon voi asentaa sovelluksia ajettavaksi. Kaikki hallintatoiminnot perustuvat normaaleihin Azure Resource Managerin rajapintoihin, ja siten Azuresta tutut hallintaratkaisut ovat pienin poikkeuksin edelleen käytössä – ovat ne sitten skriptejä, ARM-templateja, valmistyökaluja tai Power BI -raportteja.

Puoliksi Azuressa

Arc-hallitut palvelut ovat yhdistelmä julkista pilveä ja yksityisesti hallittuja resursseja. Toisaalta Azure-hallinta mahdollistaa tiettyjä toimintoja keskitetysti, toisaalta palvelut kuitenkin pyörivät tarkkaan määritellyissä omissa ympäristöissä ja omilla resursseillaan. Mitä tämä tarkoittaa käytännössä?

Voisit esimerkiksi ottaa Amazonin pilvestä käyttöösi Kubernetes-klusterin, liittää sen Arc-hallintaan sekä asentaa sinne SQL Serverin ja App Servicellä pyörivän Web Appin. Tämä Web App nojaisi täysin Azuren App Service -infrastruktuuriin automaattisine päivityksineen ja Azure-hallintavälineineen – se seikka, että sovellus pyörii AWS:ssä, ei välttämättä näkyisi hallintakokemuksessa mitenkään. Sama koskee tietokantaa: sovellus voi kirjoittaa dataa pilveen, ja Arc-hallittu SQL Server Managed Instance huolehtii itsestään aivan kuin Azuressa pyörivä kollegansa.

Tempun voi tietenkin toistaa muissakin pilvissä ja paikallisessa konesalissa. Ratkaisusta voi kuitenkin olla hyötyä Azuressakin. Esimerkiksi tietoturvamielessä sensitiivinen sovellus halutaan mahdollisesti eristää täysin omaan tietoverkkoonsa. Tämän voi tehdä esimerkiksi perustamalla Azure Kubernetes Servicellä (AKS) oman Kubernetes-ympäristön sovellukselle ja liittämällä sen tiukasti rajattuun virtuaaliverkkoon. Arc-hallinta mahdollistaa sen, että samaan klusteriin voi asentaa myös esimerkiksi API Managementin Gatewayn suojaamaan sovelluksen rajapintaliikennettä – tai Logic Apps -työnkulut huolehtimaan sovelluksen integraatioista. Kubernetes-klusterin käyttäminen tähän ei toki ole välttämätöntä, mutta selkeästi kustannustehokkaampaa kuin esimerkiksi Integration Service Environmentin käyttäminen.

Tärkeintä kuitenkin on, että kun infrastruktuuritarpeet on kartoitettu ja haasteet ratkaistu, loput sovelluselinkaaresta sujuu ennustettavasti. Tämä Arcin lupaus onkin: Kun ympäristökonfiguraatio on kerran tehty valmiiksi, Arc-hallitut ympäristöt ovat vain uusia ajoalustoja, joihin sovellukset asennetaan kuten perinteiseen Azureenkin. Esimerkiksi Azure DevOpsin käännös- ja asennusskriptaus toimii samalla tavalla, onko kohteena tavanomainen Azuren App Service Plan tai vaikkapa Google-pilvessä köllöttelevä klusteri.

Idylli ei ole ihan vielä täällä

Kubernetes-pohjainen hybridiratkaisu voi olla paikallaan monissa tarkkaa hallintaa vaativissa olosuhteissa, mutta aivan joka tilanteeseen se ei ainakaan vielä sovi. Arc-hallinta ei myöskään poista vastuuta oman Kubernetes-klusterin operoinnista. Vaikka sovellukest asentuisivat miten helposti, esimerkiksi Kuberneteksen versiopäivitykset ja klusterin skaalaaminen eivät käy pilven helppoudella, jos ympäristö onkin todellisuudessa paikallisessa konesalissa. Arc-ratkaisun käyttöönotossa on siis hyvä miettiä organisaation osaamispalettia ja ylläpitokäytäntöjä laajemminkin.

Liiketoiminnallisissa olosuhteissa esiintyy myös erityistarpeita, joita preview-versio ei tällä hetkellä huomioi. Esimerkiksi Logic Apps kyllä toimii eri ajoalustoilla, mutta vaatii reaaliaikaisen yhteyden Azureen. Jos hybridipilvistrategian keskeisenä tavoitteena on pyrkimys varmistaa palveluiden toimivuus myös verkkokatkojen aikana, on ongelma ilmeinen. Toisaalta tuoteryhmäkin tietää tämän, ja kehitystyötä on luvassa.

Vähän on vieläkin pakko opetella Kubernetesta.

Kolmanneksi on vielä hyvä mainita, että juuri päivänvaloon päässyt esiversio vaatii vielä erityisosaamista ja tutkiskelua. Tuettujen ympäristöjen lista ei välttämättä kata juuri sinun tilannettasi, ja käyttöönotto saattaa vaatia Kubernetes-taitojen lisäksi myös melkoisen määrän Arc-taikuuksien opettelua. Vaikka Microsoftin ohjemateriaalit auttavat hyvään alkuun, on tärkeä muistaa myös vastuullisen ylläpidon vaatimukset: tuotantoon vasta sitten, kun valmisteltuna on myös jonkinlainen virheenselvitysosaaminen.

Keskeneräisyydestään ja preview-statuksestaan huolimatta Arc-perheen kuopus on kuitenkin käyttökelpoinen, ja nykyiset haasteet ratkeavat ajan myötä vähitellen. Azure Arc kokonaisuutena elää vahvaa nousukautta, ja kehitys on jatkuvaa. Monimutkaiset hajautetut järjestelmähankkeet ottavat joka tapauksessa aikansa, joten nyt on hyvä hetki käynnistää suunnittelutyö. Käyttöönottoa voi sitten harkita tulevina kvartaaleina, riippuen omista valmiuksista sekä sietokyvystä teknisen tutkimustyön ja esiversioiden käytön suhteen.

Lisätietoa

Kiinnostaako, mitä Fortum teki Arcin ja Logic Appsin kanssa? Lue asiakastarinamme!

Microsoftin julkaisublogikirjoitus Bringing Azure application services to Kubernetes with Azure Arc ja preview-version dokumentaatio

Haluatko jutella lisää hybridipilveen pohjautuvasta sovelluskehityksestä? Ota yhteyttä!