VienkārÅ”a kļūmjpārlēce vietnei (uzraudzÄ«ba + dinamisks DNS)

Å ajā rakstā es vēlos parādÄ«t, cik viegli un bez maksas varat izveidot kļūmjpārlēces shēmu vietnei (vai jebkuram citam interneta pakalpojumam), izmantojot uzraudzÄ«bas kombināciju. okerr un dinamiskais DNS pakalpojums. Tas ir, ja rodas problēmas ar galveno vietni (no problēmas ar ā€œPHP kļūduā€ lapā, lÄ«dz vietas trÅ«kumam vai vienkārÅ”i aizdomÄ«gi nelielam pasÅ«tÄ«jumu skaitam tieÅ”saistes veikala gadÄ«jumā), jauni apmeklētāji tiks novirzÄ«ts uz otro (treÅ”o un tā tālāk) zināmu strādājoÅ”u serveri vai lapā ā€œAtvainojietā€, kur viņi pieklājÄ«gi paskaidros, ka ā€œir problēma, mēs jau apzināmies un jau to novērÅ”am, mēs drÄ«z to izlabosā€ (un Å”ajā gadÄ«jumā jÅ«s faktiski jau zināt un varēsit salabot).

Dzīvot ar neveiksmi vai bez tā?

Kamēr nenotiek kāda problēma, nav lielas atŔķirÄ«bas. Bet, kad tas notiek, bez kļūmjpārlēces bieži notiek: jÅ«s mēģināt ātri noskaidrot, kas ir problēma, tas nedarbojas (dublējumi netiek izvietoti, programmatÅ«ra kaut kādu iemeslu dēļ nedarbojas tā, kā vajadzētu no dokumentācijas u.t.t.), bet nav laika, nav servera - vietnes guļ, klienti zvana, visi ir uz malas, jÅ«s mēģināt to kaut kā rupji un netÄ«ri salabot "ar lenti", tad kaut kā sāk darboties ar kruÄ·iem un dzÄ«vÄ«bām. JÅ«s domājat, ka brÄ«vajā laikā jums vajadzēs to izdomāt sÄ«kāk un visu skaisti pārtaisÄ«t, taču nekas nav pastāvÄ«gāks par Ä«slaicÄ«gu.

Tagad, kā tas notiek skaistā versijā ar failu:

  • Notiek kļūda
  • Kļūda tiek noteikta automātiski
  • BrÄ«dinājums tiek izsÅ«tÄ«ts
  • PārslēgÅ”anās uz vienu no rezerves serveriem tiek pārsÅ«tÄ«ta
  • MierÄ«gi un bez panikas problēma tiek atrisināta, novērsta un serveris atkal tiek nodots ekspluatācijā.

Å ai shēmai, protams, var bÅ«t arÄ« savas problēmas, bet tomēr shēma ir lineāra, katrs posms ir vienkārÅ”s un galvenais, ka to var atkļūdot atseviŔķi, tāpēc Ŕīs shēmas neveiksmes iespēja ir daudz mazāka, un visas darbÄ«bas var automatizēt un veikt ātri (atŔķirÄ«bā no uzdevuma atrast un izlabot nezināmas episkās muļķības). Tava lidmaŔīna ir nolaidusies tālā valstÄ«, ieslēdz telefonu un telegrammā redzi paziņojumu, ka serveris ir avarējis, bet viss kārtÄ«bā, rezerves serveris ir aktivizēts, var turpināt ceļojumu, nevajag lai lidotu atpakaļ vai salabotu to caur SSH no tuvākās kafejnÄ«cas ar WiFi . JÅ«s to sapratÄ«sit, kad tas bÅ«s ērtāk.

Nākotne jau ir klāt!

IepriekÅ” galvenā problēma, kas kļūmjpārlēci bieži padarÄ«ja par nepieņemamu risinājumu, bija tās izmaksas. Vai arÄ« bija jāiegādājas dārga aparatÅ«ra (un jāpieaicina vēl dārgāki speciālisti). Vai arÄ« kolhozs kaut kas sarežģīts pēc ceļvežiem (pat saskāros ar variantu, ka divi serveri papildus ir pieslēgti ar nullmodema kabeli, un viņi pa to sÅ«ta sirdspukstus, lai Ä«stajā brÄ«dÄ« rezerves serveris to atpazÄ«st un pārņem kontrole). Tagad ir vieglāk un bezmaksas veidi. Ja jums ir vietne ar kaÄ·iem, jums nav attaisnojuma vēl neieviest tai kļūmjpārlēci!

Turklāt kļūmjpārlēces shēmai ir nepiecieÅ”ams vēl viens serveris (un varbÅ«t vairāk nekā viens), un pirms tam tie bija lieli izdevumi, tagad jÅ«s varat dabÅ«t VDS par santÄ«miem.

Visuzticamākā vietne ar kaķiem

