Konttiteknologiat tuovat rahtikonttien hyödyt IT-ympäristöihin

Konttiteknologiat ovat sovellusten käsittelyyn luotuja standardoituja ympäristöjä, joissa sovellusten osia voidaan ajaa, ylläpitää, kehittää ja siirrellä omina yksiköinään. Kontit toimivat siis käytännössä rekoilla ja rahtilaivoilla kuljetettavien rahtikonttien tavoin – tiettyä sisältöä saadaan siirreltyä ympäriinsä kätevästi ilman tarvetta purkaa konttia eri vaiheissa. 

Konttiteknologioista on tullut viimeisen kymmenen vuoden aikana arkipäiväinen ratkaisu ohjelmistokehityksessä. Konttien avulla sovelluksia voidaan päivittää ja käsitellä nopeasti, suhteellisen vähällä vaivalla ja aiheuttamatta ylimääräisiä ja työtä viivästyttäviä huoltokatkoja. 

Konttiteknologioita sekä niiden hallintaan tarvittavia orkestrointijärjestelmiä on useita erilaisia, ja niitä hyödynnetään eri tavoin yrityksen tarpeiden mukaan. Tässä blogitekstissä perehdytään konttiteknologioihin ja orkestrointityökaluihin sekä tarkastellaan, millaisia hyötyjä ne tuovat tekniikan ohella myös liiketoimintaan. 

Kätevä paketointitapa

Nykypäivän ohjelmistokehityksessä palveluiden paketoiminen kontteihin on hyvin yleinen ja työtä helpottava käytäntö. Konttiin pakattua sovellusta tai sen osaa voidaan ylläpitää ja sen voi käynnistää tai sulkea omana, erillisenä yksikkönään. Kokonainen ohjelmisto voi siis pyöriä yksittäisenä konttina tai koostua useisiin kontteihin jaetuista osista. 

Ohjelman asettaminen standardoituun konttiin mahdollistaa sen siirtämisen esimerkiksi testiympäristöön tai vaikkapa jonkin palveluntarjoajan pilveen ennen tuotantoa. Kontilla voi toki olla joitakin riippuvuuksia ulkopuolisiin tietokantoihin tai levyjärjestelmiin, mutta lähtökohtaisesti kontti siis sisältää kaiken, mitä sovellus tarvitsee toimiakseen. Esimerkiksi ohjelmistoissa usein nähtävät versiot 1.0, 2.0 ja niin edelleen ovat kaikki saman kontin eri versioita.

Perinteisesti sovellusten asentaminen ja päivittäminen on tehty niin, että tietokoneiden virtuaalipalvelimille asennetaan yleensä joukko sovelluksia niille sopiviin ajoympäristöihin yksi kerrallaan. Virtuaalipalvelimet sisältävät kontteihin verrattuna runsaasti sovelluksen kannalta ylimääräistä dataa, mikä tekee sovelluksen siirtelystä ja käsittelystä työlästä sekä aikaa vievää. Perinteisessä hostingissa tulee säännöllisesti eteen myös käyttöjärjestelmälle kriittisten kirjastojen päivityksiä, jotka saattavat aiheuttaa yllättäviä huoltokatkoja. Katkon aikana kirjaston vanha versio täytyy poistaa ja korvata uudella, ja koko tämän ajan palvelut ovat alhaalla. 

Konttiteknologiassa kaikkien sovellusten käyttöönotto onnistuu yhdellä kertaa, ja niitä voidaan esimerkiksi päivittää ja testata virtuaalipalvelimia suorituskykyisemmin ja nopeammin. Kun kontti korvataan riippuvuuksineen kaikkineen, kaikki palveluun kuuluvat osat saadaan liitettyä paikalleen kerralla aiemman version pyöriessä käyttöönottoon asti.

