Dështim i thjeshtë për faqen e internetit (monitorim + DNS dinamike)

Në këtë artikull dua të tregoj se sa e lehtë dhe falas mund të bëni një skemë dështimi për një faqe interneti (ose ndonjë shërbim tjetër në internet) duke përdorur një kombinim të monitorimit okerr dhe shërbim dinamik DNS. Kjo do të thotë, në rast të ndonjë problemi me sitin kryesor (nga një problem me një "Gabim PHP" në faqe, tek mungesa e hapësirës ose thjesht një numër i vogël i dyshimtë porosish në rastin e një dyqani online), vizitorët e rinj do të të drejtohen te i dyti (i tretë, e kështu me radhë) më tej) një server i njohur që punon, ose në faqen "Më falni", ku ata do të shpjegojnë me mirësjellje se "ka një problem, ne tashmë jemi në dijeni dhe tashmë po e rregullojmë atë, ne do ta rregullojë së shpejti” (dhe në këtë rast ju në fakt tashmë do të jeni në dijeni dhe mund ta riparoni).

Të jetosh me dështim apo pa?

Derisa të ndodhë ndonjë problem, nuk ka shumë ndryshim. Por kur ndodh, pa dështuar shpesh ndodh sa vijon: ju përpiqeni të kuptoni shpejt se cili është problemi, ai nuk funksionon (kopjet rezervë nuk vendosen, softueri për ndonjë arsye nuk funksionon siç duhet nga dokumentacioni , etj.), por nuk ka kohë, nuk ka server - faqet janë të shtrira, klientët po telefonojnë, të gjithë janë në avantazh, ju po përpiqeni ta rregulloni disi atë përafërsisht dhe të ndotur "me shirit", pastaj disi duket se po fillon me paterica dhe jetë. Ju mendoni se në kohën tuaj të lirë do t'ju duhet ta kuptoni më në detaje dhe të ribëni gjithçka bukur, por nuk ka asgjë më të përhershme se sa e përkohshme.

Tani, si ndodh kjo në një version të bukur me një skedar:

  • Ndodh një gabim
  • Gabimi zbulohet automatikisht
  • Alarmi dërgohet
  • Kalimi në një nga serverët rezervë transferohet
  • Me qetësi dhe pa panik, problemi zgjidhet, korrigjohet dhe serveri vihet sërish në funksion.

Kjo skemë, natyrisht, mund të ketë edhe problemet e veta, por megjithatë, skema është lineare, secila fazë është e thjeshtë dhe gjëja kryesore është që mund të korrigjohet veçmas, kështu që mundësia e dështimit të kësaj skeme është shumë më e ulët, dhe të gjitha veprimet mund të automatizohen dhe të kryhen shpejt (ndryshe nga detyra për të gjetur dhe rregulluar katrahurën e panjohur epike). Avioni juaj është ulur në një vend të largët, ju ndizni telefonin tuaj dhe shihni një njoftim në një telegram se serveri është rrëzuar, por gjithçka është në rregull, serveri rezervë është aktivizuar, ju mund të vazhdoni udhëtimin tuaj, nuk keni nevojë për të fluturuar prapa ose për ta riparuar atë nëpërmjet SSH nga kafeneja më e afërt me WiFi. Do ta kuptoni kur të jetë më i përshtatshëm.

E ardhmja është tashmë këtu!

Më parë, problemi kryesor që e bënte dështimin shpesh një zgjidhje të papranueshme ishte shuma e kostos që kushtonte. Ose ishte e nevojshme për të blerë pajisje të shtrenjta (dhe për të ftuar specialistë edhe më të shtrenjtë). Ose ferma kolektive diçka e komplikuar sipas udhëzuesve (madje kam hasur në një opsion ku dy serverë janë të lidhur shtesë me një kabllo modem null, dhe ata dërgojnë një rrahje zemre përmes tij, në mënyrë që në kohën e duhur serveri rezervë ta njohë dhe të marrë përsipër kontroll). Tani ka mënyra më të lehta dhe falas. Nëse keni një uebsajt me macet, nuk ka asnjë justifikim për ju që të mos zbatoni ende failover për të!

Epo, përveç kësaj, për një skemë failover ju nevojitet një server tjetër (dhe ndoshta më shumë se një) dhe më parë kjo ishte një shpenzim i madh, tani mund të merrni një VDS për qindarka.

Faqja më e besueshme me macet

