Kulkurin valssi



Pojat kylillä ovat viime aikoina kehuneet Vagrant-työkalua vuolaasti. Kuulemma parantaa kehitystehokkuutta. Kuulemma se myöskin suoraviivaistaa päivittäistä toimintaa. Ja ennen kaikkea Vagrantin ahkera käyttö palauttaa mielenrauhan. Kovia väitteitä, enkä usko ennen kuin itse nään. Siispä kokeilemaan.

Raakasti yksinkertaistaen Vagrant automatisoi Oraclen VirtualBoxin toiminnallisuutta. Tähän päälle tulee paketoitava konfiguraatio, automaattinen provisiointi sekä nippu kehittäjäystävällisiä ominaisuuksia. Vagrant on suunnattu pääasiassa kehitys- ja testaustiimien käyttöön.

Ensimmäisellä vilkaisulla suhtauduin Vagrantiin vähätellen. Kyllähän minä, sormistani näppärä insinööri, osaan itse tehdä virtuaalikoneeni. Toisella vilkaisulla neuronini alkoivat tunnistaa työkalun etuja. Automatisointi vähentää virheitä ja parantaa toistettavuutta. Paketointi taas mahdollistaa konfiguraation tallentamisen versionhallintaan. Provisioinnilla saan helposti systeemin haluamaani tilaan— jälleen automaattisesti! Kolmas vilkaisu jatkui neljäntenä ja viidentenä ja…

Kehittäjähattu päähän

Mitä paremmin kehitys- ja testausympäristöt vastaavat tuotantoa, sitä parempi. Ideaalisessa maailmassa “toimii mun koneella” tarkoittaisi sitä, että se toimisi myös tuotannossa. Virtuaalikoneet ovat kaventaneet tätä kuilua, mutteivät kokonaan. Tuotantoympäristöt koostuvat useasta erikoistuneesta palvelimista. Yksittäinen virtuaalikone on yksinäinen.

Vagrant helpottaa asiaa kahdella tavalla. Se vähentää uusien virtuaalikoneiden luomiseen liittyvää kitkaa merkittävästi. Uudet koneet voi speksata kuin pitsatilauksen: “Yksi Ubuntuano, mutta ilman sieniä ja laita sinne yks MySQL ja Munin”.

Vaan entäs jos haluaisin saada kokonaisen ympäristön pystyyn? Vaikka yksittäisiä koneita olisi miten helppoa tahansa käynnistää, laajempien järjestelmien monimutkaisuus kasvaa koneiden määrän kasvaessa. Tämä osuu suoraan siihen, missä mielestäni Vagrantin suurin potentiaali piilee.

Vagrantilla voi määritellä myös useammasta virtuaalikoneesta koostuvia ympäristöjä, joiden käynnistys ja alasajo sujuvat samalla vaivalla kuin yksittäistenkin koneiden. Saan siis pienellä vaivalla pystyyn tuotanto-olosuhteita vastaavan hajautetun ympäristön. Tähänkin ominaisuuteen pätevät samat attribuutit mitä yllä jo kehuin. Toistettava. Versioitava. Automatisoitu. Kuolleen projektin koko ympäristön saa Lasaruksen lailla takaisin henkiin.

Nipotettavaa

Idea on hyvä ja potentiaalia on valtavasti. Mutta. MUTTA. Laitan nipottajalasit silmilleni.

Vagrant on nuori projekti. Versio 0.1 tuli ulos vasta viime vuoden maaliskuussa; tuorein versio 0.7 julkaistiin tammikuussa hieman uuden VirtualBox-julkaisun jälkeen. Edelläkävijät joutuvat siis jälleen elämään epävakauksien ja suoranaisten bugien kanssa.

Tuettu työkaluvalikoima on vielä hyvin rajattu. Vagrant saattaa sitoa käsiäsi teknologioihin ja työkaluihin, joita et halua käyttää. Virtualisointiin on käytössä vain VirtualBox. Provisiointityökaluina tarjolla on Chef ja Puppet. Ja koko paketti on toistaiseksi hyvin Unix-only.

Julkisesti tarjolla virtuaalikonepohjia ei ole hirveästi tarjolla. Hyllyltä löytyy suunnilleen vain Ubuntua ja 32-bittistä Debiania.

Myös itse komentorivityökalu loukkaa esteettistä tajuani. Se yhdistää saman komennon alle sekä systeemitason komennot että yksittäistä virtuaalikonetta koskevat komennot.

Nämä miinukset kuitenkin koskevat vain toteutusta. Itse idea — paketoitu virtuaaliympäristö — on niin  hedelmällinen, että jokin sen ympärille rakennetuista toteutuksista tulee olemaan muutaman vuoden sisällä vakiotyökalu. Hyvä ratkaisu tähän ongelmaan palkittaneen runsaasti. Samaan kun saisi vielä ympättyä saumattoman ympäristöjen siirron esimerkiksi Amazonin pilveen…

Tämän artikkelin on kirjoittanut Antti Rasinen ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *