Torstaina 20.4.2023

Dude 10 vuotta – Rolle muistelee osa 2: Taival verkkosivujen toteuttamiskumppanina – Palvelimet

Dudella on useamman vuosikymmenen kokemus palvelimista, joten myös hosting ja ylläpito kuuluu pakettiin. Mistä kaikki lähti ja miksi? Onko omien palvelinten ylläpitäminen sulaa hulluutta vai neroutta? Lue muistelmakirjoitus osa 2!

Tämä juttu on osa moniosaista juhlavuosikirjoitussarjaa, jossa muistellaan menneitä. Lue osat järjestyksessä:
Osa 1: Alku
– Osa 2: Palvelimet (tämä kirjoitus)
Osa 3: Orgaanisen kasvun aika
Osa 4: Taival verkkosivujen toteuttamiskumppanina – Feenikslintu nousee tuhkista, 2019-2023

Edellisessä kirjoitussarjani osassa kerroin firman alkumetreistä, ensimmäisestä toimintavuodesta ja siitä, miten muiden ratkaisut eivät oikein saaneet jalansijaa, kun oli vahva halu kehittää omaa. Näin kävi myös palvelimille ja ylläpidolle. Ennen Duden palvelintarinaa täytyy palata vielä kauemmas. Tällä kertaa seuraa hieman teknisempää muistelua, mutta pyrin olemaan mahdollisimman selkokielinen, jotta et putoa kärryiltä.

Olen syntynyt vuonna 1988 veturinkuljettajaisälle ja sairaanhoitajaäidille. Isäni ei kuitenkaan valinnut itse työtään, vaan päätyi omaa isäänsä miellyttääkseen VR:lle. Hän olisi halunnut tietokonealalle, mutta 70-luvulla tietokoneet vasta nostivat päätään Suomessa hardcore-harrastajien keskuudessa, eivätkä olleet tavallisen tallaajan tiedossa. Isolla rahalla hän kuitenkin hommasi 80-90-luvun taitteessa Amstrad CPC-tietokoneen, jolla opetteli ohjelmoimaan. Minun varttuessani meillä olikin jo 90-luvulla mm. Intelin 386 ja 486 prosessorilla varustettuja tietokoneita, myöhemmin Pentiumia ja aina eteenpäin.

Kuvastoa varhaisista ajoista tietokoneiden ja Linuxin parissa.

Linuxin ensimmäiset versiot tulivat jakeluun vuonna 1991 ja isäni oli tottakai varhaisena omaksujana mukana scenessä. Meillä kokeiltiin mm. Red Hat -pohjaisia Linuxeja ja KDE-työpöytäkäyttöliittymän ilmestyessä vuonna 1996 olin kahdeksanvuotias. Isälläni oli tapana ostaa itselleen uudempaa rautaa (suomeksi: tietokoneen osia) ja kasata vanhoista osista minulle ja veljilleni tietokoneen käytettäväksi, joten olin jo hyvin varhaisessa vaiheessa mukana tietokonemaailmassa. Nuoresta iästäni huolimatta kiinnostuin enemmän Linuxista kuin Windowsista, vaikka Windows 95, Windows 98 ja Windows ME olivatkin pöytäkoneessa enemmän kuin Linux. Dual-boottina kuitenkin asensin siskoni käytössä olevaan koneeseen Mandraken (nykyisin Mandriva) jo vuonna 1998.

Teini-ikäisenä kiinnostuin palvelimen pyörittämisestä. Se alkoi oikeastaan kouluaikoina, kun hommasin TNNetin IRC-shellin, jotta irkkaaminen helpottuisi (ei, en puhu IRC-galleriasta, vaikka sielläkin olin). Viimeistään kun sain ylioppilaslahjaksi oman pöytäkoneen, asensin työpöytäkoneelle palvelimen. Tykkäsin ajatuksesta, että voin jakaa tiedostojani nettiosoitteella suoraan. Täytyy muistaa, että tuohon aikaan ei ollut esimerkiksi moderneja pikaviestimiä kuten WhatsApp, Telegram tai Signal. IRCissä (jota yhä käytän päivittäin) ei varsinkaan voinut jakaa tiedostoja ja kuvia muuten kuin URL-osoitteella, joten palvelin oli merkittävä apu pelkästään yksinkertaiseen viestinvaihtoon.