Për të ilustruar praktikisht zgjidhjen me okerr + dns dinamike, ne hapëm faqen tonë të internetit me macet cat.okerr.com. Ne i urrejmë macet, kështu që nuk do të ketë shumë prej tyre atje. Janë tre faqe gjithsej, secila duket përafërsisht e njëjtë (të gjitha në të njëjtin shabllon), por me kotele të ndryshme për ta bërë më të lehtë dallimin, dhe secili shkruan informacion teknik për të parë se si funksionon failover. Faqja përditësohet një herë në çdo 1 minutë, por gjithmonë mund të klikoni rifreskoni në shfletues.

Në informacionin teknik ka një rresht "status=OK". Ndonjëherë serverët shtiren probleme dhe shkruajnë status=ERR. Serveri kryesor "duket se rrëzohet" në 20 minuta të çdo ore (0:20, 1:20, 2:20, ...). Server rezervë në 40 minuta. Serveri i fundit (serveri "më falni") është gjithmonë në punë. Në 0 minuta të çdo ore, serverët primar dhe rezervë "rikthehen".

Dështim i thjeshtë për faqen e internetit (monitorim + DNS dinamike)

Nëse e hapni faqen dhe e lini në skedë, do të shihni se ai nuk rrëzohet kurrë (edhe pse çdo server individual simulon periodikisht një problem), dhe në rast të një problemi me serverin, ai thjesht "drejton" midis serverëve të drejtpërdrejtë. Fotografia, emri dhe adresa e serverit dhe roli i tij do të ndryshojnë. Ndonjëherë mund të kapni momentin kur statusi = ERR (problemi tashmë ekziston, por e gjithë skema e dështimit nuk ka funksionuar ende), por përditësimi tjetër do t'ju tregojë një faqe nga faqja e punës.

Dështimi në okerr + DNS dinamike

Le të shohim se si funksionon nën kapuç. Detyra e skedarit është të sigurojë që adresa cat.okerr.com të tregojë gjithmonë adresën IP të serverit që punon.
Pas secilit prej serverëve që pret faqen tonë të maceve në okerr ka një tregues që kontrollon statusin e tij një herë në minutë.

Dështim i thjeshtë për faqen e internetit (monitorim + DNS dinamike)

Në këtë pamje të ekranit ne shohim se si faqja cat.okerr.com kontrollohet nga serveri alpha.okerr.com. Faqja duhet të përmbajë status=OK, dhe siç e shohim më lart, statusi i treguesit tonë tani është në rregull. Kur serveri "prihet", do të ketë një ERR. (Ky është vetëm një shembull i një treguesi, okerr po monitoron, kështu që ju mund të bashkëngjitni çdo lloj treguesi, për shembull, kontrolloni hapësirën e lirë në disk, numrin e porosive të reja në bazën e të dhënave dhe madje edhe treguesit logjikë, për shembull , natën do të ketë disa kritere gabimi, dhe gjatë ditës të tjera) .

Në cilësimet e projektit krijuam një skemë dështimi me këta tregues:

Dështim i thjeshtë për faqen e internetit (monitorim + DNS dinamike)

Skema ka tre tregues (tre serverë), të ndryshëm në prioritet. Serveri kryesor për sitin është charlie, nëse nuk funksionon (nuk do të ketë "status=OK" ose thjesht është i padisponueshëm), atëherë bravo dhe në rastin e fundit - alfa. Ana e djathtë e faqes tregon statusin e regjistrimit DNS në serverë të ndryshëm.

Për ata që vunë re se përdoret emri cat.he.okerr.com: Ne përdorim një skemë pak më komplekse. Në vend që thjesht të ndryshojmë rekordin DNS të cat.okerr.com, ne ndryshojmë cat.he.okerr.com (në ofruesin Dynamic DNS Uragani Elektrik), dhe cat.okerr.com është një CNAME (alias), i cili nuk ndryshon, gjithmonë tregon te cat.he.okerr.com. Na pëlqen më shumë Hurricane si një DNS dinamik, dhe ai ka çelësa për të menaxhuar një hyrje të vetme (në vend të një zone të tërë), mendojmë se është më i sigurt. Ju gjithashtu nuk keni nevojë të specifikoni fjalëkalimet kryesore në okerr për të menaxhuar të gjithë domenin, por vetëm për një nëndomain ose regjistrim.

Nga rënia në ngritje

