Selles artiklis nĂ€itan, kui lihtne ja tasuta on luua failover-skeem veebisaidi (vĂ”i mĂ”ne muu internetiteenuse) jaoks, kasutades monitooringut ja dĂŒnaamilist DNS-i teenust. See tĂ€hendab, et igasuguste probleemide korral peamise saidiga (alates lehe âPHP Errorâ probleemidest kuni ruumi puudumise vĂ”i lihtsalt kahtlaselt vĂ€hese tellimuste arvuni veebipoes) suunatakse uued kĂŒlastajad teisele (kolmandale jne) teadaolevalt töötavale serverile vĂ”i âVabandameâ lehele, kus neile sĂ”bralikult selgitatakse, et âon probleem, me oleme juba teadlikud ja parandame peagiâ (ja te sel juhul olete tĂ”epoolest juba teadlik ja saate parandada).
Elada failoveri olemasolu vÔi puudumisega?
Kun probleem hakkab tekkima, pole erilist vahet, kuni see juhtub. Kuid kui probleem ilmneb, siis ilma failoverita toimub sageli jĂ€rgmist: proovite kiiresti aru saada, mis toimub, kuid see ei Ă”nnestu (varukoopiad ei tööta, tarkvara mingil pĂ”hjusel ei kĂ€i vastavalt dokumentatsioonile jne), aega ei ole, serverid ja saidid on maas, kliendid helistavad, kĂ”ik on nĂ€rvis, proovite kuidagi âlinkidaâ asja kokku, kuni see kuidagi jĂ€lle tööle hakkab. Te arvate, et tulevikus oleks tark sĂŒgavamalt aru saada ja kĂ”ik korralikult ĂŒle teha, kuid ei ole midagi pĂŒsivamat kui ajutine.
NĂŒĂŒd, kuidas see toimub kauni variandiga failover'iga:
- TÔrked tekivad
- TÔrge tuvastatakse automaatselt
- Teavitus saadetakse
- KĂ€ivitub ĂŒleminek ĂŒhele varuserveritest
- Rahu ja ilma paanikata selgitatakse probleem, fikseeritakse see ja server taaskÀivitub.
Selles skeemis vĂ”ivad loomulikult esineda omad tĂ”rked, kuid see on siiski lineaarne skeem, kus iga etapp on lihtne ja oluline on see, et seda saab eraldi siluda. SeetĂ”ttu on selle skeemi tĂ”rgete tĂ”enĂ€osus palju vĂ€iksem, ning kĂ”ik toimingud saab automatiseerida ja need toimivad kiiresti (erinevalt ĂŒlesandest leida ja parandada tundmatut epilist probleemi). Teie lennuk on maandunud kauges riigis, lĂŒlitate telefoni sisse ja nĂ€ete Telegramis teavitust, et server on kukkunud, kuid kĂ”ik on korras, varu-server on aktiveeritud. Saate oma reisi jĂ€tkata, ei pea tagasi lendama ega SSH kaudu lĂ€himast WiFi-kohvikust parandama. Lahendate selle siis, kui teile sobib.
Tulevik on juba siin!
Varem oli peamine probleem, mis tegi failover'i sageli vastuvĂ”etamatuks lahenduseks, seotud sellega, kui palju see maksma lĂ€ks. Ent oli vaja osta kallid seadmed (ning palgata veel kallimaid spetsialiste). VĂ”i mĂ”elda vĂ€lja midagi keerulist juhendite jĂ€rgi (olen isegi nĂ€inud varianti, kus kaks serverit on ĂŒhendatud null-modemi kaabli kaudu ja edastavad selle kaudu heartbeat'i, et varuserver saaks Ă”igel hetkel teada ja vĂ”tta juhtimise ĂŒle). Praegu on olemas lihtsamaid ja tasuta lahendusi. Kui teil on kasside tĂ”ttu kuulsust saanud veebisait â ei ole teil Ă”igustatust, kui te pole endiselt failover'it rakendanud!
Lisaks vajab failover skeem ka serverit (vĂ”i vĂ”ib-olla isegi mitut) ja varem olid kulud suured, nĂŒĂŒd saab VDS-i vĂ”tta vĂ€ga madala hinnaga.
UsaldusvÀÀrseim kasside veebisait
Praktilise nĂ€itena lahendusest okerr + dynamic dns oleme kĂ€ivitanud oma kasside veebisaidi . Me ei salli kasside kohalolekut, seega neid seal peaaegu pole. Kokku on kolm saiti, mis kĂ”ik nĂ€evad vĂ€lja enam-vĂ€hem samad (kĂ”ik on ĂŒhe ŃĐ°Đ±Đ»ĐŸĐœil), kuid erinevate kassidega, et neid oleks lihtne eristada, ja igaĂŒks annab tehnilist teavet, et nĂ€ha, kuidas failover töötab. Leht uuendatakse ise iga minuti tagant, kuid alati saab brauseris vajutada reload nuppu.
Tehnilises teabes on rida âstatus=OKâ. MĂ”nikord simuleerivad serverid probleeme ja kirjutavad status=ERR. Peamine server ânagu kukubâ iga tunni 20. minutist (0:20, 1:20, 2:20 jne). Varu (backup) server 40. minutist. Viimane server (âsorryâ-server) töötab alati. Iga tunni 0. minutis, peamine ja varu server âtaastuvadâ.

