Perjantaina 1.9.2023

Näin julkaistaan modernit verkkosivut

Luulisi, että verkkosivut ”siirretään nettiin”, kun ne julkaistaan. Mutta se ei ole ihan niin yksinkertaista. Kun WordPress-verkkosivut toteutetaan laadukkaasti käyttäen oikeaoppisia ja ensiluokkaisia toteutustapoja, julkaisusta tulee monivaiheinen, huolellinen tarkistus- ja testausprosessi. Eihän kukaan halua, että sivut korkataan alta aikayksikön? Lue tästä lisää, niin tiedät mitä operointimanuaalissamme lukee.

Verkkosivujen suunnittelu ja kehitys ovat hyvin edustettuna blogissamme, mutta julkaisusta ei olla puhuttu mitään. Etenkin mainostoimistomaailmassa verkkosivujen julkaisu ja palvelimet ulkoistetaan yleensä jollekin toiselle toimijalle, kuten vaikkapa Seravo, Telia tai Planeetta Internet Oy. Meistä on kuitenkin käsittämätöntä, että verkkosivujen sielu eli palvelimet hoidetaan jossain aivan muualla ja usein jätetään huomiotta. Siksi julkaisuprosessimme on kiinteä osa ylläpitopakettiamme, sillä sivuston tarina ei pääty suinkaan sen julkaisuun – siitä sen tarina vasta alkaa.

Julkaisulistamme oli aikoinaan myös julkisessa operointimanuaalissamme osoitteessa handbook.dude.fi, mutta poistimme pari vuotta sitten sieltä kaiken teknisemmän tietosuoja- ja tietoturvasyistä. Huomasimme nimittäin, että meidän täytyi jatkuvasti ylläpitää ”siivottua” julkista versiota dokumenteista sekä sisäistä ajolistaa ohjeineen ja tunnareineen. Emme halua, että julkisia dokumenttejamme hyödyntämällä riskeeraisimme palvelimemme tai asiakassivustomme. Tästä syntyi Internal Development Docs, joka on käytössä vain henkilökunnallemme.

Dokumenttikirjastojamme ovat:

  1. Julkinen Handbook osoitteessa handbook.dude.fi
  2. Julkiset koodausstandardit osoitteessa dev.docs.dude.fi
  3. Air-tuoteperheen julkinen dokumentaatio osoitteessa docs.airwptheme.com
  4. Sisäinen Customer Development -dokumentaatio, joka sisältää asiakasprojektispesifiä tietoa
  5. Sisäinen Internal Development Docs, joka sisältää jättimäisen tietopankin henkilökunnalle
Kurkistus sisäisen devaaja-tietopankkimme maailmaan.

Verkkosivuston julkaisu ei ole ”napinpainallus”

Ennen vanhaan siirrettiin html-tiedosto FTP-palvelimelle ja siinäpä se. Modernin WordPress-sivuston julkaisussa pitää kuitenkin ottaa monenmonituista asiaa huomioon. Modernit WordPress-verkkosivut on rakennettu hyvin toimivan työkalupaketin, ns. ”stackin” päälle. Me Dudella käytämme omaa stackia nimeltään dudestack, joka alunperin pohjautuu amerikkalaisen WordPress-pioneeriyrityksen Rootsin työhön, mutta josta on muodostunut vuodesta 2015 lähtien oma, eheä kokonaisuutensa.

Julkaisuprosessi koostuu 20 sivusta ensiluokkaista dokumentaatiota. Lyhyesti ja tiivistettynä menemättä teknisyyksiin vaiheistus menee seuraavalla tavalla.

  1. Siirrä asiakkaan domainit valmiiksi meille, jos asiakas on tilannut meiltä domainhallinnan ylläpitopakettinsa mukana.
  2. Julkaisukomento: Aja Capistranon komento, jolla sivut siirtyvät maagisesti omasta testiympäristöstä tuotantoympäristöön (tuotannolla, engl. production tarkoitetaan maailmalle näkyvää, virallista versiota)
  3. Määrittele tietokanta sivustolle ja tee tietoturvatoimenpiteet
  4. Synkronoi mediakirjaston tiedostot.
  5. Laita webpalvelin valmiiksi lisäämällä virtualhost ja siihen liittyvät asiat. Osa tästä on automatisoitu, mutta ihmistä tarvitaan aina tarkistamaan, että kaikki toimii.
  6. Testaa julkinen sivusto paikallisesti ennen kuin verkkotunnus on käännetty oikealle palvelimelle. Tällä tavoin voimme ikään kuin testata ”kuin sivusto olisi julkaistu”, vaikka se ei ole vielä maailmalle näkyvissä. Tähän liittyy myös oma ajolistansa.
  7. Tarkista käyttöoikeudet. Eräajo tarkistaa nämä joka tapauksessa, mutta on hyvä myös tuplatsekata tässä vaiheessa.
  8. Käy läpi julkaisun ajolista (alla eriteltynä).
  9. Määrittele verkkotunnus ja nimipalvelin. Tässä kohtaa kytketään sivusto näkyviin maailmalle.
  10. Kun sivusto vastaa pingiin ja näkyy selaimessa, luo SSL-sertifikaatti. Tällä saadaan HTTPS toimintaan. Tämä on syytä tehdä välittömästi kun sivut toimivat.
  11. Ohjaa staging-versio production-versioon, eli suomeksi: Ohjaa testiympäristön linkit live-ympäristöön. Näin varmistutaan, että jos esimerkiksi asiakas kirjautuu väärään ympäristöön, hänet ohjataan automaattisesti uusimpaan, eikä muutoksia mene vahingossa hukkaan testiympäristössä.
  12. Erinäisiä pieniä viimeistelytehtäviä ja niin, se ajolista (seuraavana).

