Palvelimen siirto ilman käyttökatkoa
Kukaan ei vaihda palvelinta huvikseen. Syy on yleensä yksi neljästä: palveluntarjoaja nostaa hintaa tai lopettaa palvelun, rauta on vanhaa, nykyinen teho ei enää riitä, tai käyttöjärjestelmän versio on tippunut tuen ulkopuolelle eikä tietoturvapäivityksiä enää tule.
Siirto itsessään on rutiinityötä. Pieleen se menee silloin, kun se tehdään kiireellä ja ilman listaa — sillä palvelimella pyörii lähes aina enemmän asioita kuin ensimmäisenä tulee mieleen.
Mikä huonossa siirrossa menee rikki
Näkyvin ongelma on katko: sivusto on alhaalla tunteja, koska datan kopiointi kesti odotettua kauemmin. Kalliimpaa on kuitenkin se, mitä ei heti huomaa.
Sähköposti lakkaa menemästä perille, koska SPF-tietue osoittaa yhä vanhan palvelimen IP-osoitteeseen. Viestit eivät palaudu — ne päätyvät hiljaa roskapostiin ja asiakas luulee, ettet vastannut.
Varmenne vanhenee, koska Let's Encryptin uusinta jäi vanhalle koneelle eikä kukaan huomaa mitään ennen kuin selain alkaa näyttää varoitusta.
Ajastetut työt eivät käynnisty. Varmuuskopiot, laskujen luonti, tiedonsiirrot — cron-työt eivät ole missään koodivarastossa eivätkä siirry mukana, koska kukaan ei tiedä niiden olevan olemassa.
Varmuuskopiot otetaan yhä vanhalta koneelta. Näistä vaarallisin virhe, koska se huomataan vasta silloin, kun jotain pitäisi oikeasti palauttaa.
Näin siirto etenee vaihe vaiheelta
1. Inventaario
Ennen kuin mihinkään koskee, kirjoita ylös mitä palvelimella oikeasti pyörii: web-palvelin ja sen virtuaalipalvelimet, tietokannat ja niiden versiot, sovelluspalvelut, cron-työt, palomuurisäännöt, SSL-varmenteet, sähköpostin asetukset, pääsyavaimet ja varmuuskopioiden kohteet.
Tämä lista on koko työn tärkein osa. Kaikki myöhemmät yllätykset tulevat siitä, mikä ei päätynyt listalle.
2. Uusi palvelin valmiiksi ennen, ei siirron aikana
Uusi kone pystytetään rinnalle vanhan pyöriessä koko ajan. Paikan päällä tehty siirto — vanhan palvelimen päivittäminen uudeksi — on ainoa vaihtoehto, josta ei ole paluuta.
Sama logiikka pätee palvelimen suojaamiseen: uusi kone kovennetaan kunnolla heti, ei myöhemmin.
3. Koeajo ennen kuin DNS:ään kosketaan
Kopioi data ja käynnistä sovellus uudella palvelimella ohjaamalla domain oman koneesi hosts-tiedoston kautta väliaikaisesti uuteen IP-osoitteeseen. Näin näet täsmälleen sen, mitä kävijä tulee näkemään — ennen kuin kukaan muu näkee sitä.
Tässä paljastuvat puuttuvat PHP- tai kirjastomoduulit, väärät tiedosto-oikeudet ja tietokannan merkistöerot.
4. Laske DNS:n TTL jo päiviä aiemmin
Jos tietueen TTL on 24 tuntia, vaihto kestää koko vuorokauden. Laske TTL esimerkiksi viiteen minuuttiin pari päivää ennen siirtoa, jolloin vaihto tapahtuu käytännössä heti. Nosta se takaisin, kun siirto on onnistunut.
Tämä yksi askel tekee eron "katkottoman siirron" ja "koko päivän puolittain toimineen sivuston" välille.
5. Data kahdesti
Ensimmäinen täysi synkronointi tehdään rauhassa etukäteen. Juuri ennen vaihtoa ajetaan toinen, vain muuttuneen osan synkronointi — näin todellinen kiinni oleva ikkuna jää minuutteihin tuntien sijaan. Tietokannan osalta se tarkoittaa viimeistä vedosta hetkellä, jolloin kirjoitukset on hetkeksi pysäytetty.
6. Vanha palvelin jää pystyyn
Älä poista vanhaa konetta vaihtopäivänä. Pidä sitä käynnissä ainakin pari viikkoa, mutta kirjoituksilta suljettuna. Se on halvin saatavilla oleva vakuutus.
7. Siirron jälkeen
Tarkista: varmenne ja sen automaattinen uusinta, sähköpostin perillemeno (ks. opas sähköpostien perillemenoon), että cron-työt oikeasti käynnistyvät, että varmuuskopio syntyy JA että palautus on testattu, valvonta ja hälytykset sekä lokit ensimmäisen vuorokauden ajalta.
Mikä unohtuu useimmiten
Käytännössä lista on lyhyt ja aina sama: cron-työt, SPF- ja DKIM-tietueet, palomuurin poikkeukset muiden järjestelmien IP-osoitteille, varmuuskopioiden kohde, varmenteen uusinta ja lokien kierrätys. Kun nämä kuusi on käyty läpi, siirto on hyvin todennäköisesti terve.
Milloin tämä kannattaa ostaa ulkoa
Siirto on juuri sellaista työtä, jossa kokemus maksaa eniten — ei siksi, että se olisi vaikeaa, vaan siksi, että virheen hinta näkyy vasta viikkoja myöhemmin. Jos palvelimella pyörii jotain, jonka katko maksaa rahaa, kannattaa siirto ja jatkuva Linux-palvelinten ylläpito antaa jollekulle, joka tekee tätä säännöllisesti.
Mitä ylläpitosopimus tavallisesti kattaa, on kerrottu erillisessä kirjoituksessa: mitä Linux-palvelimen ylläpitosopimus sisältää. Jos siirrettävä asia on verkkosivusto tai verkkokauppa, mukaan kuuluu usein myös sivustojen ja verkkokauppojen ylläpito.
