Det er knapt noen teknologi de siste årene som har blitt omfavnet like raskt som konteinerteknologien Docker, som ble introdusert tidlig i 2013. Dette er en åpen kildekode-basert programvareløsning fra selskapet med samme navn, som skal kunne brukes til å skape én eller flere separate applikasjonskonteinere på toppen det samme operativsystemet. Løsningen er i mange tilfeller betydelig mindre ressurskrevende enn separate, virtuelle maskiner. Den støttes nå av nettskyleverandører som Amazon, Google og Microsoft, i tillegg til en hel del andre teknologileverandører.
Selskapet CoreOS, som lager en lettvekts Linux-distribusjon med samme navn for servere, var blant dem som var tidlig ute med å bidra til Docker. Brandon Philips, medgründer og teknisk sjef i CoreOS, er til og med styremedlem hos Dockers.
Men CoreOS mener at selskapet Docker har mistet veien og nå beveger seg i en helt annen retning enn det som var planen fra starten av, nemlig å tilby en enkel komponent eller enhet som kunne brukes i mange ulike systemer.
– Dessverre har det ikke endt med å bli en enkel, gjenbrukbar komponent. Docker bygger nå verktøy for å starte nettskyservere, klyngesystemer og stort spekter av funksjonerer, skriver Alex Polvi, administrerende direktør i CoreOS, i et blogginnlegg. Han viser til et tidligere manifest fra Docker som beskrev hva en standardkonteiner skulle være. Dette manifestet har senere blitt fjernet fra prosjektfilene.
– Alt samles til én monolittisk binærfil som primært kjøres som root på serveren din. […] Vi bør slutte å snakke om Docker-konteinere og begynne å snakke om Docker-plattformen. Det er ikke blitt den enkle, fleksible byggesteinen vi hadde sett for oss, skriver Polvi.
Rocket
Når noen er uenige med retningen et åpen kildekode-prosjekt beveger seg, er det slett ikke uvanlig at man lager en «fork», altså etablerer et nytt prosjekt som tar utgangspunkt i det originale, men som derfra utvikles i en ny retning. LibreOffice og Blink er to velkjente eksempler på dette, med utgangspunkt i henholdsvis OpenOffice og WebKit.
CoreOS har derimot valgt å starte helt fra bunnen av med selskapets nye konteinerløsning, Rocket. Polvi skriver at Dockers prosessmodell, hvor alt kjøres fra en sentral daemon (tjeneste), er fundamentalt defekt, sett fra et sikkerhets- og «composability»-perspektiv.
– Å «fikse» Docker ville i all vesentlighet bety en omskriving av prosjektet, samtidig som man arver all bagasjen fra den eksisterende implementeringen, skriver Polvi.
Rocket, som nå er tilgjengelig i en prototype med versjonsnummer 0.1.0, er et enkelt kommandolinjeverktøy – rkt – for å kjøre applikasjonskonteinere basert på en «App Container»-spesifikasjon som omfatter både konteinerformatet, konteiner-runtimen og en metode for å finne konteiner-avbildninger. CoreOS har vektlagt egenskaper som sikkerhet, distribusjon av avbildninger, åpenhet og «composable».
Det sistnevnte forklares med at alle verktøy for nedlasting, installering og kjøring av konteinere bør være godt integrerte, men uavhengige og mulige å kombinere.
Ifølge Polvi er Rocket den første implementeringen av en App Container. RocketOS regner dog med at dette ikke vil forbli den eneste implementeringen.
Selv om Rocket er utviklet av CoreOS, er det ikke avhengig av CoreOS-distribusjonen. Verktøyet kan like gjerne kjøres i andre Linux-distribusjoner. CoreOS har heller ingen planer om å legge ned støtten for Docker.