Docker mullistaa sovelluskehityksen kuin merikontit rahdin

Docker mullistaa sovelluskehityksen kuin merikontit rahdin

Docker on yksi viime vuosien kiinnostavimmista uusista tekniikoista sovelluskehityksessä. Planeetta Internetin asiantuntija Lupu Pitkänen kertoo, miten otat Docker-konttiteknologian haltuun.

Kirjoitan tätä Silja Serenadelta matkalla kohti Tukholmaa. Hytin ikkunasta siintävät rahtilaivat kontteineen saivat pohtimaan viimeaikojen kuuminta muotisanaa – Dockeria.

Puhetta riittää, mutta kenellä Docker on jo oikeasti tuotantokäytössä? Ei ehkä vielä kovinkaan monella, mutta nyt on aika siirtyä sanoista tekoihin.

Mikä on Docker?

Standardoidut kuljetuskontit mullistivat rahtiliikenteen. Ne ovat helposti käsiteltäviä, pinottavia sekä siirrettäviä laivasta toiseen. Lähettäjä voi luottaa lastin saapuvan ajallaan ehjänä perille ja logistiikkaketjun ei tarvitse välittää konttien sisällöstä. Tästä on kyse myös Docker-sovelluskonteissa (application containers). Alustan (laiva) ja sovelluksen (rahti) välinen suhde on mahdollisimman riippumaton ja ennustettava.

Perinteisesti sovelluskehittäjä on ilmoittanut ylläpidolle tai palveluntarjoajalle tarvitsevansa esimerkiksi MySQL-tietokannan sekä halutun PHP-version. Tuotannon kynnyksellä käy kuitenkin ilmi, että MySQL:n asetukset tai PHP:n moduulit eroavat kehitys- ja tuotantoympäristöjen välillä. Seuraa turhaa kitkaa ja sormella osoittelua, kun sovellus ei toimikaan heti odotetusti.

Docker paketoi sovelluksen ja sen tarvitseman sovellusalustan, kuten PHP, Node.js, tms. standardilla tavalla, ajaa niitä kevyissä konteissa eli käyttöjärjestelmätason virtuaalipalvelimissa (container virtualization) sekä linkittää kontit keskenään.

Kehittäjä voi olla varma, että kehitysympäristössä toimiva sovellus toimii myös tuotannossa. Myös jatkuva toimitus (continuous delivery) helpottuu. Puhutaan myös ketteristä mikropalveluista (microservices), kun sovellus koostuu lukuisista pienistä verkottuneista sovelluksista.

Docker haltuun harjoituksen avulla

Jos Docker ei ole vielä tuttu käytännössä, suosittelen ottamaan sen kerralla haltuun Docker Birthday #3 -harjoituksen avulla. Harjoitus tehtiin alun perin maaliskuussa osana Dockerin 3-vuotissyntymäpäiväjuhlia tapahtumissa ympäri maailmaa. Olimme mukana tapahtumissa Tampereella ja Helsingissä.

Harjoituksessa pystytetään henkilökohtainen Docker-kehitysympäristö sekä opitaan tarvittavat peruskäsitteet ja komennot. Konkreettisena lopputuloksena harjoituksessa ajetaan useasta komponentista koostuvaa edistyneempää esimerkkisovellusta Dockerilla.

Docker-kontit pilvialustalle

Entä jos sovellus pitäisi laittaa ihan oikeasti tuotantoon? Voit toki hankkia virtuaalikoneen IaaS-pilvipalvelusta, asentaa Dockerin siihen ja laittaa sovelluksen ajoon. Paljon ylimääräistä vaivaa tosin ja yksi kerros lisää ylläpidettäväksi. Virtuaalikone virtuaalipalvelimia varten ei sekään kuulosta optimiratkaisulta.

Parempi vaihtoehto onkin tiputtaa kontit valmiin PaaS (Platform as a Service) tai Dockerin tapauksessa pikemminkin CaaS (Container as a Service) -alustan päälle.

Jelastic-pilvialusta Suomesta 

Jelastic on useiden kymmenien palveluntarjoajien eri maissa tuottama pilvialusta, joka tukee luonnollisesti Dockeria. Suomessa alustan tarjoaa konesalistaan Planeetta Internet. Docker-sovelluksen sijoittaminen Jelastic-pilveemme varmistaa siis datan pysymisen Suomen rajojen sisäpuolella.

Docker-tuen lisäksi Jelasticin etuja ovat muun muassa reaaliaikaisesti sovelluksen käytön mukaan tapahtuva skaalautuvuus, helppokäyttöinen hallintapaneeli sekä tietenkin tarjoamamme suomenkielinen asiakaspalvelu.

Jelasticissa Docker-kontit ajetaan myös eristetympien ja tietoturvallisempien Virtuozzo-konttien sisällä. Me täällä Planeetalla olemme hyödyntäneet kaupallista Virtuozzo-alustaa virtuaalipalvelinten tuottamisessa jo vuodesta 2003 asti. Kontit eivät ole siis tekniikkana kovin uusi asia, vaikka niistä on alettu puhumaan vasta Dockerin yhteydessä.

Teoriasta käytäntöön

Mainitsemani harjoitus on loistava johdanto Docker-teknologiaan käytännön kautta. Harjoituksen jälkeen kannattaa kokeilla miten helppoa on tiputtaa sovellus Jelastic-pilvialustalle. Näin pääset toteamaan käytännössä CaaS-palvelun hyödyt ja nopeuden.

Lue tästä seuraava artikkelini Näin lastaat Docker-kontit pilveen. Opastan siinä videoiden avulla Docker-harjoituksen esimerkkisovelluksen käyttöönoton Jelastic-alustalla.