Kui avate saidi ning jÀtate selle vahekaardile, nÀete, et see ei kuku kunagi kokku (kuigi iga eraldi server simuleerib aeg-ajalt probleemi). Serveri probleemide korral liigub see lihtsalt elavate serverite vahel. Pilt, nimi ja serveri aadress ning selle roll muutuvad. MÔnikord vÔib tabada hetke, kui status=ERR (probleem on juba olemas, kuid terve failover-skeem ei ole veel kÀivitatud), kuid jÀrgmine uuendus nÀitab teile lehte töökohalt.
Failover okerr + dĂŒnaamiline DNS
Vaadakem, kuidas see kapoti all töötab. Failoveri ĂŒlesanne on, et aadress cat.okerr.com viitaks alati töötava serveri IP-aadressile.
Iga meie ĐŸĐșerr'is asuva serveri taga, mis hoiab meie kodulehte, on indikaator, mis kontrollib selle staatust kord minutis.

Sellel ekraanil nĂ€eme, kuidas kontrollitakse veebisaiti cat.okerr.com serverist alpha.okerr.com. Leht peab sisaldama status=OK ja nagu nĂ€eme ĂŒlal, on meie staatuse indikaator praegu OK. Kui server "katkeb", kuvatakse ERR. (See on ainult ĂŒks indikaatori nĂ€ide, okerr on jĂ€lgimissĂŒsteem, seega vĂ”ib kinnitada igasuguseid indikaatoreid, nĂ€iteks kontrollida vaba kettaruumi, uute tellimuste arvu andmebaasis ja isegi loogilisi indikaatoreid, kus öösel on ĂŒhe tĂŒĂŒpi veakriteeriumid ja pĂ€eval teised).
Projektiseadetes oleme loonud failover skeemi nende indikaatoritega:

