Konteista on puhuttu viime vuosina kiihtyvään tahtiin. Vaikuttaa siltä, että ne ovat tehneet lopullisen läpimurron liiketoimintasovellusten ajoalustana: Gartnerin ennustuksen mukaan vuoteen 2024 mennessä niiden osuus tulisi olemaan jopa 75%.
Konteilla (engl. container) tarkoitetaan teknologiaa, jolla sovellukset ja niiden ajamiseksi tarvittavat riippuvuudet, kuten konfiguraatiotiedostot ja kirjastot, paketoidaan yhteen. Tällä tavalla paketoidut työkuormat eli kontit voidaan kevyesti ja nopeasti käynnistää, monistaa tai siirtää ilman, että sovelluksen tarvitsee välittää ajoalustana toimivasta palvelimesta tai sen käyttöjärjestelmästä. Lisäksi niiden avulla voidaan hyödyntää resursseja tehokkaammin, koska yhden käyttöjärjestelmän päällä voidaan ajaa useita kontteja.
Kontitettu sovellus siis vapauttaa ohjelmistokehittäjän infrastruktuurin hallintaan liittyvistä kysymyksistä, jolloin hän voi keskittyä sovellukseensa. Pilvessä ajettavaksi suunniteltu eli pilvinatiivi sovellus onkin tavallisesti kontitettu, usein mikropalveluarkkitehtuurin mukainen sovellus. Tällaisen sovelluksen ohjelmistokehitys on nopeampaa sekä suorituskyvyn skaalaaminen ja vikasietoisuuden toteuttaminen on huomattavasti helpompaa kuin perinteisen, monoliittisen sovelluksen.
Perinteisen monoliittisenkin sovelluksen voi paketoida kontiksi, jolloin sen hallinnointi helpottuu, mutta mitään taikavoimia tämä ei tuo: se ei vielä tee sovelluksesta skaalautuvaa tai vikasietoista.
Nykyaikaisessa IT-infran hallinnassa pyritään automaatioon, manuaaliseen työhön liittyvien kustannuksien, viiveiden ja inhimillisten virheiden vähentämiseksi. Usein puhutaan ohjelmisto-ohjatusta infrastruktuurista (infrastructure as code), jossa infrastruktuuri toteutetaan uudelleenkäytettävillä määrityksillä manuaalisen asennustyön sijaan, ja sitä ohjataan koodilla ohjelmointirajapintojen kautta.
Jotta allaolevan infran päällä voidaan ajaa ja hallinnoida konttiympäristöä ilman manuaalityötä, tyypillisesti käytetään orkestraattoria. Johtava ratkaisu tähän on Kubernetes (usein lyhennetään K8s), joka on Googlen kehittämä, avoimen lähdekoodin ratkaisu. Kubernetes automatisoi konttien tuotantoonoton sekä ympäristön hallinnoinnin ja skaalaamisen.
Julkisessa pilvessä on tarjolla myös erilaisia PaaS/serverless-tyyppisiä ajoalustoja konttisovelluksille, jotka sisältävät sekä palvelininfrastruktuurin että konttien orkestroinnin. Kehitettäessä sovelluksia näiden päälle on syytä kiinnittää huomiota siihen, ettei lukitse itseään yhteen toimittajaan. Kustannuksia on julkisen pilven monimutkaisilla hinnoittelumalleilla vaikea ennustaa, ja jos ne karkaavat käsistä, muualle siirtyminen on hankalaa.
Koska Kubernetesia voi käyttää julki- ja yksityisten pilvessä lisäksi omalla palvelinraudalla, erilaisten monipilvi- ja hybridiratkaisujen rakentaminen onnistuu huomattavasti joustavammin. On esimerkiksi mahdollista tehdä pyörittää kehitysympäristöä julkipilvessä ja tuotantoa yksityisessä pilvessä. Tällä tavoin saadaan huomattavan paljon vapauksia esimerkiksi kustannusten, suorituskyvyn ja tietoturvan hallintaan.
Koska Kubernetes-ympäristö on kohtalaisen raskas pystyttää, tyypillisesti sitä ei tehdä itse vaan käytetään valmisratkaisua tai hallittua palvelua, jonka saa käytännössä kaikilta pilvitarjoajilta. Hallitun palvelun etuna on se, että ympäristöä ei tarvitse pystyttää tai ylläpitää itse, mutta ratkaisu on silti täysin yhteensopiva ja pilviriippumaton.
Mekin tarjoamme konttien orkestrointia palveluna, sisältäen Kubernetes-ympäristön nykyaikaisella hallintakäyttöliittymällä, osaavan tiimimme tukemana. Lisäksi hinnoittelumme on helposti ymmärrettävä ja ennustettava. Ota yhteyttä, jos suunnittelet kontitusta!
Blogin on kirjoittanut Magic Cloudin tekninen johtaja Jarkko Kovala, joka rakentaa tiiminsä kanssa asiakaskokemukseltaan ylivertaista pilvipalvelua.