Julkaisun aikana ja sen jälkeen, ”julkaisun ajolista”

Julkaisun tarkistuslistamme sisältää 50 kohtaa, mutta tiivistän tähän nämä parhaani mukaan yhteen könttään.

  1. Vanhan sivuston varmuuskopiointi. Ajetaan minimissään bash-loitsu, jolla saa vanhat sivut talteen offline-HTML-kopsuina, kuvineen, teksteineen päivineen.
  2. WordPressin yleiset asetukset kuntoon. Tarkistetaan, että ylläpitäjän sähköpostiosoite on asiakkaan, eikä kehittäjän. Viimeiset tsekkaukset sivuston nimeen ja selitteeseen.
  3. Teeman tiedot ajan tasalle. Olisi noloa, jos style.css:ään jää kehittäjille tarkoitettuja tietoja tai aloitusteeman nimi. Asiakas omistaa tilaamansa WordPress-teeman, joten on tärkeää että tiedot ovat ajan tasalla täälläkin. Tämä kohta sisältää kolme tehtävää: README.md, style.css ja teeman kuvankaappaus.
  4. Verkkotunnukset. Koska olemme virallinen verkkotunnusvälittäjä, hoidamme asiakkaan puolesta domainit, niiden rekisteröimisen ja automaattisen uusimisen. Julkaisun kynnyksellä on tärkeää hoitaa mm:
    • TTL nollaan. TTL tarkoittaa ”Time To Live” eli sitä aikaa, joka kuluu kun nimipalvelin päivitetään. Jos tätä ei hoida ajoissa, voi joutua odottelemaan jopa kolme päivää, ennen kuin uusi sivusto näkyy maailmalle.
    • Domainten välittäjänvaihtoavaimet. Verkkotunnuksen siirtoa varten tarvitaan välittäjänvaihtoavain vanhalta välittäjältä. Vasta tämän myötä saadaan domain haltuun ja päästään tekemään muutoksia, jotta saadaan uusi sivusto näkyviin.
    • Nimipalvelintietueiden päivittäminen. Tärkeä vaihe, tarkistellaan vielä että etenkin A-tietueet, SPF-tietueet, sähköpostinvälityksen vaatimat tietueet ja asiakkaan omat tietueet ovat kunnossa.
  5. Monitorointi päälle. Jokainen verkkosivusto lisätään automaattiseen seurantaan (seurantaväli 30 sekuntia). Palvelinten tilanteen näet osoitteesta status.dude.fi.
  6. Mediakirjaston kuvien läpikäynti ja optimointi. Onko joukossa yli 1mb kuvia? Onko käytetty png- vai jpg-päätteitä? Rullataan ImageOptimin läpi kuvat niin, että koko pienenee, mutta laatu ei kärsi.
  7. HTML:n validointi. Tässä tulee spotattua viimeiset huolimattomuusvirheet.
  8. SEO-minimitarkistus. Tarkistellaan, ettei etusivun titlessä näy ”Etusivu” jne. Se vasta noloa onkin, jos sellainen ehtisi Googleen indeksoitua.
  9. Tarkista, että mediatiedostojen lisäys onnistuu. Joskus ympäristöjen välille jää vanhoja polkuja, jolloin tuotantoympäristössä kuvaa lisättäessä tulee virhe. Tässä kohtaa on hyvä varmistaa, että kaikki toimii.
  10. Tietoturvatsekkaus koodin osalta. Ajetaan viimeinen PHPCS-tsekkaus.
  11. Lisää lomakkeiden vastaanottajat ja testaa lomakkeet. Tässä kohtaa aktivoidaan myös spämminestotyökalut, kuten roskapostihunajapurkki, Zero Spam ja Akismet.
  12. Sähköpostinvälityksen määritykset. Me luotamme Mailguniin.
  13. 301/302-ohjaukset. Redirection-lisäosa on ystävä. Myös site:omasivusto.fi -Google haulla viimeiset testailut.
  14. 404-lokitus. Seuraillaan julkaisun jälkeen pari viikkoa, että ei tule ”sivua ei löydy” -osumia.
  15. URL-tarkistus. Katsotaan, että ei ole risuaitalinkkejä, toimimattomia linkkejä tai .test-päätteisiä linkkejä.
  16. Rajapinta-avainten tarkistus. Jos sivu itsessään käyttää rajapintoja, nämä on syytä tarkistaa, mutta vaikka ei käyttäisikään, aspapallura sivuston hallinnassa käyttää avainta. Verkkokaupoissa avainten toimimattomuus voi johtaa jopa maksujen toimimattomuuteen.
  17. Välimuistitus ja nopeuden optimointi. Koodimme on ensiluokkaista ja sivut latautuvat nopeasti jo valmiiksi jo-optimoiduilla palvelimillamme, mutta Redis, Autoptimizer ja Cache Enabler sekä pari muuta kikkaa tekevät sivuista vieläkin nopeammat.
  18. Keskitetyt päivitykset päälle. WordPress ja lisäosat eivät saa vanheta, joten aktivoidaan päivitykset.
  19. …päivitetään kaikki. Katsotaan, ettei tässä välissä ole päässyt mikään vanhentumaan. Eli WordPressin core ja lisäosat ajan tasalle.
  20. Analytiikat päälle. Plausible tai Google Analytics, mitä asiakas sitten suosiikaan. Sisäänrakennettuna on asennettuna Koko Analytics. Tästä muuten löytyy bloggaus: Google Analyticsille evästeetön ja yksityisyyttä suojaava vaihtoehto – esittelyssä Plausible ja Koko Analytics
  21. Ylläpidon laskutustekniset asiat kuntoon.
  22. Asiakkaalle tietopaketti julkaisusta, palvelimesta, statussivusta. Tässä kohtaa kerromme, että julkaisu on nyt kunnossa ja saatamme vielä ajaa testejä ja tarkistuslistaa läpi, eikä mitään suurta julkistusta kannata tehdä ihan samalla sekunnilla. Kerromme myös miten tästä eteenpäin, mihin voit ottaa yhteyttä ja mistä saat lisää tietoa. Lähetämme myös tässä kohtaa tai vähän myöhemmin projektityytyväisyyskyselyn, sillä haluamme jatkuvasti kehittyä.
  23. Sisäiset käytännön asiat. Sovitaan retrospektiivi projektissa mukana olleiden kanssa. Tässä istunnossa mietitään mikä meni hyvin ja mikä huonosti. Sovitaan myös tarvittaessa pikainen läpikäynti asiakkaan kanssa. Lisätään ylläpidosta projekti ja aletaan miettimään jatkokehityskohteita…

