Ohjelmien kontitus ja sen hyödyt
Ohjelmien tai palveluiden ’kontittamisella’ tarkoitetaan tapaa, jossa yksi palvelinkone virtualisoidaan moneksi pieneksi, kevyeksi ja itsenäiseksi järjestelmäksi. Järjestelmät ylläpitävät yleensä yhtä tiettyä palvelua tai ohjelmaa. Sana kontittaminen tulee englannin kielen termistä ’containerization’.
Kontituksen merkittävimpänä luojana pidetään ohjelmaa nimeltä Docker. Ohjelma mahdollistaa käytettävän tietokoneen resurssien jakamisen itsenäisiin ’containereihin’ eli kontteihin. Kontit eivät ole välttämättä riippuvaisia toisistaan, jolloin yhden kontin sammuminen tai ’kaatuminen’ ei estäisi suuremman kokonaisuuden käyttöä. Lisäksi sammumisen ja kaatumisen ehkäisemiseksi on luotu ominaisuuksia Dockeriin, jotka kontin sammuessa tai kaatuessa käynnistävät uuden identtisen kontin kaatunen tilalle. Näin ohjelmien käytössä ei huomaa katkoa. Kontteja on erittäin nopea käynnistää, kloonata ja sammuttaa.
Kontitus tuo myös muita etuja. Yksi niistä on periaate, että jos kontti toimii sinulla, toimii se myös muilla, riippumatta käyttöjärjestelmästä tai esiasennetuista ohjelmista ja työkaluista. Konteissa liikutellaan kokonaisuuksia, ei vain pieniä koodimuutoksia. Ainoana vaatimuksena on mahdollisuus asentaa Docker -ohjelma laitteelle, jonka jälkeen voit jakaa konttisi muiden käyttäjien tai asiakkaiden kesken. Etuna tässä menetelmässä on erittäin nopea ohjelman ja sen päivitysten julkaisutahti (Time To Market). Kontti itsessään sisältää ohjelman ja sen tarvitsemat muut asennukset. Jos ohjelmapäivitys meneekin pieleen, on aikaisempi versio nopea palauttaa käyttöön.
Toisena etuna on sen skaalautuvuus. Dockeriin on luotu lisäosa nimeltä ’Swarm’. Tämä mahdollistaa tekniikan nimeltä ’load-balancing’. Se tarkoittaa teoriassa sitä, että jos kontti on pienellä käytöllä, ei se saisi turhaan viedä ylimääräisiä resursseja. Päinvastoin, kun taas kontilla on ruuhka, ei se saisi hidastua ja palvella heikosti. Docker Swarm mahdollistaa klooni konttien luomisen automaattisesti tarpeen vaatiessa. Kun ruuhka-aika koittaa kontille, luo Docker Swarm lisää klooneja alkuperäisestä kontista, jotka jokainen voivat palvella samalla tavalla kuin alkuperäinen kontti. Docker osaa jakaa tulevat pyynnöt tasaisesti uusille kloonatuille konteille, jolloin käyttökokemus pysyy sulavana suurellakin käyttäjämäärällä. Kun ruuhka-aika loppuu, sammuttaa Docker ylimääräiset kontit, jolloin vain alkuperäinen on taas palvelemassa ja ylimääräisiä resursseja ei kulu hukkaan.
Kontitus ja lähinnä Docker ovat erittäin suosittu tapa tarjota palveluita yritysmaailmassa. Amazon ja Google ovat yksiä suurimmista kontituksen tarjoajista.
Niko Rudnäs, SeAMK Tekniikka