Hap pas hapi si funksionon kjo skemë:

  1. Ndodh një problem (i simuluar) në server
  2. Sensori okerr kontrollon statusin e secilit server një herë në minutë dhe raporton te serveri kryesor i projektit në okerr
  3. Treguesi përkatës i serverit ndryshon nga OK në ERR
  4. Kur statusi i treguesit ndryshon, dështimi rillogaritet dhe llogaritet se cila adresë duhet të vendoset (nëse është e nevojshme. Për shembull, nëse serveri kryesor është duke punuar, dhe në të njëjtën kohë serveri rezervë ka vdekur, nuk do të ketë ndryshime i bërë)
  5. Kjo adresë i raportohet shërbimit dinamik dns. Pas përfundimit të kësaj faze, do të shihni statusin e "sinkronizuar" në të djathtë.
  6. Shumë shpejt (sekonda) rekordi do të arrijë në serverët DNS të domenit tuaj (për faqen cat është ns1-ns5.he.net).
  7. Nga ky moment, disa përdorues do të jenë tashmë në serverin e ri të drejtpërdrejtë. Por jo të gjithë serverët DNS në botë i kanë përditësuar ende të dhënat dhe rekordi i vjetër mund të ruhet ende diku. Ju mund të shihni se si të dhënat në serverët DNS publik "vallëzojnë", duke treguar një vlerë të re ose të vjetër. Nëse përditësoni faqen e konfigurimit të dështimit, vetë operatori do të kërkojë të dhëna të reja nga serverët DNS.
  8. Pasi të dhënat janë stabilizuar, rekordi i vjetër i memorizuar është i kalbur kudo - të gjitha 100% të kërkesave shkojnë në serverin e ri.

Për të shpejtuar fazën 7 (shpesh më të gjatë), TTL e regjistrimit dinamik DNS duhet të vendoset sa më ulët që të jetë e mundur. Zakonisht shërbimet lejojnë intervale prej 90-120 sekondash. Ky është një kompromis plotësisht i arsyeshëm.

Përveç kësaj

E gjithë kjo mund të konfigurohet në një mbrëmje (nëse tashmë keni një server rezervë). Të dy shërbimet okerr dhe ato dinamike DNS janë falas. Për të marrë më shumë kontrolle në okerr dhe një periudhë më të shkurtër verifikimi, duhet të përfundoni trajnimin (nga faqja e profilit tuaj). Pas përfundimit, niveli rritet menjëherë (20 tregues në orë + 1 i shpejtë, 10 minuta). Dhe nëse ka pak prej tyre, shkruajini [email mbrojtur], me shumë mundësi do të jetë e mundur të rritet (deri më tani ka pasur gjithmonë një mundësi, nuk e kam refuzuar kurrë, përkundrazi, e kam ofruar vetë). Vetëm se fillimisht nuk dua t'u premtoj të gjithëve gjithçka, nuk jam i sigurt se kam kapacitet të mjaftueshëm për të mbajtur fjalën time. Por deri më tani ka pak përdorues, kështu që nuk ka probleme me rritjen e kufijve.

Çfarë mund të bëjë okerr në përgjithësi - shikoni faqen e internetit prezantim. Në përgjithësi, ky është monitorim (zabbix nga cloud), dhe skedari është një funksion i këndshëm shtesë. Ju gjithashtu mund të përdorni demonstrimin nga faqja pa regjistrim.

Kur ndryshon statusi i treguesit, një njoftim dërgohet me email ose Telegram. (Ne shikuam se çfarë po ndodhte dhe kuptuam se telegrami duket të jetë mesazheri më i besueshëm. Falë RKN për testin e stresit!) Me okerr të konfiguruar saktë, çdo njoftim është ose një sinjal "hiqni gjithçka, duhet ta rregullojmë!" , ose "dritat fikur!" Nuk duhet të ketë asnjë sinjalizim shtesë nga okerra (nëse ka, ato duhet të konfigurohen disi ndryshe). Për shembull, për faqen tonë të maceve, serveri alfa është i fundit dhe nuk falsifikon kurrë një gabim. Nëse ai shtrihet, ne duhet ta dimë. Por serverët e tjerë vazhdimisht shtiren gabime, prandaj, për të mos marrë sinjalizime disa herë në orë, këta tregues kanë një status "të heshtur".

Gjithashtu ka kuptim të krijosh një server me falje (në çdo host më të lirë), i cili ose do të ketë faqen tuaj të faljes (në rast se të gjithë serverët kryesorë dhe rezervë janë të dëmtuar) ose do t'ju ridrejtojë në faqen e statusit në okerr (për shembull, e jona cp.okerr.com/status/okerr) ose statuspage.io.

Burimi: www.habr.com

Shto një koment