Kontit vähentävät myös tietoturvapäivitysten riskejä. Kontti voidaan käynnistää sellaisenaan vaikkapa omalla koneellaan kehitys- tai testiympäristössä ennen varsinaista käyttöönottoa. Käyttöjärjestelmien, sovellusten versioiden sekä tietoturvaominaisuuksien päivittäminen on siis konttiteknologian avulla huomattavasti turvallisempaa, koska niitä sovelluksia tai niiden osia voidaan testata identtisinä eri ympäristöissä. 

Orkestrointityökalut mahdollistavat konttien monipuolisen hallinnan

Kontti itsessään ei kuitenkaan vielä tee muuta kuin sisältää ohjelman ja käynnistää sen. Sen vuoksi konttien hallinta edellyttää orkestrointityökaluja, joilla kontteja voidaan käsitellä. 

Orkestrointijärjestelmät toimivat alustana konteille. Niiden avulla pystytään pyörittämään useita kontteja rinnakkain, päivitysten tekeminen onnistuu turvallisesti ja konttien elinkaarta voidaan hallita kokonaisvaltaisesti. Esimerkiksi sovellusta päivitettäessä juuri orkestrointijärjestelmän avulla voidaan ylläpitää vanhan sovelluksen pyörittämistä, kunnes uusi sovellusversio on käynnissä ja valmiina palvelemaan omana konttinaan. 

Jumiutuneiden sovellusten korjaaminen on perinteisessä hostingissa yleensä haasteellista ja aikaa vievää puuhaa. Monet orkestrointivälineet mahdollistavat useiden tällaisten vikatilanteiden automaattisen hallinnan. Jos sovelluksen todetaan esimerkiksi jääneen jumiin jostain syystä, järjestelmä sammuttaa viallisen kontin automaattisesti ja ohjaa liikenteen toiselle rinnakkaiselle, välittömästi käynnistyvälle kontille. Näin vältytään resursseja kuluttavalta ongelman tunnistamiselta ja ratkaisun pähkäilyltä.

Työkalut sovelluksen koon ja ominaisuuksien mukaan

Suurta osaa orkestrointijärjestelmistä ylläpidetään suurten pilvipalveluntarjoajien, kuten Googlen, Amazonin tai Microsoftin kautta. Joitakin orkestrointityökaluja taas pyöritetään ns. on-premises eli yrityksen oman konesalin tietokoneissa.  Yleisesti ottaen pilvipalveluiden kautta pyöriviä orkestrointityökaluja on vaivattomampi käyttää, sillä niiden tekninen ylläpito tulee palveluntarjoajan puolelta. 

Metatavulla on käytössä pilven kautta pyörivä Kubernetes-orkestrointijärjestelmä, joka on monipuolinen ja sopivan järeä työkalu monien eri kokoluokkien sovelluksiin. Kubernetes on avoimen lähdekoodin ratkaisu, ja se tarjoaa laajat hyödyntämismahdollisuudet ja skaalautuvuuden yksilöllisen käyttötarkoituksen mukaan. 

Orkestrointijärjestelmä voidaan halutessa optimoida ominaisuuksiltaan tarkasti tietyn pilvipalvelun edellytysten mukaiseksi. Vaihtoehtoisesti sitä voidaan käyttää oletusominaisuuksiensa kaltaisena, sujuvasti siirreltäväksi ympäristönä, jonka voi vaihtaa pilvestä toiseen tai vaikkapa yrityksen omaan ympäristöön. 

On olemassa myös pienemmän mittakaavan orkestrointityökaluja, jotka soveltuvat kevyempien konttisovellusten käsittelyyn. Yksi tällaisista on Docker-ohjelmistoon sisäänrakennettu orkestrointijärjestelmä Swarm, joka on ominaisuuksiltaan huomattavasti yksinkertaisempi Kubernetesiin verrattuna. Toisaalta myös sen perustamis- ja ylläpitokustannukset ovat hyvin pieniä, ja lisäksi sen pystytys onnistuu huomattavasti nopeammin. Pienemmän mittakaavan operaatioissa Docker Swarmin kaltaiset yksinkertaisemmat orkestrointijärjestelmät ovat siis käytännöllisiä, luotettavia ja nykyisin myös hyvin suosittuja. 