Omilleen muutettuani käytin edelleen pöytäkonetta palvelimena, mutta laitemäärien vain kasvaessa jossain vaiheessa sain palvelinkäyttöön erikseen oman koneen. Otin tietokoneesta näytön, näppiksen, hiiren ja kaikki muutkin ulkoiset oheislaitteet pois ja pistin sen vaatekomeroon hurisemaan. Palvelimeen kun pääsee yhdistämään helposti toisen koneen kautta komentorivin tai vaikkapa graafisesti VNC-yhteyden voimin.

Tälle miehelle olemme paljon velkaa (psst, hän on Linus Torvalds, eli hahmo Linux-käyttöjärjestelmän takana)

Dude ja palvelimet

Mutta miten tämä Dudeen liittyy? Ehkäpä siten, että Duden perustamisvuoteen 2013 mennessä (jolloin olin 23 vuotias), olin jo syvällä palvelinmaailmassa. Alan toimijat ainakin silloin usein sälyttivät ”webhotellin” ja verkkotunnuksen ostamisen asiakkaalle. Olen sivunnut aihetta muunmuassa tekstissäni WordPress-ylläpito yhdeltä kumppanilta – verkkosivut ja palvelin kulkevat käsi kädessä. En halunnut itse vastuuttaa asiakasta näin teknisessä asiassa, etenkin kun me, Dude, olemme se taho joka toteuttaa verkkosivut.

Palvelin on usein jopa verkkosivuja itseään tärkeämpi asia alalla, se ei voi olla mikä tahansa ja missä tahansa, jos halutaan saada parhaiten toimivaa aikaan ja nopeasti latautuvat sivut. Aikoinaan ei ollut mitään käsitystä edes ”WordPress-optimoiduista palvelimista”, vaikka WordPress on ollut olemassa vuodesta 2005.

Olen nähnyt isojen korporaatioiden verkkosivuja pyörivän ties minkä nuhapumpun päällä. Se aina hirvittää ja jännittää miten moni WordPress on hakkeroitu ja masinoitu haitalliseen käyttöön ylläpitäjän siitä tietämättä. Halusin, että tällaista ei tulisi tapahtumaan koskaan ainakaan meidän asiakkaillemme.

Kumppanin kautta ”omat” palvelimet – raja tulee vastaan

Ihan alussa en kuitenkaan uskaltanut pistää asiakkaillemme omaa palvelinta pystyyn, sillä koin että isompien yritysten verkkosivut eivät voi olla pelkästään yhden ihmisen kokemuksen varassa. Siispä laitoimme verkot vesille. IRCin kautta olin tutustunut moneen palvelinihmiseen, kuten silloisen Lumihostingin (nykyinen Multim Oy eli Shellit) Ville Vuoriseen ja oululaisiin Jussi Räsäseen ja Felix Ippolitoviin, jotka pyörittivät palvelimia Sky Red Media Avoin yhtiön alla. Päätimme lyöttäytyä yhteen Sky Redin kanssa, joiden kautta tarjosimme asiakkaillemme sivutilan verkkosivuja varten. Tarpeet kuitenkin aika pian laajenivat ja Sky Redin kautta tutustuimme oululaiseen F-Solutions Oy:seen ja aloimme käyttämään heidän palvelinympäristöään. Asiakkaidemme näkökulmasta kuitenkin kyseessä on aina ollut Duden palvelimet, joita ylläpidimme itse.

Halusin kuitenkin optimoida palvelimia nimenomaan WordPressille ja tuntui että kenenkään ulkopuolisen ympäristö ei tarjonnut työkaluja tähän. Monesti palvelimet on aika vähän räätälöity tarjoajille ja sisältävät niinsanotun ”jailin” eli vankilan, jonka sisällä on toimittava rajattujen käyttöoikeuksien turvin. Tällä palvelintarjoaja suojaa itseään, mutta myös käyttäjää, sillä pahuuksia ei pääse syntymään. Esimerkiksi jos yhdessä kohtaa tapahtuu tietomurto, koko palvelin ei ole vaarassa, vaan ainoastaan kyseisen verkkosivuston tiedot, ja niin edelleen.

