Julkaisu

Deploy-toimenpiteet

Deployn automatisointi tapahtuu Capistranon avulla, joka on osa digitoimisto/dudestack-kokonaisuutta. Ensimmäinen deploy suoritetaan aina Capistranon työkalulla, mutta esim. pienet teemapäivitykset hoidetaan suoralla sftp- tai rsync-yhteydellä.

Muutosten myötä tulee muistaa ngx-pagespeed-välimuistin tyhjennys:

sudo rm -rf /tmp/pgsp/v3/domain.fi

Uusin deployconfig tuotantoon ja stagingiin löytyvät Dropboxista, hakemistopolusta Dude/Palvelin/Deployconfigs (latest).

Vaiheet

Duden julkaisutoimenpiteet eli deploy on monivaiheinen ja varsinaista tiedonsiirtoa ja kansiorakennetta lukuunottamatta (Capistrano) enimmäkseen manuaalinen. Käsipelillä asioiden tekemisellä pyrimme varmistamaan että kaikki menee varmasti kuten pitääkin. Kokonaisuudessaan vaiheisiin kuluu testausta lukuunottamatta aikaa noin varttitunti.

26.4.2018 eteenpäin vaiheet 1, 2 on automatisoitu scripteihin (huomaathan käyttää bashia sh sijaan, sillä ubuntun sh ei tue read-komentoa):

sudo bash /etc/bin/release-site.sh

Vaihe 5 scriptiin:

sudo bash /etc/bin/ssl.sh

Huom! Vaiheiden järjestys on projektikohtainen, seuraavassa esitetty järjestys ei välttämättä päde käynnissä olevaan projektiisi. Julkaisun työvaiheet ovat seuraavat:

1. Virtualhostin luominen tuotantopalvelimelle

Kirjaudu valitulle edustapalvelimelle (ghost.dude.fi, craft.dude.fi). Ota vhost-pohja (Dropbox tai edellinen sivusto) ja tallenna vhost seuraavasti:

sudo pico -w /etc/nginx/sites-available/domain.fi
sudo ln -s /etc/nginx/sites-available/domain.fi /etc/nginx/sites-enabled/domain.fi

Kommentoi piiloon rivit ssl_certificate ja ssl_certificate_key tässä vaiheessa, sillä sertifikaattia ei voida hakea ennen kuin domain on toiminnassa. Tallenna näppäinyhdistelmillä ctrl + o ja poistu ctrl + x näppäimillä.

2. Kansioiden ja käyttöoikeuksien luominen

Luo tarvittavat kansiot:

sudo mkdir -p /var/www/domain.fi && sudo mkdir -p /var/www/domain.fi/public_html && sudo mkdir -p /var/www/domain.fi/tmp

Vaihda väliaikaisesti käyttöoikeudet itsellesi deployta varten:

sudo chown -R $(whoami) /var/www/domain.fi

Testaa syntaksivirheiltä:

sudo nginx -t

Käynnistä nginx uudelleen:

sudo service nginx restart

3. Deploy-config tiedoston asettaminen

digitoimisto/dudestackin aloitusscripti (lisää kohdassa Projektin aloitus) määrittää oletuskonffit valmiiksi, mutta julkaistaessa on hyvä tarkistaa että config on ajan tasalla. Ensin säädä siis config/deploy/production.rb -tiedosto kuntoon.

4. Nimipalvelinten ohjaus

Ylläpitoasiakkaille: Ota talteen domainin siirtoavain tai välittäjänvaihtotunnus (siirtyvä domain) tai rekisteröi uusi domain. Tämän jälkeen päivitä nimipalvelimet Cloudflarelle. Lisää @ ja www -tietueet osoittamaan valitulle palvelimelle (craft: 185.87.110.7, ghost: 185.87.110.9).

Odota kun domain tulee voimaan. Jos aikataulu on kriittinen, voit testata tuotantopalvelimen jo etukäteen lisäämällä rivin /etc/hosts-tiedostoon seuraavasti:

185.87.110.7 domain.fi www.domain.fi

5. HTTPS-sertifikaatti

Kun nimipalvelimet ovat päivittyneet, laita SSL-sertifikaatti paikalleen:

sudo bash /etc/bin/ssl.sh

Vanha tapa:

/opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/domain.fi/public_html -d domain.fi -d www.domain.fi

Jos palvelimella on ohjauksia muista domaineista, lisää seuraava ennen muita location-blokkeja ohjausten server-blokkien sisään:

location /.well-known/ {
    root /var/www/domain.fi/public_html;
}

