Seravon asiantuntijat ovat olleet useasti esillä puhumassa WordPressin nopeusoptimoinnista, joten moni WordPress-sivuston kehittäjä kysyy meiltä vinkkejä sivustonsa nopeusoptimointiin. Meiltä kysytään aina silloin tällöin mielipidettä Cloudflaresta. Kysyjät yllättyvät kun kerromme, että useimmilla sivustoilla Cloudflaren käyttö hidastaa sivuston latautumisnopeutta ja lisäksi siihen sisältyy tietoturvariski. Päätimme avata aihetta blogikirjoituksella.
Cloudflare myy palveluaan ajatuksella, että verkkosivuston ei kannattaisi suoraan vastaanottaa liikennettä kävijöiltään, vaan kierrättää liikenne Cloudflaren kautta. Tämä lisää Cloudflaren mukaan sivuston suorituskykyä, tietoturvaa, luotettavuutta ja heidän tilastojensa avulla auttaa kehittäjää ymmärtämään paremmin mitä sivustolla tapahtuu. Nämä kaikki ovat osittain totta, mutta yleensä Cloudflaren hyödyt jäävät niin pieneksi, ettei se kannata. Lisäksi se tuo mukanaan myös kääntöpuolen, josta Cloudflaren markkinointimateriaalit eivät mielellään kerro.
Suorituskyky paranee vain, jos sivustolla ei entuudestaan ole HTTP-tason välimuistia
Cloudflaren suorituskykyä parantava väite perustuu siihen, että heillä on palvelimia ympäri maailman. Kun sivusto liitetään Cloudflareen, ohjataan kävijät Cloudflaren palvelimelle eikä suoraan varsinaiselle sivustolle. Cloudflare tarjoaa HTTP-tason välimuistin omilta palvelimiltaan, jotta kävijä saa ladattua verkkosivun Cloudflaren kävijää lähellä sijaitsevalta palvelimelta sen sijaan, että se tulisi sivustolta itseltään.
Tämän hyöty riippuu muutamasta seikasta:
- Onko sivustolla HTTP-tason välimuistia entuudestaan lainkaan?
- Onko Cloudflaren palvelin olennaisesti lähempänä kävijää ja onko Cloudflaren palvelin ja verkko nopeampi kuin muut HTTP-välimuistit?
- Kuinka iso osa liikenteestä tallentuu HTTP-välimuistiin?
Seravon WP-palvelussa on kaikilla asiakkailla ollut vakiona automaattisesti HTTP-tason välimuisti jo vuodesta 2014. Tätä nykyä sellainen alkaa löytyä useimmista muistakin palvelinympäristöistä, joissa on ollut vähänkään yritystä tehdä asiat modernien käytäntöjen mukaisesti (avainsanoina mm. Nginx ja Varnish). Jos sivuston palvelinympäristössä ei ole HTTP-tason välimuistia, on palvelinympäristössä varmaan muutakin vikaa, jolloin kannattaa ehkä harkita palveluntarjoajan vaihtoa kokonaan sen sijaan, että vaihtaisi Cloudflareen.
Jos WordPress-sivu on tallentunut HTTP-tason välimuistiin, pystyy HTTP-välimuistipalvelin tarjoilemaan sen sieltä salamannopeasti noin 1-5 millisekunnin latausajalla. Sivuston vierailijalle kyseisen sisällön saapuminen riippuu sivun tiedostokoosta, verkkoyhteyden nopeudesta ja latenssista. Cloudflaren keskeinen argumentti on, että koska sillä on palvelimia ympäri maailman, on latenssi aina pieni. Alla oleva taulukko kuvaa latenssin muodostumista Seravon Tampereen toimistosta läppärillä mitattuna.
Palvelimen sijainti | Latenssi |
Tampere | 11 ms |
Helsinki | 7 ms |
Tukholma | 15 ms |
Saksa | 32 ms |
USA:n keskiosa | 126 ms |
Kuten tästä näkee, latenssilla on merkitystä vasta kun mennään toiseen maanosaan. Tästä syystä Seravon WP-palvelussa asiakas voi valita useista eri palvelinsalivaihtoehdoista. Esimerkiksi, jos asiakkaan päämarkkina on USA:ssa, voi asiakkaamme halutessaan valita sivuston sijoituspaikaksi Seravon USA:n palvelinklusterin, olettaen että esimerkiksi GDPR-asiat tai muut prioriteetit ei ole esteenä.
HTTP/2-protokolla
Etäisyydestä johtuva latenssi ei kuitenkaan ole suoraviivaisesti koko totuus. Latenssiin vaikuttaa etäisyyden lisäksi myös palvelimen verkkoasetukset, TCP/IP-yhteyden ”kädenpuristuksen” nopeus yhteyden muodostamisessa sekä tietysti se, minkälainen verkko vierailijalla on (nopea yritysverkko vai vaihteleva wifi-yhteys tai hidas mobiiliyhteys jne). Pelkällä etäisyydellä ei välttämättä ole olennaista merkitystä kokonaisuudessa. Tärkeintä on huolehtia, ettei latenssi kertaannu siten, että jokaisen sivunlatauksen jokainen HTML-, CSS-, JavaScript- ja kuvatiedosto ladataan omalla yhteydellään, vaan ne käyttävät samaa yhteyttä ja tiedonsiirto on pakattu. Tästä syystä tärkeämpää on varmistaa, että sivustolla on käytössä HTTP/2-protokolla tiedostonsiirrossa. Seravolla HTTP/2 on ollut vakiona kaikilla asiakkailla vuodesta 2016 lähtien, ja sitä ennenkin käytössä oli vastaava toteutus SDPY-tekniikalla.
Lisäksi mittauksissamme on käynyt ilmi, vaikka Cloudflare ohjaa liikenteen kävijästä katsottuna lähimmälle Cloudflaren palvelimelle, niin taustalla tapahtuvien asioiden takia kokonaisnopeus oli silti suhteessa loppukäyttäjän etäisyyteen oikeasta palvelimesta vaikka sivu tuli HTTP-välimuistista. Mittauksissa havaitsimme, että Cloudflarea käyttävän sivuston latausaika Suomesta mitattuna oli 10 millisekuntia ja USA:sta mitattuna 160 millisekuntia. Jos Cloudflarea käyttää, kannattaa ainakin varmistaa mittauksilla itse, että latenssi eri puolilta maailmaa todella on tasaisen pieni, koska se on ainoa edes teoreettinen hyöty Cloudflaresta.
Cloudflare ja latenssi
Viimeisenä, mutta ehkä tärkeimpänä on kysymys kuinka osa sivuston HTTP-pyynnöistä ylipäänsä tallentuu HTTP-välimuistiin? Esimerkiksi WooCommerce-verkkokauppasivustoilla on tyypillistä, ettei HTTP-välimuistia itse asiassa käytetä lainkaan, koska jokaiselle vierailijalle asetetaan eväste ja sen avulla kullekin vierailijalle näytetään räätälöityä sisältöä. Jos Cloudflare on käytössä tällaisessa tapauksessa, johtaa se latenssin kaksinkertaistumiseen: vierailijan selain hakee sivun Cloudflaresta ja Cloudflaren palvelin hakee sen alkuperäiseltä palvelimelta. Vierailija joutuu odottamaan ylimääräisen ajan, kun Cloudflaren palvelin ja sivun varsinainen palvelin keskustelevat keskenään sen sijaan, että sisältö latautuisi mahdollisimman nopeasti suoraan sivun omalta palvelimelta.
Webpagetest-mittaustuloksia
Webpagetest.org on Seravon suosima riippumaton mittauspalvelu, joka mittaa monipuolisesti verkkosivuston latausnopeutta. Alla on kahdet mittaustulokset nopeasta ja hitaasta sivustosta, Cloudflaren kautta ja suoraan. Mittaukset on tehty Webpagetest.org:n Amsterdamin palvelimilta käsin, jonka pitäisi tuottaa varmasti Cloudflaren puolesta hyvät tulokset, sillä sivustot sijaitsevat Suomessa ja suoraan Suomesta mitattuna suomalainen palvelin on lähtökohtaisesti aina nopein.
Näistä tuloksista kuitenkin näkyy, että Cloudflaren vaikutus sivun kokonaislatautumisnopeuteen on olematon tai jopa negatiivinen. Erityisesti, jos sivusto on hitaanpuoleinen WooCommerce-sivusto eikä HTTP-tason välimuistia käytetä, aiheuttaa liikenteen kierrättäminen Cloudflaren kautta selkeää lisähidastumista. Tällaisessa sivustossa tulisi nopeusoptimoinnissa keskittyä tietokantaan ja koodiin – pelkästä Cloudflaresta ei ole hyötyä.
Välimies heikentää tietoturvaa
Cloudflaren ollessa käytössä vierailijan kirjoittaessa selaimeen https://example.com/ ottaa hänen selaimensa yhteyttä Cloudflareen, jolloin yhteys on salattu Cloudflaren HTTPS-varmenteella. Cloudflaren palvelin purkaa salauksen ja ottaa toisen yhteyden sivuston varsinaiselle palvelimelle. Loppukäyttäjä ei pysty mitenkään varmistumaan, siirtyvätkö hänen tietonsa salattuna oikealle palvelimelle asti. Sivuston omistaja joutuu luottamaan siihen, ettei Cloudflarella tapahdu mitään epäilyttävää, eikä Cloudflaren kautta kulkevat tiedot joudu väärin käsiin. Toistaiseksi näin onkin käynyt vain kerran (ks. Cloudbleed-tapaus).
Joissain organisaatioissa voi olla jopa kiellettyä viedä salaamatonta tietoa Suomen ulkopuolelle. Silloin ei ehdottomasti pidä käyttää Cloudflarea. Se saattaa valita HTTPS-yhteyden miltä palvelimeltaan tahansa ja siten pitää tietoja salaamattomassa muodossa Suomen ulkopuolellakin.
Välimiehenä Cloudflare saattaa peittää myös piileviä vikoja. Loppukäyttäjän näkökulmasta liikenne voi olla salattua ja HTTP/2 käytössä, mutta näin ei välttämättä enää ole Cloudflaren ja oikean palvelimen yhteyden osalta. Tätä on vaikea havaita. Koska kaikki sivustolle tuleva liikenne kiertää Cloudflaren kautta, voi esimerkiksi tietomurron tutkiminen jälkikäteen lokeista olla hankalampaa, koska kaikkiin lokeihin ei jää oikeaa liikenteen lähteen IP-osoitetta, vaan vain Cloudflaren välimiespalvelimen IP-osoite.
Markkinointimateriaaleissaan Cloudflare kertoo suodattavansa liikennettä ja suojelevansa sivustoja tietoturvauhilta ja palvelunestohyökkäyksiltä. Emme ole löytäneet tietoa, että Cloudflaren suodatuksessa olisi mitään erityistä WordPressiin liittyvää, joten se tuskin suojaa sovellustason tietoturvahyökkäyksiä vastaan. Verkkotasolla suojaus varmasti toimii, mutta verkkotason suojaukset ovat vakiona lähes kaikissa verkkolaitteissa ja konesalioperaattoreilla joka tapauksessa.
Kuka käyttää Cloudflarea?
Seravon parista tuhannesta asiakkaasta tällä hetkellä vain viisi käyttää Cloudflarea. Jos Cloudflarea haluaa käyttää, ei toki ole mitään teknistä estettä laittaa liikenne kiertämään Cloudflaren kautta siinäkään tapauksessa, jos sivusto sijaitsee Seravon WP-palvelussa. Joissain tapauksissa siitä voi olla hyötyä, mutta hyöty kannattaa todentaa mittausten kautta, eikä luottaa vain markkinointimateriaaleihin, kuten olemme yllä osoittaneet.
Jos katsotaan kesällä 2018 julkaistua Vierityspalkki.fi:n mittausta suomalaisten WordPress-digitoimistojen omista sivuista, nähdään ettei yhdenkään top-10:ssä olevista sivustoista liikenne kierrä Cloudflaren kautta. Jos tavoitteena on mahdollisimman nopea sivusto, kannattaa huomio mieluummin kiinnittää muihin seikkoihin kuin Cloudflareen.
Mihin kannattaa keskittyä: nopea tietokanta ja hyvää koodia
Yleensä sivuston nopeuden pullonkaula on tietokanta tai huonosti toteutettu koodi. Kumpikaan ei ole ongelma, mikäli WordPress-sivusto on ylläpidossa WP-palvelussa ja sen on koodannut esimerkiksi jokin edellä mainitun listan digitoimistoista.
Seravon WP-palvelussa on alusta alkaen kaikki, Linux-kernelistä lähtien, optimoitu WordPressin suorituskykyä varten. Lisäksi tarjoamme paljon muitakin tärkeitä asioita tietoturvaan ja kehittäjäystävällisyyteen liittyen. Palvelua kehitetään aina asiakkaiden todelliset tarpeet edellä, faktoihin perustuen ja ilman turhaa markkinointihömppää. WordPress ei ole täysin ongelmaton, mutta Seravon kanssa siitä saa eniten hyötyä irti.
Olemalla Seravon asiakas voi lisäksi olla hyvillä mielin siitä, että samalla tukee WordPressin ja muiden avoimen lähdekoodin ohjelmistojen kehitystä sekä WordPress-yhteisöä. Hyvä keino saada neuvoja onkin kääntyä aktiivisen yhteisön puoleen ja keskustella vertaistensa kanssa. Tule moikkaamaan kun näet meidät WordCamp- tai open-source -tapahtumissa ja keskustellaan lisää tekniikasta!