Skeemis on kolm indikaatorit (kolm serverit), erineva prioriteediga. Peamine server veebisaidi jaoks on charlie; kui see ei tööta (ei ole "status=OK" vÔi lihtsalt kÀttesaamatu), siis toimib bravo ja viimase vÔimalusena alpha. Lehe paremas osas nÀidatakse DNS-kirje olekut erinevates serverites.
Neile, kes on mĂ€rganud, et kasutatakse nime cat.he.okerr.com: kasutame veidi keerulisemat skeemi. Selle asemel, et lihtsalt muuta DNS-kirjet cat.okerr.com, muudame cat.he.okerr.com (dĂŒnaamiliste DNS-teenuste pakkujas, ), cat.okerr.com on CNAME (alias), which remains unchanged and always points to cat.he.okerr.com. We simply prefer Hurricane as our dynamic DNS, as it offers keys to manage individual records (rather than the entire zone), providing an added layer of security. You can also avoid specifying passwords-keys in okerr to manage the entire domain, only for a subdomain or record.
From drop to rise
Step by step, how this scheme works:
- A problem occurs (is simulated) on the server
- The okerr sensor checks the status of each server once a minute and reports to the main project server in okerr
- The indicator of the relevant server changes its status from OK to ERR
- When the indicator status changes, failover is recalculated, determining which address needs to be set (if necessary. For example, if the main server is operational while the backup has failed â no changes will occur)
- This address is reported to the dynamic DNS service. Upon completion of this stage, you will see the status 'synced' on the right
- Very soon (within seconds), the record will reach your domain's DNS servers (for the site, this is ns1-ns5.he.net).
- Alates sellest hetkest saavad mĂ”ned kasutajad juba uuele elavale serverile pÀÀseda. Kuid mitte kĂ”ik DNS serverid maailmas ei ole veel kirjeid vĂ€rskendanud ja kuskil vĂ”ib veel olla varem salvestatud kirje. Avalikes DNS serverites vĂ”ib nĂ€ha, kuidas andmed "tantsivad", nĂ€idates kord uut, kord vana vÀÀrtust. Kui uuendada failover'i seadete lehte, kĂŒsib server endiselt uusi andmeid DNS serveritelt.
- PĂ€rast seda, kui andmed on stabiliseerunud, on vana vahemĂ€lus olev kirje igal pool aegunud â kĂ”ik 100% pĂ€ringutest suunatakse uuele serverile.
7. etapi (mis on sageli kĂ”ige pikem) kiirendamiseks tuleb dĂŒnaamilise DNS kirje TTL seadistada vĂ”imalikult madalale. TĂŒĂŒpiliselt lubavad teenused intervalle 90â120 sekundit. See on tĂ€iesti mĂ”istlik kompromiss.
Lisaks
KĂ”ike seda saab seadistada ĂŒhe Ă”htu jooksul (kui teil on juba duplikaatserver). Nii okerr kui ka dĂŒnaamilise DNS-i teenused on tasuta. Okerris rohkemate kontrollide ja lĂŒhema kontrollimistĂ€htaja saamiseks tuleks lĂ€bida koolitus (profiililehe kaudu). Koolituse lĂ”petamisel tĂ”useb kohe tase (20 indikaatorit tunni jooksul + 1 kiire, 10-minutiline). Ja kui seda jÀÀb vĂ€heks â kirjutage support@okerr.com, tĂ”enĂ€oliselt on vĂ”imalik tĂ”sta (praegu on alati olnud vĂ”imalus, kunagi ei ole keeldutud, vastupidi, olen ise pakkunud). Lihtsalt alguses ei taha ma kĂ”igile kĂ”ike lubada, ei ole kindel, kas piisab ressurssidest, et oma sĂ”na pidada. Aga praegu on kasutajaid vĂ€he, seega pole limiitide tĂ”stmisest probleeme.
Mida okerr ĂŒldse teha suudab â vaadake veebilehelt . Ăldiselt on see jĂ€lgimine (zabbix pilves), ja failide haldamine on meeldiv lisafunktsioon. Samuti saab veebilehelt registreerimata demoversiooni kĂŒlastada.
Indikaatori seisundi muutumisel saadetakse teavitus e-posti vÔi Telegrami kaudu. (Vaatasime, mis toimub, ja selgus, et Telegram tundub olevat kÔige usaldusvÀÀrsem sÔnumitooja. AitÀh RKN-ile stressitesti eest!) Kui okerr on Ôigesti seadistatud, siis on iga teavitus kas signaal "jÀtke kÔik kÔrvale, peab parandama!" vÔi "peate tagasi!". Okerilt ei tohi olla liigseid hÀireid (kui neid on, tuleb seadistada kuidagi teisiti). NÀiteks meie kotosaidi server alpha on viimasena ja ei simuleeri kunagi viga. Kui see kokku kukub, peame sellest teadma. Kuid teised serverid simuleerivad pidevalt vigu, seetÔttu, et mitte saada hÀireid mitu korda tunnis, on nende indikaatorite staatus "vaikne".
On mÔtet luua ka sorry-server (igasugusele odavale hostimisele), mis kas kuvab teie vabanduse lehte (juhul, kui kÔik peamised ja varuserverid on maas) vÔi suunab okerri staatuse lehele (nÀiteks meie ) vÔi statuspage.io.
Allikas: habr.com
