Dockerin kehityksen tahdissa on välillä haastavaa pysyä mukana. Viime viikolla tehty julkistus oli sen verran iso, että ajattelin kirjoittaa siitä lyhyesti suomeksi.
Aiemmin Docker on ollut yksi monoliittinen Linux-sovellus, joka on hoitanut konttien virtualisointia ja hallintaa. Sen ympärillä on ollut joitakin muita projekteja kuten Fig ja Boot2docker.
Uudessa mallissa Docker ja sen apuprojektit jakaantuvat neljään osaan:
- Docker Engine
- Perinteinen Docker-virtuaaliympäristö, joka ajaa kontteja yksittäisessä Linux-palvelimessa (tai kehittäjän omalla läppärillä). Kontit ovat paketoituja Linux-binäärisovelluksia, jotka sisältävät kaikki ajamisessaan tarvittavat riippuvuudet.
- Docker Machine
- Apuväline, joka käynnistää Docker Enginejä pyörimään esimerkiksi Digital Oceanin pilvipalvelimille tai omalle tietokoneelle kehityskäyttöä varten. Tukee jatkossa myös Amazonin AWS:ää ja muita pilviä. Omalla Mac/Windows-koneella käytetään alustana edelleen Boot2dockeria, mutta Docker Machine asentaa sen automaattisesti.
- Docker Swarm
- Klusterointityökalu, joka ohjaa joukkoa Docker Engine-palvelimia. Palvelimet voi käynnistää Docker Machinella ja lisätä sitten hallittavaksi Docker Swarmiin. Swarmin rajapinnan on tarkoitus olla sama kuin Docker Enginessä, jolloin koko klusteri näyttää yhdeltä isolta Docker-palvelimelta. Kontit ripotellaan automaattisesti ympäri klusteria halutun strategian mukaisesti.
- Docker Compose
- Figin kaltainen hallintaväline, joka lukee konfiguraation YAML-tiedostosta ja käynnistää kontit pyörimään Docker Engineen. Ideana on, että sovellukset saa aina käyntiin yksinkertaisella "docker up" -komennolla kaikkine riippuvuuksineen. Tulee tukemaan myös klusteroituja sovelluksia Docker Swarmin avulla.
Itse uskon viimeaikaisesta kritiikistä huolimatta yhä Dockeriin ja mielestäni tämä uusi jako on järkevä. Dockerin filosofiaan on alusta asti kuulunut käytännönläheisyys ja käyttömukavuus. Ne näyttävät toteutuvan edelleen eikä muissa kilpailevissa projekteissa välttämättä ymmärretä samalla tavalla niiden päälle.
Toisaalta Docker on sortunut huonoihinkin ratkaisuihin esimerkiksi omien image registryjen osalta. Registryjen pyörittämisestä on tehty sen verran hankalaa, että Docker Hubin käyttäminen tuntuu lähes pakolliselta suojelurahan maksamiselta. Jos klusteroinnissa tehdään sama virhe, saattaa maksullinen helppokäyttöisyys kääntyä itseään vastaan.