6. Tietokantatunnuksen ja käyttöoikeuksien luominen tuotantopalvelimelle

Kirjaudu tuotannon tietokantapalvelimelle (beardfish.dude.fi, faith.dude.fi) ja luo tietokanta seuraavilla komennoilla (kohtiin projektinnimi, turvallinensalasana ja edustapalvelimesta riippuen 192.168.0.5 (craft) tai 192.168.0.7 (ghost)):

CREATE USER 'käyttäjänimi'@'192.168.0.5' IDENTIFIED BY 'turvallinensalasana';
GRANT ALL PRIVILEGES ON käyttäjänimi.* TO 'tietokannannimi'@'192.168.0.5';
FLUSH PRIVILEGES;

Nämä komennot löytyvät myös kun painat ylöspäin, jos olet laittanut ne aikaisemminkin. Lopuksi kirjaudu ulos palvelimelta.

7. Luo tietokanta tuotantopalvelimelle

Kirjaudu SSH-tunneloinnin avulla (Sequel Pro) tietokantapalvelimelle. Luo tyhjä tietokanta valitsemallesi nimelle.

8. Siirrä tietokanta

Exporttaa tietokanta staging-ympäristöstä (gunship.dude.fi) ja importtaa se tuotantoympäristöön (Sequel Pro).

9. Aja ensimmäinen (initial) deploy ja lisää ympäristön määrittelyt ja tunnukset .env-tiedostoon

Tarkista tässä vaiheessa että composer.json-tiedosto on ajan tasalla ja sisältää kaikki oleelliset lisäosat. Sitten aja deploykomento projektikansiossa:

cap production deploy

Ensimmäisellä kerralla saat virheen, tämä on normaalia.

00:02 deploy:check:linked_files
      ERROR linked file /var/www/domain.fi/deploy/shared/.env does not exist on 185.87.110.7

Kopioi hakemistopolku talteen ja luo .env-tiedosto seuraavasti

sudo pico -w /var/www/domain.fi/deploy/shared/.env

Liitä .env-tiedosto projektikansiosta muuttaen saltteja ja avaimia lukuunottamatta tiedot vastaamaan tuotantoa (WP_ENV=production).

10. Siirrä ja optimoi mediakirjasto

Kirjaudu staging-palvelimelle SFTP:llä (craft.dude.fi) ja hae kuvat projektihakemistosi shared/media -kansiosta. Tämän jälkeen vedä media-kansio ImageOptimin läpi.

Siirrä optimoidut kuvat tuotantopalvelimelle /var/www/domain.fi/deploy/shared/media -kansioon.

11. Julkaisu! Aja varsinainen deploy-komento

On virallisen julkaisutoimenpiteen aika. Aja uudestaan komento:

cap production deploy

13. Ohjaa testiympäristö tuotantoon

Muokkaa testiympäristön vhostia:

sudo pico -w /etc/nginx/sites-enabled/asiakas.dude.fi

Lisää rivi:

rewrite ^/projektinnimi(.*)$ https://www.domain.fi permanent;

Testaa syntaksivirheiltä:

sudo nginx -t

Tallenna ja käynnistä nginx-prosessit uudelleen:

sudo service nginx restart

14. Loppusilaukset, käyttöoikeuksien tarkistus ja sivuston testaus

Vaihda käyttöoikeudet ja varmista samalla että tiedostojen lisääminen mediakirjastoon toimii:

sudo chown -R www-data:developers /var/www/domain.fi && sudo chown -R $(whoami) /var/www/domain.fi/public_html/content/themes && sudo chown -R $(whoami) /var/www/domain.fi/tmp && sudo chmod -R 775 /var/www/domain.fi/public_html/content && sudo chmod -R 775 /var/www/domain.fi/deploy/current/content && sudo chmod -R 775 /var/www/domain.fi/deploy/shared

Käy sivut läpi niin edustan puolella kuin wp-adminissakin ja katso että kaikki toimii. Sitten siirry käymään tarkistuslistaa läpi.

Tarkistuslista

Ennen julkaisua ja julkaisun jälkeen käydään aina seuraava tarkistuslista huolellisesti läpi. Lista löytyy myös Dropboxista, kansiosta Dude/Tärkeät asiakirjat/Muut/Ennen julkaisua huomioitavaa.todo, jota on ylläpidettävä samaan tahtiin kuin alla olevaa. Dokumentin voi myös kopioida projektikansioon ja ruksata SublimeTextin PlainTasks -packagea hyödyntämällä.

Ennen julkaisua