Usein myös palveluntarjoajilla on omat hämmentävät kikkakolmoset esimerkiksi uuden asiakkuuden luomiseen. Halusin puhtaasti komentorivipohjaisen tavan tehdä asioita, pois GUI-ratkaisuista. Välillä piti yhdistellä etäkatselimella jonnekin, jotta sai asioita tehtyä. Halusin vähemmän kikkailua ja suoraa komentoriviyhteyttä serverille. Mitkään cPanelit tai muut asiakaskikkareet eivät ole toimineet minulle, komentorivikeskeiselle sysadminille.

Digital Oceanin virtuaalipalvelin, ”VPS”

Facebookin nostettua statustaan, heidän avoimen lähdekoodin osasto perusti HHVM-tekniikan, jolla voi ajaa PHP:ta yli kymmenkertaisella nopeudella. Tämä tarkoitti sitä, että sivustot latautuivat salamannopeasti tähän tekniikkaan vaihtamalla. Se tarkoitti myös sitä, että piti vihdoin pistää ”oma” palvelin pystyyn, jossa ei ole käyttöoikeusrajoituksia. Niinpä hommasin virtuaalikoneen nosteessa olleelta Digital Oceanilta, koska sitä oltiin kehuttu muissa firmoissa kollegojen piireissä. Ennen Digital Oceania en ole koskaan nähnyt yhtä toimivaa, selkeää ja kaunista käyttöliittymää verkkopalvelun puolella. Samalla pääsi suoraan komentoriville. Palvelu vakuutti heti.

Sain palvelimen heti käyttöön ”yhden klikkauksen taktiikalla” ja säädin kuntoon oman ”stackin” eli kansakielellä ympäristön, joka on nimenomaan asiakkaillemme räätälöity. Vanhana Apache-ihmisenä vaihdoin viimeistään tässä kohtaa pysyvästi nginxiin ja ihastuin sen helppokäyttöiseen syntaksiin. Olin jo Sky Redin kanssa saanut hieman tatsia tähän uudempaan, vuonna 2011 perustettuun palvelintekniikkaan. Vaikutti paljon nopeammalta ja helpommalta konfiguroida.

HHVM ei ollut kuitenkaan vielä kovin kypsä ja siinä oli sellainen ongelma, että se kaatui aina säännöllisin väliajoin. Mutta koska se oli pirun nopea ja hyvä muuten, koodasin ohjelmiston (scriptin), jota ajetaan tietyn väliajoin ajastetusti palvelimen cronissa. Tämä tarkoittaa sitä, että aina kun palvelintekniikka menee nurin, ohjelma nostaa sen automaattisesti takaisin pystyyn ja näin katkoa ei synny tai se on hyvin huomaamaton. Ei ehkä ihan kestävin ratkaisu, mutta tällä mentiin tuolloin.

Digital Ocean ei ollut täydellinen ja olin ammattimielessä palvelinkuvioissa vielä täysin noviisi. Opin kuitenkin koko ajan uutta. Timi Wahalahden tullessa taloon vuonna 2016 en ollut enää yksin ja Duden palvelintietämys tuplaantui. Opin Timiltä rutkasti lisää kun vaihdoimme ajatuksiamme palvelinten suhteen ja pistimme Duden palvelin-infran lopulliseen muotoonsa. Osuuskunta Sangen palvelintiimin jäsen Timi oli myöskin IRCistä tuttu jo kymmenen vuoden ajalta ja käynyt samankaltaisen polun palvelinten kanssa kuin meikäläinenkin.

Hommat kasvaa, Digital Oceanin virtuaalit eivät enää riitä

Keväällä 2016 lähdimme Timin kanssa miettimään hieman varmempaa ja keskitetympää ratkaisua palvelimiimme tulevaisuutta varten. Sen sijaan, että joutuisimme pistämään säännöllisesti uusia Digital Oceanin virtuaaleja pystyyn, halusimme vähän enemmän jytyä ja palvelimet yhdestä paikasta. 2010-luvulla alalle ilmaantui yrityksiä kuten Seravo, jotka lähtivät uudistamaan palvelinbisnestä, mutta koska meillä oli omaa palvelintietämystä ja kehittyneet tavat tehdä WordPress-palvelimia, emme halunneet hypätä enää näin suoraan toisen kelkkaan. Halusimme käytännössä lähinnä vuokrata palvelimia ja tehdä sinne ruuvailut itse.