Lai praktiski ilustrētu risinājumu ar okerr + dinamisko dns, mēs atklājām mÅ«su vietni ar kaÄ·iem cat.okerr.com. Mēs ienÄ«stam kaÄ·us, tāpēc viņu tur nebÅ«s daudz. Kopumā ir trÄ«s vietnes, katra izskatās aptuveni vienāda (visas uz vienas veidnes), bet ar dažādiem kaķēniem, lai to bÅ«tu viegli atŔķirt, un katra raksta tehnisko informāciju, lai redzētu, kā darbojas kļūmjpārlēce. Lapa tiek atjaunināta reizi 1 minÅ«tē, taču jÅ«s vienmēr varat pārlÅ«kprogrammā noklikŔķināt uz pārlādēt.

Tehniskajā informācijā ir rinda ā€œstatus=OKā€. Dažreiz serveri izliekas problēmas un raksta status=ERR. Å Ä·iet, ka galvenais serveris ā€œavarējasā€ ik pēc 20 minÅ«tēm katru stundu (0:20, 1:20, 2:20, ā€¦). Rezerves serveris 40 minÅ«tēs. Pēdējais serveris (ā€œatvainojietā€ serveris) vienmēr darbojas. Katras stundas 0 minÅ«tēs tiek ā€œatjaunotiā€ primārie un rezerves serveri.

VienkārÅ”a kļūmjpārlēce vietnei (uzraudzÄ«ba + dinamisks DNS)

Atverot vietni un atstājot to cilnē, jÅ«s redzēsit, ka tā nekad neavārē (lai gan katrs atseviŔķs serveris periodiski simulē problēmu), un gadÄ«jumā, ja rodas problēmas ar serveri, tas vienkārÅ”i ā€œdarbojasā€ starp tieÅ”raides serveriem. MainÄ«sies servera attēls, nosaukums un adrese un tā loma. Dažreiz jÅ«s varat noÄ·ert brÄ«di, kad status = ERR (problēma jau pastāv, bet visa failover shēma vēl nav nostrādājusi), bet nākamais atjauninājums parādÄ«s lapu no darba vietnes.

Kļūmjpārlēce okerr + dinamiskajā DNS

ApskatÄ«sim, kā tas darbojas zem pārsega. Iesniedzēja uzdevums ir nodroÅ”ināt, lai cat.okerr.com adrese vienmēr norādÄ«tu uz strādājoŔā servera IP adresi.
Aiz katra servera, kas mitina mūsu kaķu vietni okerr, ir indikators, kas reizi minūtē pārbauda tā statusu.

VienkārÅ”a kļūmjpārlēce vietnei (uzraudzÄ«ba + dinamisks DNS)

Å ajā ekrānuzņēmumā redzams, kā vietne cat.okerr.com tiek pārbaudÄ«ta no servera alpha.okerr.com. Lapā jāiekļauj status=OK, un, kā redzams iepriekÅ”, mÅ«su indikatora statuss tagad ir OK. Kad serveris ā€œpārlÅ«stā€, bÅ«s ERR. (Å is ir tikai viens indikatora piemērs, okerr novēro, tāpēc varat pievienot jebkura veida indikatorus, piemēram, pārbaudÄ«t brÄ«vo vietu diskā, jauno pasÅ«tÄ«jumu skaitu datu bāzē un pat loÄ£iskos rādÄ«tājus, piemēram, , naktÄ« bÅ«s daži kļūdu kritēriji, bet dienā citi) .

Projekta iestatÄ«jumos mēs izveidojām kļūmjpārlēces shēmu ar Ŕādiem indikatoriem:

VienkārÅ”a kļūmjpārlēce vietnei (uzraudzÄ«ba + dinamisks DNS)

Shēmai ir trÄ«s indikatori (trÄ«s serveri), kas atŔķiras pēc prioritātes. Galvenais vietnes serveris ir čārlijs, ja tas nedarbojas (tam nebÅ«s ā€œstatus=OKā€ vai vienkārÅ”i nav pieejams), tad bravo un pēdējā gadÄ«jumā - alfa. Lapas labajā pusē ir redzams DNS ieraksta statuss dažādos serveros.

Tiem, kas pamanÄ«ja, ka tiek lietots nosaukums cat.he.okerr.com: Mēs izmantojam nedaudz sarežģītāku shēmu. Tā vietā, lai mainÄ«tu tikai cat.okerr.com DNS ierakstu, mēs mainām cat.he.okerr.com (dinamiskā DNS nodroÅ”inātājā Hurricane Electric), un cat.okerr.com ir CNAME (alias), kas nemainās, vienmēr norāda uz cat.he.okerr.com. Mums vienkārÅ”i patÄ«k Hurricane kā dinamisks DNS, un tam ir atslēgas, lai pārvaldÄ«tu vienu ierakstu (nevis veselu zonu), mēs uzskatām, ka tas ir droŔāks. Jums arÄ« nav jānorāda atslēgas paroles okerr, lai pārvaldÄ«tu visu domēnu, bet tikai apakÅ”domēnam vai ierakstam.

No kriŔanas līdz celŔanās