☐ WordPressin yleiset asetukset kuntoon
☐ Favicon (Mukautin > Sivuston identiteetti)
☐ Somejakojen fallback -kuva kohdilleen (Yoast SEO: SEO > Social > Facebook > Image URL. SEO Framework: SEO > Social Meta Settings > Social Image Fallback URL)
☐ SEO: katso vähintään ettei etusivun SEO-tiedoissa lue ”Etusivu”
☐ Testaa templatet läpi: haku, arkisto, avainsanat, ym., disabloi turhat tarvittaessa
☐ Google Analytics paikalleen
☐ Uudelleenohjaukset tarpeen vaatiessa palvelinpäästä
☐ Bloggauksen muotoilujen tarkistaminen, testaa blockquote, H1-H6, jne. (kopioi mallipohja tästä)
☐ Lomakkeiden testaus
☐ Teemaan screenshot.png päivittäminen teeman näköiseksi
☐ style.css – teeman tiedot kuosiin ja päivitystiedot eli toinen kommenttiblokki pois
☐ Optimoi mediakirjaston kuvat ImageOptimilla tai aja Imagifyn bulk optimizer läpi
☐ Aja teeman kuvakansio ImageOptimin läpi
☐ Lisää maksullisien lisäosien lisenssit paikalleen
☐ WordPress-päivitykset ajan tasalle
☐ Jos sopii projektiin, asia sovittu tai kyseessä on sivustouudistus: kuvakaappauksia Google-näkyvyyden tilanteesta ennen julkaisua, jotta voi myöhemmin tarkastella miten meni
☐ Saavutettavuustestaus aXe-lisäosalla (nämä tosin pitäisi tehdä jo projektin aikana, mutta viimeistään tässä vaiheessa)
☐ HTML-validointi HTML validator devtools-työkalulla
☐ Saavutettavuus-check: Jos monikielinen sivusto, tarkista, että wp_localize_script stringit lukulaitteille (screenReaderText) ovat oikealla kielellä
☐ Duden logo footeriin, varmista kuitenkin asiakkaalta ensin lupa tähän. Ks. Handbookin ohjeet logon lisäämiseksi
☐ Testaa Internet Exporer 11 ja Edge Windows-koneella, erityisesti SVG-maskit
☐ 4K-testaus, tarkista erityisesti että fontit eivät skaalaudu liian isoiksi ja otsikot hypi neljälle riville

Julkaisun jälkeen

☐ Staging-sivuston ohjaaminen päädomainiin palvelintasolla
☐ Välimuistit päälle (Redis, valittu välimuistilisäosa kuten Cache Enabler tai WP Rocket, jos tarpeen)
☐ ManageWP päälle ja Orion-testaus (vain ylläpitoasiakkaat)
☐ Trello-kortti hostingeihin (vain ylläpitoasiakkaat)
☐ HTTPS-sertifikaatti Let’s Encryptille kuntoon ja auto renewin tarkistys dry runilla (vain ylläpitoasiakkaat)
☐ Backupit päälle (muokkaa /etc/bin/backup.conf ja lisää uudelle riville domainnimi.fi, tietokannannimi) (vain ylläpitoasiakkaat)
☐ Maililla tieto asiakkaalle joka kuukauden huoltokatkosta sekä status.dude.fi osoite (vain ylläpitoasiakkaat)
AdminLabs -seuranta päälle
☐ Lomakkeiden testaus vielä kertaalleen ja asiakkaalta varmistus että viestit tulee perille
☐ Asiakastyytyväisyyskysely (Typeform)
☐ Lisätään asiakkaan yhteyshenkilöt Duden uutiskirjeen vastaanottajiksi

Tarvittaessa/extraa

☐ Nopeuden testaus PageSpeed Insightin
☐ Nopeuden testaus KeyCDN palvelulla
☐ Konfiguroi sitemap gulpiin ja aja gulp uncss kun tiedät että CSS:ään ei tule enää muutoksia
☐ Testaa saavutettavuus erityisen huolellisesti oheisen checklistan avulla: Web Accessibility Checklist
Varmuuskopiot vanhasta saitista
☐ HTML:n validointi W3 validaattorilla
☐ CSS:n validointi W3C W3C CSS Validation Servicessä
☐ Mikroformaatit, schemat, ks. Google Rich Snippets
Webdev checklist

Viimeksi muokattu käyttäjän Roni Laukkarinen toimesta viestillä "HTML validator", katso muutos 662dcb5 GitHubissa. Näytä versiohistoria.

3.4.2019 12:06:38 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "HTML validator", katso muutos 662dcb5 GitHubissa.