Olimme Admin Labsin kehityksessä oppineet, että pelkillä rajatuilla virtuaalipalvelimilla ei välttämättä saa aikaan niin hyvää kuin mahdollista. Päädyimme valitsemaan ranskalaisen OVHcloudin. Samalla kun pystytimme ensimmäisen ”oikean” palvelininframme, otimme huomioon kaikki tähän asti maailmalta oppimamme asiat, eli ajastimme säännöllisen syklin päivityksille, lisäsimme automaattihälyt, panostimme tietoturvaan, jne. Teimme asioita, joita ennen oltiin tehty vähän sinne päin. Kokemusta tuli rutkasti lisää näiden parin vuoden aikana, ”trial and error” (eli tee virhe ja opi) -tyyliin.

Palvelinympäristöstä tuli mainio ja kaikki sujui hienosti, kunnes ei sitten enää sujunut. Eräänä maanantaiaamuna heräsimme hälytykseen ja huomasimme, että ihan kaikkien asiakkaidemme sivustot lataavat loputtomiin. Hirvein tunnne palvelinylläpitäjänä on katsoa avuttomana kun sivusto yksi toisensa jälkeen valuu saavuttamattomiin, emmekä voi tehdä mitään kun Ranskasta ei saa ketään kiinni.

Ennenjulkaisematonta kuvamateriaalia toimistomme ”palvelinyksiköstä” (Roni & Timi) vuodelta 2016.

Aamuisin asiakkaat laittoivat viestiä, että mikä on kun kaikki jumittaa, eikä aukea sivut. Emmekä tiedä miksi. OVH:n ongelmista löytyy pidempi kirjoitus Duden harharetki palvelinmaailmassa, jos yksityiskohdat kiinnostavat, mutta lyhyesti: Sen mitä viikkojen jälkeen saamastani ranskankielisestä raportista ymmärsin kääntää yläasteen ranskankielentaidoillani, ilmeisesti joku kaivuri oli rouhaissut hieman väärästä kohdasta ja kaatanut koko verkon Ranskassa ja jostain syystä meidän asiakkuus ei kiinnostanut ketään. Päätimme jälleen pistää infran uusiksi.

Multim/Shellit.org ja uusi aikakausi

OVH:n jälkeen räätälöimme palvelimet vielä kertaalleen uusiksi. Tällä kertaa halusimme vahvasti palvelimet Suomeen, paikkaan josta on tavoitettavissa ihminen yhden puhelinsoiton päässä. Meille jäi pyörimään vanha Digital Ocean -kone nimeltä Monday, jonka nimi muistuttaa tuosta kohtalokkaasta maanantaista. Tuolle koneelle olimme siirtäneet ns. ”legacy-sivustot” (yli 5 vuotta vanhat sivustot, jossa on teknistä velkaa), koska alussa epäilimme että jokin vanhassa tekniikassamme aiheuttaa ongelmat OVH:lla. Se on jännä, että ensimmäisenä sitä syyttää itseään ja sitten vasta miettii olisiko sittenkin isollakin firmalla parannettavaa.

Kilpailutimme muutaman toimijan ja Multim Oy valikoitui melko nopeasti päivänselväksi kumppaniksi palvelinasioissa. Tunsimme molemmat jo entuudestaan Timin kanssa Multimilta jonkun, joka helpotti päätöstä. Multimin porukan kanssa saimme räätälöityä juuri meille sopivat palvelimet niin, että pääsimme kontrolloimaan kaikkea prosessoreiden määrästä Linux-käyttöjärjestelmään ja saimme asennettua palvelimet alusta asti itse. Samalla opimme rutkasti KVM-järjstelmästä ja virtualisoinnista. Migraatioprosessissa OVH:lta Multimille apuna oli tietysti vanhat kunnon bash-ohjelmat, joiden avulla saimme viikon aikana siirrettyä sivusto toisensa jälkeen uuteen kotiin.

Nyt voimme sanoa tyytyväisinä, että loppuvuodesta 2016 saakka olemme olleet iloisia Multimin/Shellitin datasaliasiakkaita. Käytännössä vuokraamme heiltä palvelimet ja niiden huolenpidon, mutta meillä on täysi vapaus optimoida palvelimia mielemme mukaan asiakkaalle parhaiten toimivaksi.

