Verkkopalveluiden infralla on väliä
21.03.2017
Marko Korhonen
Marko Korhonen

Miksi infrastruktuurilla on väliä?

Ohjelmiston kehittämiseen varatusta työmäärästä kuluu kohtalainen osuus erilaisiin kehitys- ja palvelinkoneiden sekä niihin asennettavien sovellusten ja asetusten määrittämiseen. Tätä kokonaisuutta sanotaan yleisesti "ympäristöksi".

Erilaisia ympäristöjä pystytetään yleensä vähintään kolme: kehitys-, testaus- ja tuotantoympäristöt. Tämän lisäksi jokainen projektissa mukana oleva kehittäjä pystyttää omalle koneelleen paikallisen ympäristön. Näissä kaikissa on tyypillisesti paljon yhteistä ja kutakin päivitetään projektin sekä sitä seuraavan jatkokehitysvaiheen aikana moneen otteeseen. Koska toistuvan työn optimointi tuo säästöjä asiakkaalle, olemme kehittäneet touhuun oman alustan.

Jopa 97% säästö ajankäytössä

Vakioidut ympäristöt ovat kustannustehokkaita. Ne säästävät rutkasti työaikaamme ja sitä myöten asiakkaidemme rahoja. Ympäristöjen vakiointi ja nopea pystytys mahdollistaa myös joustavan resursoinnin: yhden kehittäjän jääminen vuoteenomaksi ei vaaranna aikatauluja, koska korvaava kaveri saa ympäristöt asennettua omalle koneelleen käden käänteessä ja voi aloittaa kehittämisen alle tunnin varoajalla. 

Ilman yleistä infrastruktuuria, jonka pohjalta ympäristöjä voi helposti luoda eri tarkoituksiin, ympäristön pystyttämiseen voi saada poltettua parikin työpäivää. Asennuksiin käytetyn ajan säästö näkyy asiakkaan laskulla kahdessa eri kohdassa:

  • Projektin käynnistyessä arkkitehti kloonaa projektin käyttöön kopion Druidin infra-templatesta. Tämä pohja sisältää kaikki yleisimmin käytetyt komponentit ja asetukset. Kopiota muokataan projektin tarpeisiin: joskus tarvitaan vaikkapa Solr-palvelin monipuolisten hakuominaisuuksien rakentamiseksi, joskus taas jotain muuta.
  • Aikaa säästetään myös uusia ympäristöjä pystytettäessä. Aluksi jokainen kehittäjä asentaa ympäristöt omalle koneelleen, sitten luodaan yhteinen testiympäristö, ja jossain vaiheessa projektia tulee tuotantoympäristön pystyttäminen ajankohtaiseksi. Kaikki nämä voidaan rakentaa muutamalla napinpainalluksella yhä uudestaan ja mikä tärkeintä, vakioinnin ansiosta täysin virheettömästi.

Yhtenevät ympäristöt

Vakiointi vähentää vaaran ja virheen määrää. Potentiaaliselta verkkopalvelutoimittajalta kannattaakin kysäistä, minkä teknologiapinon päälle palvelut rakennetaan ja keksitäänkö pyörä uudestaan jokaista projektia varten. Parhaimmillaan palvelinkonfiguraatiot ja sovelluspalvelinten versiot tallennetaan osaksi sovelluksen koodipohjaa: Infrastructure as Code (IaC) mahdollistaa ympäristöjen koodin kattavan dokumentoinnin ja versioinnin, jolloin bugien selvittäminen on nopeampaa. Lisäksi IaC-malli mahdollistaa infrastruktuurin automaattisen testaamisen.

Useimmista tiedossamme olevista ratkaisuista poiketen meidän inframallimme on "multi-environment, multi-site". Yhdellä asiakkaalla voi siis olla samassa infrassa useita sivustoja ja kullakin sivustolla useampi ympäristö. Infran jakaminen eri sivustojen käyttöön säästää rahaa.

Joustava, riippumaton ja asiakaskohtainen

Inframme käyttöjärjestelmävalinta on joko Ubuntu tai CentOS 7. Ratkaisu ei rajaa käytettäviä konesalipalveluita vaan ympäristöt sujahtavat niin Amazon AWS, Microsoft Azure kuin Digital Ocean -pilviin – tai sitten asiakkaan oman kellarin koneille. Ohjelmistokehittäjän koneeseen ympäristöt asentuvat Vagrant-virtuaalikoneen avulla.

Asiakkaillemme infra tulee kaupan päälle. Toki peruspaketin projektikohtainen räätälöinti ja mahdolliset ylläpitotoimet ja niihin liittyvä testaus tuottavat jonkin verran työtä, mutta inframallimme ansiosta kulut ovat säästöihin verrattuna minimaaliset. Ja jos tiemme joskus erkanevat, voi asiakas ottaa Druid-infran mukaansa tai pystyttää ympäristöt itse.
 

Lue myös

Kommentit

Lisää uusi kommentti

Puhdas teksti

  • HTML-merkit ovat kiellettyjä.
  • Rivit ja kappaleet päätetään automaattisesti.
  • Each email address will be obfuscated in a human readable fashion or, if JavaScript is enabled, replaced with a spam resistent clickable link. Email addresses will get the default web form unless specified. If replacement text (a persons name) is required a webform is also required. Separate each part with the "|" pipe symbol. Replace spaces in names with "_".
  • Verkko- ja sähköpostiosoitteet muutetaan automaattisesti linkeiksi.