3.4.2019 11:51:09 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Ohjeet somejakofallback-kuvalle", katso muutos 798f58a GitHubissa.

3.4.2019 11:47:06 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Linkit", katso muutos 2330400 GitHubissa.

3.4.2019 11:45:20 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Checklist ajan tasalle", katso muutos cb833ea GitHubissa.

8.1.2019 09:29:00 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Tallennus", katso muutos 708e694 GitHubissa.

8.1.2019 09:28:04 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Merge conflict", katso muutos a4c0173 GitHubissa.

8.1.2019 09:25:46 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Redis ym. checklistiin", katso muutos ff5a8e1 GitHubissa.

8.1.2019 09:23:28 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Varmuuskopiokomennon linkkaus", katso muutos 4775fee GitHubissa.

2.1.2019 09:18:41 Muokattu käyttäjän Timi Wahalahti toimesta viestillä "Syncing _pages/julkaisu.md from WordPress at https://handbook.dude.fi/wp (Dude Handbook) - wpghs", katso muutos d59a7a7 GitHubissa.

2.1.2019 08:46:34 Muokattu käyttäjän Timi Wahalahti toimesta viestillä "Syncing _pages/julkaisu.md from WordPress at https://handbook.dude.fi/wp (Dude Handbook) - wpghs", katso muutos b38753c GitHubissa.

21.12.2018 09:10:19 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Mailchimp", katso muutos 1cc10e5 GitHubissa.

28.11.2018 13:08:20 Muokattu käyttäjän GitHub toimesta viestillä "Lisää kohta SEO jutuista julkaisun yhteydessä", katso muutos e09ec88 GitHubissa.

14.11.2018 19:29:52 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Lisäys julkaisun checklistaan", katso muutos f166240 GitHubissa.

14.11.2018 16:53:37 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Lisää validoinnista", katso muutos 3350683 GitHubissa.

4.9.2018 11:51:47 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Lisäys, jotta muistaa disabloida esim. haun simppeleiltä saiteilta", katso muutos 612a7cb GitHubissa.

4.9.2018 11:51:04 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Trello-kortti hostingeihin checklistalle", katso muutos cce70a2 GitHubissa.

20.8.2018 06:02:32 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Backuppaus checklistaan", katso muutos 3e1a6d9 GitHubissa.

26.4.2018 11:36:50 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Huomio bashista", katso muutos 029800b GitHubissa.

26.4.2018 11:36:21 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Muistioon scriptit", katso muutos d1fb1a8 GitHubissa.

25.4.2018 13:59:54 Muokattu käyttäjän Roni toimesta viestillä "Syncing _pages/julkaisu.md from WordPress at https://handbook.dude.fi/wp (Dude Handbook) - wpghs", katso muutos 86e342c GitHubissa.

25.4.2018 13:01:00 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Desktop-näkymän läpikäynnistä muistutus", katso muutos f3a7c70 GitHubissa.

10.4.2018 15:35:06 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Tieto huoltokatkoista ja statussivusta", katso muutos 2ffaa28 GitHubissa.

10.4.2018 15:34:14 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "README.md", katso muutos 43f1ef5 GitHubissa.

21.2.2018 13:50:00 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Checklistiin esteettömyys-tsekkaus screen-reader-textien kielen osalta", katso muutos 1d64ce4 GitHubissa.

17.11.2017 08:25:16 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Esteettömyystestaus", katso muutos 2e4b175 GitHubissa.

8.11.2017 17:47:33 Muokattu käyttäjän Timi Wahalahti toimesta viestillä "Syncing _pages/julkaisu.md from WordPress at https://handbook.dude.fi/wp (Dude Handbook) - wpghs", katso muutos 232fea0 GitHubissa.

31.10.2017 14:36:54 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Huomio järjestyksestä", katso muutos 9a8d0b5 GitHubissa.

27.10.2017 09:45:47 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Välimuistista maininta", katso muutos 1c76290 GitHubissa.

26.10.2017 15:22:48 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Kielioppi, lisäys loppusilauksen käyttöoikeuksista", katso muutos c246bf5 GitHubissa.

26.10.2017 13:15:46 Muokattu käyttäjän Roni Laukkarinen toimesta viestillä "Lisää testiympäristön ohjaus vaiheisiin", katso muutos 9c1b54d GitHubissa.

Tämä Handbook kertoo kuinka me teemme asioita Dudella, mutta saa ottaa koppia myös omaan toimintaan. Emme takaa että kaikki meidän jutut toimivat muilla samalla tavalla. Ole mitä olet! Kaikki on avointa GitHubissa: digitoimistodude/handbook