Muut herkut päälle

Moni ei ehkä tiedä, mutta Dudelta saa sivutilan lisäksi verkkotunnukset ja Google-sähköpostit myös (olemme virallinen verkkotunnusvälittäjä ja Google-jälleenmyyjä), mutta emme tuo tätä esille missään, sillä vaikka tarjoamme samoja asioita kuin hostingyritykset, emme ole hostingia irrallaan tarjoava yritys. Hosting kuuluu osana ylläpitopakettiamme, jolloin asiakkaamme ei tarvitse miettiä domaineja, nimipalveluja ja muita verkkosivuja ostaessaan, vaan meiltä saa tuon kaiken samalla.

Lisäksi käytämme vahvasti edelleen mm. Digital Oceanin Spaces -palvelua isompiin mediakirjaston varastointitarpeisiin ja Cloudflarea mm. nimipalveluihin ja CDN:ään sivuston erityisoptimointiin (mm. kuvat, Cumulative Layout Shift (CLS) jne.). Let’s Encrypt tarjoaa HTTPS:n ja ngx-pagespeed nopeuttaa sivustoa lennosta. Ja tässä on vain jäävuoren huippu. On ollut mukavaa olla kehittämässä Suomen parasta WordPress-hostingia, joka ei jää kehityksestä jälkeen.

Omat rautapalvelimet vs. pilvipalvelut

Olen urani aikana käynyt monta keskustelua aiheesta, kun minulta on kysytty ”Miksi ette vain käytä Google Cloudia tai Amazon AWSia?”. Pilvipalveluilla on varmasti paikkansa, mutta kaikenlaiset cloud- ja serverless-härpäkkeet ovat tarpeettoman monimutkaisia saman asian saavuttamiseksi.

Onhan se myös tottumuskysymys, mutta parin sivuston kokemuksella Amazon EC2:sta päätin että en koske enää ainakaan niihin pitkällä tikullakaan. Komentorivin puuttuminen aiheuttaa sen, että ei todella tiedä mitä tapahtuu. Etuna loputon skaalautuminen, miinuksena rajattu hallittavuus. Yhtenä suurimpana kompastuskivenä on mielestäni se että tiedostoja ei pääse yleensä suoraan kopistelemaan. WordPress on vahvasti tiedostopohjainen CMS, joten oikoreittien käyttäminen on monimutkaista ja turhauttavaa.

Oma rauta mahdollistaa parhaan mahdollisen kontrollin, mutta myös paljon riskejä. Onneksi riskejä voi kuitenkin minimoida tekemällä kaiken mahdollisimman hyvin. Meillä on vuosien tuotekehitys takana (käytännössä kymmenen vuotta liiketoimintamielessä, mutta yhteenlaskettuna jo useampi vuosikymmen kokemuksena) ja homma on toiminut hienosti vuodesta 2016. Lisäturvan fiilistä tuo tieto siitä, että Porin datasali on oikeasti hyvä ja turvallinen ja sijaitsee kallioluolastossa, jossa asiakkaidemme verkkosivut hyrräävät laatupalvelimilla ja hyvän tiimin hoiteissa.

Dudelle on myös ekologisuus tärkeää ja siksi valitut palvelimet käyvät 100% vihreällä energialla. Tästä osoituksena Dudella on päästövapaan Green Web Foundationin virallinen sertifiointi. Lisää palvelimistamme voit lukea mm. julkisesta Handbookistamme kohdasta Palvelimet.

Tarina jatkuu…

Palvelinsaaga taputeltu (tai ainakin enimmäkseen). Palvelimet ovat kuitenkin vain pieni osa Duden historiaa ja seuraavana on vuorossa jotain ihan muuta. Ota jutut seurantaan, niin tiedät lisää.

Onko nykyisillä verkkosivuillanne ylläpitokumppani? Toimiiko sivut nopeasti? Onko WordPress-lisäosat aina päivitettyinä? Otamme tapauskohtaisesti myös muiden verkkosivuja ylläpitoomme. Jos tällainen kiinnostaa, pistäpäs viestiä!