Në këtë artikull, dëshiroj të tregoj se si mund të krijoni një skemë failover për një web sajt (ose çdo shërbim tjetër në internet) lehtësisht dhe falas duke përdorur monitorimin dhe shërbimin dinamik të DNS-it. Kështu, në rast se ka ndonjë problem me web sajtin kryesor (nga një «Gabim PHP» në faqe, deri te mungesa e hapësirës ose thjesht një numër i dyshimtë por të vogël të porosive në rastin e një dyqani online), vizitorët e rinj do të drejtohen në serverin e dytë (të tretë, e kështu me radhë) që është në funksionim, ose në një faqe të «Kemi një problem», ku do t'u shpjegohet në mënyrë të sjellshme se «ka një problem, ne jemi në dijeni dhe po e zgjidhim, do të rregullohet shpejt» (dhe në këtë rast, ju do të jeni në dijeni dhe do të mund ta rregulloni).
Të jetosh me failover ose pa të?
Derisa ndonjë problem të ndodhë, nuk ka shumë ndryshim. Por kur ndodh, pa failover shpesh ndodhin këto: përpiqeni të kuptoni shpejt se çfarë është problemi, nuk arrini (backup-et nuk rikuperohen, softueri nuk funksionon siç duhet sipas dokumentacionit, etj), por nuk keni kohë, serverët/websajtet janë të rënë, klientët telefonojnë, të gjithë janë të stresuar, përpiqeni të rregulloni në mënyrë të papërshtatshme dhe improvizuar «me ngjitës», më pas diku siç duket niste me ndihmesa dhe vazhdon të funksionojë. Mendoni se më vonë do të duhet të merret me detaje dhe ta rregulloni gjithçka bukur, por nuk ka asgjë më të përhershme se gjërat e përkohshme.
Tani, si ndodh në një variant të bukur me failover:
- Gabimi ndodh
- Gabimi përcaktohet automatikisht
- Dërgohet një njoftim
- Kalohet në një nga serverët rezervë
- Problemi trajtohet qetësisht dhe pa panikë, rregullohet dhe serveri rikthehet në punë.
NĂ« kĂ«tĂ« skemĂ«, sigurisht qĂ« mund tĂ« ndodhin disa pengesa, por prapĂ«sĂ«prapĂ«, skema Ă«shtĂ« lineare, çdo hap kĂ«tu Ă«shtĂ« i thjeshtĂ« dhe mĂ« e rĂ«ndĂ«sishmja â mund tĂ« rregullohet veçmas, pĂ«r kĂ«tĂ« arsye shansi i dĂ«shtimit tĂ« kĂ«saj skeme Ă«shtĂ« shumĂ« mĂ« i ulĂ«t, dhe tĂ« gjitha veprimet mund tĂ« automatizohen dhe tĂ« kryhen me shpejtĂ«si (ndryshe nga pĂ«rpjekja pĂ«r tĂ« gjetur dhe rregulluar njĂ« problem epik tĂ« panjohur). Avioni juaj ka ateruar nĂ« njĂ« vend tĂ« largĂ«t, aktivizoni telefonin dhe shihni nĂ« Telegram njĂ« njoftim se serveri ka rĂ«nĂ«, por gjithçka Ă«shtĂ« mirĂ«, aktivizua serveri rezervĂ«, mund tĂ« vazhdoni udhĂ«timin tuaj, nuk keni nevojĂ« tĂ« flisni prapa, as tĂ« rregulloni pĂ«rmes SSH nga kafeneja mĂ« e afĂ«rt me Wi-Fi. Do ta rregulloni atĂ« kur tĂ« jetĂ« mĂ« e pĂ«rshtatshme.
E ardhmja është tashmë këtu!
MĂ« parĂ«, problemi kryesor qĂ« e bĂ«nte failover njĂ« zgjidhje shpesh tĂ« papranueshme ishte shuma e kostove pĂ«r tĂ«. Ose duhej tĂ« bleje pjesĂ« tĂ« shtrenjta (dhe tĂ« ftoje specialistĂ« edhe mĂ« tĂ« shtrenjtĂ«). Ose tĂ« bĂ«je ndonjĂ« zgjidhje tĂ« ndĂ«rlikuar sipas udhĂ«zimeve (mĂ« ka ndodhur tĂ« shoh njĂ« variant ku dy serverĂ« lidhen me njĂ« kabllo null-modem dhe dĂ«rgojnĂ« heartbeat nĂ«pĂ«rmjet saj, pĂ«r tĂ« siguruar qĂ« nĂ« momentin e duhur serveri rezervĂ« tĂ« dijĂ« dhe tĂ« marrĂ« kontrollin). Tani ka mĂ«nyra mĂ« tĂ« thjeshta dhe falas. NĂ«se keni njĂ« faqe me macja â nuk keni justifikim nĂ«se nuk e keni realizuar ende failover pĂ«r tĂ«!
Po ashtu, për skemën e failover nevojitet edhe një server (ndoshta edhe më shumë) dhe më parë këto ishin shpenzime të mëdha, tani mund të merrni një VDS për pak para.
Faqja më e besueshme me macja
Për ilustro për praktikën e zgjidhjes me okerr + dynamic dns kemi nisur faqen tonë me macja . Ne i urrejmë macet, prandaj aty do të ketë pothuajse asnjë. Ka tre faqe, çdo njëra duket përafërsisht e njëjtë (të gjitha në një model), por me macja të ndryshme për ta bërë më të lehtë dallimin, dhe çdo njëra dhën një informacion teknik për të parë si funksionon failover. Faqja përditësohet vetë çdo 1 minutë, por gjithmonë mund të klikoni rifresko në shfletues.
NĂ« informacionin teknik Ă«shtĂ« njĂ« rresht âstatus=OKâ. NdonjĂ«herĂ« serverĂ«t simulojnĂ« probleme dhe shkruajnĂ« status=ERR. Serveri kryesor âsi do tĂ« bjerĂ«â nĂ« 20 minuta tĂ« çdo ore (0:20, 1:20, 2:20, âŠ). Serveri rezervĂ« (backup) nĂ« 40 minuta. Serveri i fundit (âserveri i kompensimitâ) punon gjithmonĂ«. NĂ« 0 minuta tĂ« çdo ore, serveri kryesor dhe ai rezervĂ« âshkĂ«putenâ.

NĂ«se hapni faqen dhe e lini atĂ« nĂ« skedĂ«n â do tĂ« shihni se ajo kurrĂ« nuk bie (ndonĂ«se çdo server i veçantĂ« simuluar herĂ« pas here njĂ« problem), dhe nĂ« rast tĂ« njĂ« problemi me serverin, thjesht âshkonâ mes serverĂ«ve tĂ« gjallĂ«. Do tĂ« ndryshojĂ« imazhi, emri dhe adresa e serverit dhe roli i tij. NdonjĂ«herĂ« mund tĂ« kapni momentin kur status=ERR (problemi tashmĂ« ka ndodhur, por e gjithĂ« skema e failover nuk ka funksionuar ende), por pĂ«rditĂ«simi i ardhshĂ«m do t'ju tregojĂ« faqen me njĂ« server aktiv.
Failover me okerr + dynamic DNS
Të shohim se si funksionon nën kapak. Objektivi i failover është që adresa cat.okerr.com gjithmonë të tregojë në adresën IP të serverit aktiv.
Pas çdo serveri që mbajnë faqen tonë në okerr ka një indikator, i cili kontrollon gjendjen e saj çdo minutë.

NĂ« kĂ«tĂ« skrin, ne shohim si kontrollohet faqja cat.okerr.com nga serveri alpha.okerr.com. Faqja duhet tĂ« pĂ«rmbajĂ« status=OK, dhe siç e shohim lart, statusi i indikatorit pĂ«r ne tani Ă«shtĂ« OK. Kur serveri âcĂ«nohetâ, do tĂ« jetĂ« ERR. (Ky Ă«shtĂ« vetĂ«m njĂ« shembull i indikatorit, okerr â Ă«shtĂ« monitorim, kĂ«shtu qĂ« mund tĂ« vendosĂ«sh çdo lloj indikatori, pĂ«r shembull, pĂ«r tĂ« kontrolluar hapĂ«sirĂ«n e lirĂ« nĂ« disk, numrin e porosive tĂ« reja nĂ« bazĂ«, dhe madje edhe indikatorĂ« logjikĂ«, pĂ«r shembull, natĂ«n do tĂ« ketĂ« kritere tĂ« ndryshme gabimesh nga ato qĂ« do tĂ« ketĂ« gjatĂ« ditĂ«s).
Në konfigurimin e projektit, ne krijuam një skemë failover me këto indikatore:

NĂ« skemĂ« ka tri indikatore (tri servera), tĂ« ndryshĂ«m sipas prioriteteve. Serveri kryesor pĂ«r faqen Ă«shtĂ« charlie, nĂ«se ai nuk punon (nuk do tĂ« ketĂ« âstatus=OKâ ose thjesht nuk do tĂ« jetĂ« i aksesueshĂ«m), atĂ«herĂ« bravo dhe nĂ« rastin e fundit â alpha. NĂ« pjesĂ«n e djathtĂ« tĂ« faqes tregohet gjendja e regjistrit DNS nĂ« servera tĂ« ndryshĂ«m.
PĂ«r ata qĂ« vĂ«nĂ« re se pĂ«rdoret emri cat.he.okerr.com: Ne pĂ«rdorim njĂ« skemĂ« paksa mĂ« tĂ« komplikuar. NĂ« vend qĂ« thjesht tĂ« ndryshonim regjistrin DNS cat.okerr.com, ne ndryshojmĂ« cat.he.okerr.com (nĂ« ofruesin e Dynamic DNS ), dhe cat.okerr.com â Ă«shtĂ« CNAME (alias), i cili nuk ndryshon, gjithmonĂ« tregon nĂ« cat.he.okerr.com. Hurricane thjesht na pĂ«lqen mĂ« shumĂ« si DNS dinamik, dhe ka çelĂ«sa pĂ«r tĂ« menaxhuar regjistrin e veçantĂ« (dhe jo tĂ« gjithĂ« zonĂ«n), çka na duket mĂ« e sigurt. Ju gjithashtu mund tĂ« mos specifikoni nĂ« okerr fjalĂ«kalimet pĂ«r tĂ« menaxhuar tĂ« gjithĂ« domenin, por vetĂ«m pĂ«r subdomenin apo regjistrin.
Nga rënia në ngritje
Hapat, si funksionon kjo skemë:
- Nis një (simuluar) problem në server
- Sensorii okerr kontrollon gjendjen e çdo serveri çdo minutë dhe raporton te serveri kryesor i projektit në okerr
- Indikatori i serverit përkatës ndryshon gjendjen nga OK në ERR
- Me ndryshimin e statusit tĂ« indikatorit, llogaritet pĂ«rsĂ«ri failover, dhe llogaritet se cila adresĂ« duhet tĂ« vendoset (nĂ«se Ă«shtĂ« e nevojshme. PĂ«r shembull, nĂ«se serveri kryesor punon, ndĂ«rsa nĂ« kĂ«tĂ« kohĂ« Ă«shtĂ« prishur rezervĂ« â nuk do tĂ« ketĂ« ndryshime)
- Kjo adresĂ« raportohet nĂ« shĂ«rbimin dynamic dns. Pas pĂ«rfundimit tĂ« kĂ«tij hapi, nĂ« tĂ« djathtĂ« do tĂ« shihni statusin âsyncedâ
- Shumë shpejt (në sekonda) regjistrimi do të arrijë në serverët DNS të domenit tuaj (në faqen tonë, janë ns1-ns5.he.net).
- Nga tani e tutje, disa përdorues do të fillojnë të kalojnë në serverin e ri të gjallë. Por ende nuk janë përditësuar të gjitha serverët DNS në botë, dhe diku mund të jetë akoma e konservuar regjistrimi i mëparshëm. Mund të shihet si të dhënat në serverët publike DNS "konditore", duke treguar herë të reja, herë të vjetra. Nëse e rifreskoni faqen e konfigurimit të failover, okerr do të kërkojë menjëherë të dhëna të reja nga serverët DNS.
- Pasi të dhënat të stabilizohen, regjistrimi i vjetër i konservuar do të jetë përfunduar - 100% e kërkesave tani shkojnë te serveri i ri.
Për të përshpejtuar fazën 7 ( shpesh faza më e gjatë), TTL e regjistrimit dynamic DNS duhet të vendoset sa më poshtë që të jetë e mundur. Zakonisht shërbimet lejojnë intervale prej 90-120 sekondash. Kjo është një kompromis plotësisht i arsyeshëm.
Shtesë
Të gjitha këto mund të konfiguroni brenda një mbrëmjeje (nëse tashmë keni një server dublues). Edhe okerr, ashtu edhe shërbimet e dynamic DNS janë falas. Për të marrë më shumë kontroll në okerr dhe një periudhë më të shkurtër kontrolli, duhet të kaloni një trajnim (nga faqja e profilit). Pas kalimit, niveli rritet menjëherë (20 indikatorë për orë + 1 i shpejtë, 10 minuta). Nëse ato janë të pamjaftueshme - shkruani në support@okerr.com, ka shumë mundësi të rritet (deri tani ka qenë gjithmonë mundësi, kurrë nuk është refuzuar, përkundrazi, vetë e kam sugjeruar). Thjesht fillimisht nuk dua të premtoj gjithçka për të gjithë, nuk jam i sigurt që do të ketë kapacitet të mjaftueshëm për të mbajtur fjalën. Por për momentin, përdoruesit janë të pakët, kështu që nuk ka probleme me rritjen e kufijve.
ĂfarĂ« mund tĂ« bĂ«jĂ« okerr nĂ« pĂ«rgjithĂ«si - shikoni nĂ« faqe . NĂ« pĂ«rgjithĂ«si, kjo Ă«shtĂ« njĂ« monitorim (zabbix nga re), dhe fileviewer Ă«shtĂ« njĂ« funksion shtesĂ« i kĂ«ndshĂ«m. Gjithashtu, nga faqja mund tĂ« hyni nĂ« demo pa u regjistruar.
Kur ndryshon gjendja e indikatorit - dërgohet një njoftim në email ose Telegram. (Ne pamë çfarë po ndodhte dhe kuptuam që, duket, telegram është mesazheri më i besueshëm. Faleminderit RKN për testin e stresit!) Me konfigurimin e duhur të okerr, çdo njoftim është ose një sinjal "lërni gjithçka, duhet të rregullojmë!", ose "ndaljeni!". Nuk duhet të ketë alerte të panevojshme nga okerr (nëse ka, duhet ndonjëherë të rregullohet ndryshe). Për shembull, për serverin tonë të katamaranit, serveri alpha është i fundit dhe kurrë nuk imiton një gabim. Nëse ai bie - ne duhet të dimë. Por serverët e tjerë vazhdimisht simulojnë gabime, kështu që, për të mos marrë alerte disa herë në orë, këta indikatorë kanë statusin "të qetë".
Ka sens të krijosh gjithashtu një server atëherë (në çdo host më të lirë), i cili ose do të ketë faqen tuaj të ndjeshëm (në rast se të gjithë serverët kryesorë dhe ata rezervë do të jenë të papunë) ose do të redirect në faqen e statusit në okerr (për shembull, kjo është ) ose statuspage.io.
Burimi: habr.com
