Serveri kolimine: kuidas vahetada serverit seisakuta
Serverit ei vaheta keegi lõbu pärast. Põhjus on tavaliselt üks neljast: majutuspakkuja tõstab hinda või lõpetab teenuse, riistvara on vana, praegusest võimsusest jääb väheks, või operatsioonisüsteemi versioon on toeta jäänud ja turvapaiku enam ei tule.
Kolimine ise on rutiinne töö. Halvasti läheb siis, kui seda tehakse kiirustades ja ilma nimekirjata — sest serveris on peaaegu alati rohkem asju, kui esimese hooga meelde tuleb.
Mis halva kolimise juures katki läheb
Kõige nähtavam on seisak: leht on tunde maas, sest andmete kopeerimine võttis oodatust kauem. Aga kallim on see, mida kohe ei märka.
E-post lakkab kohale jõudmast, sest SPF-kirje osutab endiselt vana serveri IP-le. Kirjad ei põrku tagasi — nad lähevad vaikselt rämpsposti ja klient arvab, et te ei vastanud.
Sertifikaat aegub, sest Let's Encrypti uuendus jäi vanasse masinasse ja keegi ei märka enne, kui brauser hakkab hoiatust näitama.
Ajastatud tööd ei käivitu. Varukoopiad, arvete genereerimine, andmevahetus — cron-tööd ei ole üheski koodihoidlas ja neid ei kanta üle, sest keegi ei tea, et need olemas on.
Varukoopiad tehakse edasi vanast masinast. Kõige ohtlikum viga, sest see avastatakse alles siis, kui midagi on vaja taastada.
Kuidas kolimine samm-sammult käib
1. Inventuur
Enne kui midagi puutuda, kirjuta üles, mis serveris päriselt töötab: veebiserver ja selle virtuaalhostid, andmebaasid ja nende versioonid, rakenduste teenused, cron-tööd, tulemüürireeglid, SSL-sertifikaadid, e-posti seadistus, ligipääsuvõtmed ja varunduse sihtkohad.
See nimekiri on kogu töö kõige tähtsam osa. Kõik hilisemad üllatused tulevad sellest, mis siia kirja ei saanud.
2. Uus server valmis enne, mitte kolimise ajal
Uus masin seadistatakse tööle paralleelselt, vana töötab kogu aeg edasi. Kolimine kohapeal — vana serveri uuendamine uueks — on ainus variant, millest ei ole enam tagasiteed.
Sama loogika kehtib ka serveri turvamisel: uus server pannakse korralikult püsti kohe, mitte hiljem.
3. Proovikäivitus enne DNS-i puutumist
Kopeeri andmed üle ja käivita rakendus uues serveris, suunates oma arvuti hosts-faili kaudu domeeni ajutiselt uue IP peale. Nii näed täpselt seda, mida külastaja hakkab nägema — enne kui keegi teine seda näeb.
Siin tulevad välja puuduvad PHP- või teegimoodulid, valed failiõigused ja andmebaasi kodeeringu erinevused.
4. DNS-i TTL alla juba paar päeva varem
Kui domeeni kirje TTL on 24 tundi, kestab ümberlülitus terve ööpäeva. Langeta TTL paar päeva enne kolimist näiteks viie minuti peale — siis toimub vahetus praktiliselt kohe. Pärast õnnestunud kolimist tõsta tagasi.
See üks samm teebki vahet „seisakuta kolimise" ja „päev otsa poolikult tööl saidi" vahel.
5. Andmed kaks korda
Esimene täissünkroonimine tehakse rahulikult ette. Vahetult enne ümberlülitust tehakse teine, ainult muutunud osa — nii jääb tegelik kinnine aken minutitesse, mitte tundidesse. Andmebaasi puhul tähendab see viimast dumpi hetkel, mil kirjutamine on korraks peatatud.
6. Vana server jääb püsti
Ära kustuta vana masinat ümberlülituse päeval. Hoia teda vähemalt paar nädalat töökorras, aga kirjutamise eest suletuna. See on odavaim olemasolev kindlustus.
7. Pärast kolimist
Kontrolli üle: sertifikaat ja selle automaatuuendus, e-posti kohalejõudmine (vt e-kirjade kohaletoimetamise juhend), cron-tööde tegelik käivitumine, varukoopia loomine JA taastamise proov, seire ja hoiatused, logid esimese ööpäeva jooksul.
Mis ununeb kõige sagedamini
Praktikas on nimekiri lühike ja alati sama: cron-tööd, SPF- ja DKIM-kirjed, tulemüüri erandid teiste süsteemide IP-dele, varunduse sihtkoht, sertifikaadi uuendus ja logiroteerimine. Kui need kuus on üle vaadatud, on kolimine suure tõenäosusega terve.
Millal see sisse osta
Kolimine on täpselt see töö, mille juures kogemus maksab kõige rohkem — mitte sellepärast, et see keeruline oleks, vaid sellepärast, et vigade hind avaldub nädalaid hiljem. Kui serveris töötab midagi, mille seisak maksab raha, tasub kolimine ja edasine Linuxi serverite haldus anda kellelegi, kes seda regulaarselt teeb.
Mida haldusleping tavaliselt katab, on kirjas eraldi postituses: mida Linuxi serveri hooldusleping sisaldab. Kui kolitav asi on koduleht või e-pood, käib sellega tihti kaasa ka kodulehtede ja e-poodide haldus.