Huh, onpas siinä! Kauanko tässä oikein menee?

Julkaisun ”näppäisemiseen” kuluu yleensä keskimäärin yhdestä tunnista neljään tuntiin. Etenkin uudistuksissa tulee joskus vastaan jänniä tilanteita, jos vaikka vanha nimipalvelin ei käyttäydykään oletetusti. Kerran esimerkiksi sivut alkoivat näkymään maailmalla heti uusissa laitteissa, mutta oma sisäverkkomme ja asiakkamme sisäverkko haisteli uudet sivut vasta vuorokauden päästä. Nimipalvelu eli DNS on siitä jännä, että se välimuistittaa tiukasti sisällön, vaikka kaikki olisikin päivitetty, siirretty ja nollattu. Jäät ikään kuin eräänlaiseen ”limboon”. Tällöin minimiaika päivittymiselle on 86400 sekuntia (Unix-maailman hassuudet, kaikki ilmoitellaan sekunteina), eli 24 tuntia.

Palvelinasiantuntijana välillä saa myös ihmetellä sähköpostipalvelinten toimintaa. Esimerkiksi sähköpostinvälitystekniikka on välillä kranttua etenkin Microsoft-maailmassa. SPF-tietueita ja blacklisteja on joskus saanut syynätä perinpohjin. Onneksi hyvällä tarkistelulla ja testaamisella asiat kuitenkin menevät aina hienosti.

Haluaisitko julkaista sivustosi meidän kautta? Kiinnostaako laadukas WordPress-sivuston ylläpitopalvelu? Ota ihmeessä yhteyttä niin jutellaan!