Konttiteknologiat tarjoavat myös olennaisia liiketoiminnallisia hyötyjä

  • Suorituskyvyn ja toiminnan monitorointi

Konttiteknologioiden hyödyntäminen edistää teknisten etujen lisäksi myös yrityksen bisnespuolta. Yksi selkeä liiketoiminnallinen hyöty konttiteknologioissa on, että niiden avulla yritykset voivat ylläpitää kohtalaisen vähällä vaivalla high available -palveluita, jotka eivät ole koskaan sammuksissa ja vieläpä korjaavat itse itseään. 

Kun ohjelmistoja päivitetään perinteiseen tapaan, vaikkapa satojen työntekijöiden yrityksessä valtaosa ei pysty tekemään huoltokatkojen aikana töitään. Tämä luonnollisesti lisää kustannuksia. Palvelun vikasietoisuus paranee ja luotettavuus kasvaa, kun ohjelmistot monitoroivat itse suorituskykyään ja orkestrointijärjestelmä voi tarvittaessa käynnistää uuden koneen ongelman ilmetessä. 

Myös useiden kopioiden yhtäaikainen hallinnointi edesauttaa tarjottavaa palvelua. Koska järjestelmässä on helppo määrittää vaikkapa 100 sovelluksen yhtäaikainen käyttöönotto, sen avulla pystytään palvelemaan suurta asiakasjoukkoa yhtä aikaa.

  • Autoskaalaus

Yritysten palvelimilla on yleensä eniten liikennettä aamusta iltapäivään, kun ihmiset ovat töissä. Perinteisesti ohjelmistot on skaalattu korkean käyttömäärän mukaan, mikä taas tarkoittaa hukkatehoa liikenteen ollessa vähäistä. Kubernetes ja vastaavat raskaamman kokoluokan orkestrointijärjestelmät ovat usein myös autoskaalaavia. Hostauspalvelu pystyy siis ottamaan käyttöönsä tarvittavan määrän koneita käyttöpiikin ajalle ja lopettamaan niiden käytön ruuhkaisimman ajan jälkeen. 

Eräs erinomainen käyttöpiikistä on verkkokauppojen erikoiskampanjat. Kun vaikkapa Black Fridayn tai uuden PlayStationin julkaisun aikaan verkkosivustolle tulee normaaliin päivään verrattuna vaikkapa tuhatkertainen kävijämäärä yhdellä kertaa, varautumaton sivusto jumiutuu lähes väistämättä. Toisaalta myös muutamaa tällaista päivää varten varautuminen koko vuoden ajaksi on kallista. Konttiteknologian avulla palvelu voidaan skaalata reagoimaan automaattisesti kävijäpiikkiin, eikä sivusto kaadu ja kauppa tyrehdy teknologisiin ongelmiin.

  • Toimittajalukottomuus

Liiketoimintaan liittyvä etu konttiteknologioissa on lisäksi ns. vendor lockin eli toimittajalukon välttäminen. Toimittajalukko tarkoittaa, että asiakkaat ovat riippuvaisia palveluntarjoajan palvelusta, eivätkä siis pääse yhteistyöstä halutessaan eroon. Skaalaavia teknologioita on useita muitakin, ja joidenkin asettamat tiukat ehdot saattavat tehdä esimerkiksi järjestelmän siirtämisestä paikasta toiseen hyvin haastavaa. 

Avoimen lähdekoodin konttiteknologiaratkaisu antaa liikuteltavuudellaan käyttäjälleen mahdollisuuden vaihtaa palveluntarjoajaa niin halutessaan. Toimittajalukottomuus on siis selkeä liiketoiminnan etu: on tärkeää, että yritykset eivät tunne olevansa pakotettuja yhteistyöhön vaan haluavat itse tehdä töitä yhdessä kumppaninsa kanssa.