Blogi

DevOps: Kuinka varmistaa palvelun toimivuus poikkeuksellisina aikoina?

Vitali Gusatinsky Bisnes

Jonkin aikaa sitten autoimme Verkkokauppa.com:ia laittamaan heidän pilviarkkitehtuurin kuntoon, jotta yksi Suomen vilkkaimmista verkkokaupoista toimisi moitteettomasti Black Friday -myyntipäivän läpi. Haastattelimme meidän DevOps-tiimiä ymmärtääksemme enemmän mitä tämä tarkoittaa. Katso video tai lue litterointi alta.

Onnittelut hienosta keissistä, asiakas tuntui olevan aika tyytyväinen lopputulokseen. En oikein tiedä projektista enempää, mitä siinä tuli tehtyä?

Tero: Verkkokauppa.com:illa oli tietyt palvelut pyörimässä omassa konesalissa ja ne ei kyennyt taipumaan siihen kuormaan, jonka Black Fridayn tyylinen tapahtuma toi heidän järjestelmille. Tämän projektin idea oli siirtää palvelut konesalista pilviympäristöön, jotta palvelu saataisiin mahdollisimman skaalautuvaksi.

Käytännön tasolla mentiin osaksi heidän tiimiä tekemään tätä siirtoa. Suunniteltiin yhdessä uusi infrastruktuuri pilveen ja toteutettiin siirto sinne. Testasimme mahdollisimman perusteellisesti tätä uutta järjestelmää ja Black Fridayssa päästiin aidosti kokeilemaan jos ratkaisu toimii odotetusti ja hyvinhän se toimi.

Mikä on hyvä hetki joka jäi mieleen projektista?

Tero: Ehkä paras hetki oli kun oltiin Black Friday -yönä muun tiimin kanssa ja nähdä se valtava käyttäjämäärä ja nähdä että kaikki toimi niin kuin piti. Se oli mahtava tunne ja oli hienoa nähdä se fiilis siellä ja jakaa se kaikkien kanssa. Kaikki olivat tyytyväisiä, että homma meni putkeen.

Verkkokauppa on aika valtava sivusto. Mitä oppeja tästä tuli, jotka voisi olla hyödyllisiä pienemmillekin yrityksille?

Tero: Ehkä tärkein oppi on että vaikka kuinka skaalautuvaksi infrastruktuuri rakennetaan, niin testaaminen on kaiken avain. Sitä sovelluksen ja infran skaalautumista täytyy testata todella paljon ennen kun voit luottaa siihen täysin, että se toimii. Tosi usein matkan varrella löytyy jotain bugeja, jotka saattaa aiheuttaa ongelmia. Testaaminen on se ykkösjuttu.

Miten korona on vaikuttanut palvelujen ylläpitoon?

Antti: Eniten tämä on varmaan vaikuttanut työpaikoilla. Kaikki työkalut, työprosessit ja muut korostuu tosi paljon. Slackit, dailyt ja muut käytännöt miten me DevOps-ihmisinä tehdään töitä tiiminä ja asiakkaan kanssa korostuu tosi paljon. Jos vertaa vaikka Verkkokauppa.com:iin, jossa oltiin lähinnä on-site tekemässä asiakkaan kanssa yhdessä, niin tätä mahdollisuutta ei ole.

Jos mietitään perinteistä konesalia, niin se vaatii että jokin henkilö on joko paikan päällä tai vähintään valmiudessa mennä fyysisesti paikalle, jos täytyy vaikka päivittää jotain. Jos vertaa tätä johonkin moderniin toteutuksiin kuten AWS, niin se on täysin riippumatonta missä me olemme. Tiimi voisi olla  eri maissa ja se ei vaikuttaisi toimintaan mitenkään.

Tietenkin yhteistyöllä on paljon potentiaalia kehittyä siinä kun tehdään etänä ja otetaan työkalut vahvempaan käyttöön. Se saattaa jopa purkaa jotain siiloja jotka voi auttaa asioita ja tuoda enemmän DevOps kulttuuria organisaatioihin.

Mitkä seikat ovat tärkeitä mahdollistamaan hyvän kyvykkyyden palvelulle sietää kovaa rasitusta?

Tero: Testaaminen on ihan äärimmäisen tärkeää. On hyvä simuloida esimerkiksi eri ruuhkapiikkitilanteita mahdollisimman realistisesti, jotta voimme nähdä kuinka sovellus ja infra käyttäytyy. Se on kaiken A ja O.

Antti: Testaaminen monesti tuntuu unohtuvan. Sitten tulee tilanne, että “testataan tuotannossa” ja tulee erikoistilanteita kuten Black Friday, jossa kuorma on yhtäkkiä moninkertainen siihen miten se on normaalisti. Siihen on ehkä ajettu jotain infrapäivityksiä ja nähty että se toimii hienosti. Mutta mitä tapahtuu jos tulee joku erikoistilanne, kuten korona, ja yhtäkkiä kaikki liiketoiminta siirtyy verkkoon? Onko ympäristö valmiina sitä varten? Tätä on helppoa unohtaa testata kunnolla.

Hienoa, kiitos tästä ja onnittelut vielä kerran onnistuneesta projektista. Onko tähän lopuksi jotain mitä voisimme kertoa katsojille siitä miten voimme auttaa heitä ylläpitoasioissa?

Antti: Yksi asia mitä koitamme aina tuoda sen lisäksi että tuodaan osaamistamme, niin tuomme kulttuurimuutosta ja ajatusmuutosta. [Meidän näkemys on että] ylläpito ei ole erillinen tiimi, joka on joku nakkikone jonne laitetaan tiketti sisään, vaan mennään ja tehdään kehittäjien kanssa yhdessä. Tämä juuri purkaa siiloja ja parantaa koko tiimin osaamista ja reagointikykyä eri tilanteisiin. Tämä on mielestäni tosi tärkeää.

Tero: Isoin juttu on ehkä se että tuomme DevOps -kyvykkyyttä ja jaetaan sitä tietoa mahdollisimman paljon muille tiiminjäsenille, että he voivat toimia mahdollisimman hyvin ja tehokkaasti. DevOps -kulttuurin tärkein juttu on siilojen purkaminen. Kehitys ja ylläpito ei ole erillisiä tiimejä vaan nimenomaan että se on yksi tiimi joka tekee kaikki asiat ja jakaa sen tiedon keskenään. Se on ehkä se tärkein asia miten pyrimme toimimaan.