Blogi 10.3.2015

Kuinka Fonecta laittoi elefantin tanssimaan?

Gofore

Kiva kun löysit tämän artikkelin! Se sisältää varmasti hyvää tietoa, mutta pidäthän mielessä, että se on kirjoitettu 9 vuotta sitten.

DevOps – hitaista päivityssykleistä jatkuvaan parantamisen tielle

Fonecta.fi on suomen suosituin hakupalvelu ja valtakunnan suosituin verkkosivusto heti uutissivustojen jälkeen. Suosituimmuus syntyy Fonectan kyvystä kehittää palvelua erittäin nopeasti.
Ennen vuotta 2010 yrityksen kehitystavat olivat jäykkiä. Palvelimet pyörivät omassa konesalissa, muutostiketit viuhuivat ristiin rastiin, vanhan koodin painolasti kankeutti kehityksen ja työntekijät olivat tuskastuneita hitaisiin, neljännesvuosittaisiin päivityssykleihin.
Vuosien 2012 – 2014 välillä yritys on kehittänyt yhteensä 35 sovellusta tai palvelua. Uudet palvelunsa Fonecta on kehittänyt DevOps-ideologiaa käyttäen.
Kuinka Fonecta sai elefanttinsa tanssimaan? Fonectan IT-päällikkö Lauri Halkosaari kertoo.

Aloita puhtaalta pöydältä pienesti

Fonecta aloitti uusien työtapojen käyttöönoton pienellä projektilla. Vuonna 2010 yritys kehitti Osuma.fi -palvelua, joka sopi hyvin testausalustaksi. 
“Teimme ensin yhden palvelun, jolla näytimme mitä voimme saada aikaiseksi.“

“Meillä Fonectalla on vastuu tiimin toiminnasta ja tekemisen esteettömyydestä. Alihankkijoiden vastuulla on hankkia parhaat tekijät” - Lauri Halkosaari
“Kun jengi on hyvää ja kehittämisen esteet on raivattu pois, niin tekijöitä ei tarvita niin paljon.” – Lauri Halkosaari

Aiemman kehityksen hitauteen tuskastunut kehitysporukka oli muutokseen otollista maaperää. Työntekijät enemmänkin odottivat uusien tapojen käyttöönottoa kuin jarruttivat sitä. Kokeilun laajentaminen oli seuraava vaihe.
”Muulle organisaatiolle tarvitsimme perusteluita hieman enemmän. Osuma.fi:ssä pystyimme tiputtamaan kehitystyön kustannukset puoleen, viemään uusia versioita tuotantoon katkottomasti ja huoltokatkot mukaan lukien palveluiden saatavuudet olivat paremmat kuin ennen. Kun ensimmäisen kerran todistimme toimivuuden, niin sen jälkeen myyntityötä ei ole tarvinnut tehdä.”

Vaihda konesalit pilveen

Fonectan joustavuuden pohjana on irtautuminen raskaasta omien palvelimien hallinnoinnista. Vanhassa maailmassa palvelinmuutokset vaativat tiketin luontia ylläpidolle, jolloin muutokset olivat hitaita.
“Muutos on meillä jatkuvaa. Silloin on tärkeää pystyä muokkaamaan palveluiden infraa nopeasti.”
Pilvessä uuden palvelimen käyttöönotto on muutaman napin takana ja kehittäjä voi tehdä sen itse.
“Meillä ei ole enää 50 palvelinta konesalissa, että tässä on meidän infra. Me voimme pelkillä koodimuutoksilla heittää palvelimia pois tai ottaa niitä käyttöön”.

Rakenna kykenevä tiimi

Fonecta rakensi kehitystä varten oman tiimin. Se on suhteellisen iso moniosaajatiimi, johon kuuluu yli 20 henkeä. Toisaalta väkeä on melko vähän kun ottaa huomioon palveluiden lukumäärän ja käyttäjämäärät (Gofore on osa Fonecta-tiimiä, lue lisää täältä). 
“Kun jengi on hyvää ja kehittämisen esteet on raivattu pois, niin tekijöitä ei tarvita niin paljon.”
Tiimi pystyy toimimaan itsenäisesti mahdollisimman pitkälle. Tiimiin kuuluu osaamista markkinoinnista, analytiikasta, sovelluskehityksestä ja ylläpidosta. Sama tiimi tuottaa suurimman osan yrityksen kaikista palveluista.
“Meillä on yksi Fonecta-tiimi, jossa on parhaat tekijät. Meillä itsellä on osaamista sovelluskehityksestä, tuotekehityksestä ja projektijohdosta. Tekijöiksi olemme hankkineet sellaisia osaavia tyyppejä, jotka saavat paljon aikaan.”
Kehittäjät Fonecta on hankkinut alihankkijoilta. Halkosaari näkee, että useita alihankkijoita käyttämällä pystyy keräämään useiden eri yritysten parhaita toimintatapoja yhteen nippuun.

Automatisoi kaikki mahdollinen

Fonectan kehityskulttuurin ydin on kaiken mahdollisen automatisoinnissa.
“Lähdimme tekemään asioita tavalla, joka on kehittäjätaustaisille ihmisille järkevää. Heitimme turhat mallit pois ja mietimme miten ongelmat kannattaa oikeasti ratkaista.”
Ratkaisu on automatisoida kaikki mahdollinen eli tuotantoonviennit ja muut ylläpidolliset toimet, kuten palvelinten käyttöönotot ja alasajot. Automatisointi tarkoittaa sopivien työkalujen käyttämistä ja toimenpiteiden ilmaisemista koodilla.

Takaisin ylös