Soli pa solim, kā Ŕī shēma darbojas:

  1. Serverī rodas problēma (imitēta).
  2. okerr sensors pārbauda katra servera statusu reizi minūtē un ziņo galvenajam projekta serverim okerr
  3. Attiecīgais servera indikators mainās no OK uz ERR
  4. Mainoties indikatora statusam, tiek pārrēķināts kļūmjpārlēce, un tiek aprēķināta, kura adrese ir jāiestata (ja nepiecieÅ”ams. Piemēram, ja strādā galvenais serveris un tajā paŔā laikā nomira rezerves serveris, izmaiņas netiks veiktas izgatavots)
  5. Å Ä« adrese tiek paziņota dinamiskajam DNS pakalpojumam. Pabeidzot Å”o posmu, labajā pusē redzēsit statusu ā€œsinhronizētsā€.
  6. Ļoti drīz (sekundes) ieraksts sasniegs jūsu domēna DNS serverus (kaķu vietnei tas ir ns1-ns5.he.net).
  7. No Ŕī brīža daži lietotāji jau bÅ«s jaunajā tieÅ”raides serverÄ«. Bet ne visi DNS serveri pasaulē vēl ir atjauninājuÅ”i ierakstus, un vecais ieraksts joprojām var bÅ«t kaut kur keÅ”atmiņā. Var redzēt, kā ā€œdejoā€ dati publiskajos DNS serveros, rādot jaunu vai vecu vērtÄ«bu. Ja atjaunināsiet kļūmjpārlēces konfigurācijas lapu, operators pats pieprasÄ«s jaunus datus no DNS serveriem.
  8. Pēc datu stabilizācijas vecais keÅ”atmiņas ieraksts visur ir sapuvis - visi 100% pieprasÄ«jumu nonāk jaunajā serverÄ«.

Lai paātrinātu 7. posmu (bieži vien visilgāko), dinamiskā DNS ieraksta TTL ir jāiestata pēc iespējas zemāks. Parasti pakalpojumi pieļauj 90ā€“120 sekunžu intervālu. Tas ir pilnÄ«gi saprātÄ«gs kompromiss.

papildus

To visu var konfigurēt vakarā (ja jums jau ir rezerves serveris). Gan okerr, gan dinamiskie DNS pakalpojumi ir bezmaksas. Lai iegÅ«tu vairāk čeku okerr un Ä«sāku verifikācijas periodu, jums ir jāpabeidz apmācÄ«ba (no sava profila lapas). Pēc pabeigÅ”anas lÄ«menis uzreiz palielinās (20 indikatori stundā + 1 ātrs, 10 minÅ«tes). Un, ja tādu ir maz, rakstiet uz [e-pasts aizsargāts], visticamāk, bÅ«s iespēja palielināt (lÄ«dz Å”im vienmēr ir bijusi iespēja, nekad neesmu atteikusi, tieÅ”i otrādi, pati piedāvāju). VienkārÅ”i sākotnēji es negribu visiem solÄ«t visu, neesmu pārliecināts, ka man ir pietiekami daudz spējas turēt savu vārdu. Bet pagaidām lietotāju ir maz, tāpēc nav nekādu problēmu ar limitu palielināŔanu.

Ko okerr vispār var - paskaties mājaslapā prezentācija. Kopumā tā ir uzraudzība (zabbix no mākoņa), un fails ir jauka papildu funkcija. Demonstrācijai var piekļūt arī no vietnes bez reģistrācijas.

Kad indikatora statuss mainās, paziņojums tiek nosÅ«tÄ«ts pa e-pastu vai telegrammu. (PaskatÄ«jāmies, kas notiek, un sapratām, ka telegramma, Ŕķiet, ir visuzticamākais sÅ«tnis. Paldies RKN par stresa testu!) Ja okerr ir pareizi konfigurēts, jebkurÅ” paziņojums ir vai nu signāls ā€œnomet visu, mums tas ir jāizlabo!ā€ , vai "gaisma nodziest!" No okerras nevajadzētu bÅ«t papildu brÄ«dinājumiem (ja ir, tie ir jākonfigurē savādāk). Piemēram, mÅ«su kaÄ·u vietnei alfa serveris ir pēdējais un nekad nevilto kļūdu. Ja viņŔ apguļas, mums tas ir jāzina. Bet citi serveri pastāvÄ«gi izliek kļūdas, tāpēc, lai nesaņemtu brÄ«dinājumus vairākas reizes stundā, Å”iem indikatoriem ir statuss ā€œklussā€.

Ir arÄ« jēga izveidot sorry serveri (jebkurā lētākajā hostingā), kurā bÅ«s vai nu jÅ«su atvainoÅ”anās lapa (ja nedarbojas visi galvenie un rezerves serveri), vai arÄ« tas novirzÄ«s jÅ«s uz okerr statusa lapu (piemēram, mÅ«su cp.okerr.com/status/okerr) vai statuspage.io.

Avots: www.habr.com

Pievieno komentāru