Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Fis-sajf, kemm l-attività tax-xiri kif ukoll l-intensità tal-bidliet fl-infrastruttura tal-proġetti tal-web tradizzjonalment jonqsu, jgħidilna l-Kaptan Ovvju. Sempliċement għax anke speċjalisti tal-IT kultant imorru vaganza. U CTO wkoll. Huwa aktar u aktar diffiċli għal dawk li jibqgħu fil-kariga, iżda dan mhux il-punt issa: forsi għalhekk is-sajf huwa l-aħjar perjodu biex bil-mod il-mod taħseb dwar l-iskema ta’ riservazzjoni eżistenti u tfassal pjan biex titjieb. U l-esperjenza ta 'Yegor Andreev minn AmminDiviżjoni, li tkellem dwaru fil-konferenza Jum uptime.

Hemm diversi nases li tista' taqa' fihom meta tibni siti ta' backup. U huwa assolutament impossibbli li tinqabad fihom. U dak li jħassarna f’dan kollu, bħal f’ħafna affarijiet oħra, huwa l-perfezzjoniżmu u... l-għażż. Aħna qed nippruvaw nagħmlu kollox, kollox, kollox perfettament, iżda m'għandniex bżonn nagħmluh perfettament! Għandek bżonn biss tagħmel ċerti affarijiet, iżda tagħmelhom b'mod korrett, timlahom sabiex jaħdmu sew.

Failover mhuwiex xi tip ta 'gost, ħaġa divertenti; din hija ħaġa li għandha tagħmel eżattament ħaġa waħda - tnaqqas il-perijodi ta' waqfien sabiex is-servizz, il-kumpanija, titlef inqas flus. U fil-metodi kollha ta 'riżerva, nissuġġerixxi li taħseb fil-kuntest li ġej: fejn huma l-flus?

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

L-ewwel nassa: meta nibnu sistemi kbar u affidabbli u nidħlu fis-sensji, innaqqsu n-numru ta 'inċidenti. Dan huwa kunċett żbaljat terribbli. Meta nidħlu f'sensja, x'aktarx inżidu n-numru ta 'inċidenti. U jekk nagħmlu kollox sew, allura kollettivament innaqqsu l-waqfien. Se jkun hemm aktar inċidenti, iżda se jseħħu bi spejjeż aktar baxxi. X'inhi riserva? - din hija kumplikazzjoni tas-sistema. Kwalunkwe kumplikazzjoni hija ħażina: għandna aktar cogs, aktar gerijiet, fi ftit kliem, aktar elementi - u, għalhekk, ċans akbar ta 'ħsara. U verament se jkissru. U se jiksru aktar spiss. Eżempju sempliċi: ejja ngħidu li għandna websajt b'PHP u MySQL. U jeħtieġ li jiġi riżervat b'mod urġenti.

Shtosh (c) Nieħdu t-tieni sit, nibnu sistema identika... Il-kumplessità ssir darbtejn akbar - għandna żewġ entitajiet. Aħna wkoll inħaddmu ċerta loġika għat-trasferiment tad-dejta minn sit għall-ieħor - jiġifieri, replikazzjoni tad-dejta, ikkupjar ta 'dejta statika, eċċ. Għalhekk, il-loġika tar-replikazzjoni hija ġeneralment kumplessa ħafna, u għalhekk, il-kumplessità totali tas-sistema tista 'tkun mhux 2, iżda 3, 5, 10 darbiet akbar.

It-tieni nassa: meta nibnu sistemi kumplessi tassew kbar, niffantasizew dwar dak li rridu niksbu fl-aħħar. Voila: irridu nġibu sistema super-affidabbli li taħdem mingħajr ħin ta 'waqfien, taqleb f'nofs sekonda (jew aħjar, istantanjament), u nibdew inwettqu l-ħolm. Iżda hawn ukoll sfumatura: aktar ma jkun iqsar il-ħin mixtieq tal-bidla, aktar issir kumplessa l-loġika tas-sistema. Iktar ma jkollna kumplessi biex nagħmlu din il-loġika, aktar spiss is-sistema tkisser. U tista’ tispiċċa f’sitwazzjoni mhux pjaċevoli ħafna: qed nippruvaw bil-qawwa kollha biex innaqqsu l-waqfien, imma fil-fatt qed nagħmlu kollox aktar ikkumplikat, u meta xi ħaġa tmur ħażin, il-perijodi ta’ waqfien jispiċċaw itwal. Hawnhekk spiss taqbad lilek innifsek taħseb: sew... ikun aħjar li ma tagħmilx riserva. Ikun aħjar jekk taħdem waħedha u b'waqfien li jinftiehem.

Kif tista' tiġġieled dan? Jeħtieġ li nieqfu nigdbu lilna nfusna, nieqfu nfaħħru lilna nfusna li issa se nibnu vapur spazjali hawn, imma nifhmu b'mod adegwat kemm jista' jdum il-proġett. U għal dan iż-żmien massimu, se nagħżlu liema metodi fil-fatt se nużaw biex inżidu l-affidabbiltà tas-sistema tagħna.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Wasal iż-żmien għal “stejjer minn w”... mill-ħajja, ovvjament.

Eżempju numru wieħed

Immaġina websajt tal-karta tan-negozju għal Pipe Rolling Plant Nru 1 fil-belt ta 'N. Jgħid b'ittri enormi - PIPE ROLLING PLANT Nru 1. Eżatt hawn taħt hemm is-slogan: "Il-pajpijiet tagħna huma l-aktar pajpijiet tondi f'N." U hawn taħt hemm in-numru tat-telefon tas-CEO u ismu. Aħna nifhmu li għandek bżonn tagħmel riserva - din hija ħaġa importanti ħafna! Ejja nibdew insemmu fiex tikkonsisti. Html-statics - jiġifieri, ftit stampi fejn il-maniġer ġenerali, fil-fatt, qed jiddiskuti xi tip ta 'ftehim li jmiss fuq il-mejda fil-bathhouse ma' sieħbu. Nibdew naħsbu dwar ħin ta’ waqfien. Jiġi f'moħħi: trid timtedd hemm għal ħames minuti, mhux aktar. U mbagħad tqum il-mistoqsija: kemm kien hemm bejgħ minn dan is-sit tagħna b'mod ġenerali? Kemm-kemm? Xi jfisser "żero"? U dan ifisser: għax il-ġeneral għamel l-erba’ tranżazzjonijiet is-sena l-oħra fuq l-istess mejda, bl-istess nies li magħhom imorru l-bathhouse u joqogħdu mal-mejda. U nifhmu li anki jekk is-sit joqgħod għal ġurnata, ma jiġri xejn terribbli.

Ibbażat fuq l-informazzjoni introduttorja, hemm jum biex titqajjem din l-istorja. Ejja nibdew naħsbu dwar skema ta’ redundancy. U nagħżlu l-aktar skema ta’ redundancy ideali għal dan l-eżempju: ma nużawx is-sensja. Din il-ħaġa kollha tista 'titqajjem minn kull admin f'nofs siegħa b'pawżi tad-duħħan. Installa web server, żid fajls - dak hu. Se taħdem. M'għandek bżonn iżżomm għajnejk fuq xejn, m'għandekx bżonn tagħti attenzjoni speċjali lil xejn. Jiġifieri, il-konklużjoni mill-eżempju numru wieħed hija pjuttost ovvja: servizzi li m'għandhomx għalfejn jiġu riżervati m'għandhomx għalfejn jiġu riżervati.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Eżempju numru tnejn

Blog tal-kumpanija: nies imħarrġa apposta jiktbu aħbarijiet hemmhekk, ħadna sehem f'xi wirja bħal din, iżda ħriġna prodott ġdid ieħor, eċċ. Ejja ngħidu li dan huwa PHP standard ma 'WordPress, database żgħira u ftit ta' statiku. Naturalment, jerġa’ jiġi f’moħħok li taħt l-ebda ċirkostanza m’għandek timtedd - “mhux aktar minn ħames minuti!” Dak kollu. Imma ejja naħsbu aktar. X'jagħmel dan il-blog? In-nies jiġu hemm minn Yandex, minn Google bbażati fuq xi mistoqsijiet, b'mod organiku. Kbir. Il-bejgħ għandu x'jaqsam miegħu? Epifanija: mhux verament. It-traffiku tar-reklamar imur fis-sit prinċipali, li jinsab fuq magna differenti. Ejja nibdew naħsbu dwar skema ta’ prenotazzjoni. B'mod tajjeb, jeħtieġ li titqajjem fi ftit sigħat, u jkun sabiħ li tipprepara għal dan. Ikun raġonevoli li tieħu magna minn ċentru tad-dejta ieħor, irrombla l-ambjent fuqha, jiġifieri, web server, PHP, WordPress, MySQL, u tħalliha hemm. Fil-mument meta nifhmu li kollox huwa miksur, għandna bżonn nagħmlu żewġ affarijiet - roll out il-mysql dump 50 metru, se jtir hemm fil-minuta, u roll out ċertu numru ta 'stampi mill-backup hemmhekk. Dan ukoll mhux hemm għal Alla jaf kemm idum. Għalhekk, f'nofs siegħa l-ħaġa sħiħa togħla. Ebda replikazzjoni, jew Alla jaħfirli, failover awtomatiku. Konklużjoni: dak li nistgħu noħorġu malajr minn backup m'għandux għalfejn jiġi sostnut.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Eżempju numru tlieta, aktar ikkumplikat

Ħanut onlajn. PhP b'qalb miftuħa huwa ftit tweaked, mysql b'bażi ​​solida. Pjuttost ħafna statiċi (wara kollox, il-ħanut online għandu stampi HD sbieħ u dak l-għalf kollu), Redis għas-sessjoni u Elasticsearch għat-tfittxija. Nibdew naħsbu dwar ħin ta’ waqfien. U hawnhekk, ovvjament, huwa ovvju li ħanut online ma jistax jimtedd mingħajr tbatija għal ġurnata. Wara kollox, iktar ma tkun itwal, iktar nitilfu flus. Ta’ min iħaffef. Kemm? Naħseb li jekk nimteddu għal siegħa, ħadd ma jiġġenn. Iva, se nitilfu xi ħaġa, imma jekk nibdew naħdmu iebes, se tmur għall-agħar. Aħna niddefinixxu skema ta' waqfien permess fis-siegħa.

Kif jista’ dan kollu jiġi riżervat? Ikollok bżonn karozza fi kwalunkwe każ: siegħa ta 'ħin hija pjuttost ftit. Mysql: hawn diġà neħtieġu replikazzjoni, replikazzjoni diretta, għax f'siegħa 100 GB x'aktarx mhux se jiżdiedu mad-dump. Statika, stampi: għal darb'oħra, f'siegħa 500 GB jista 'ma jkollhomx ħin biex jiżdiedu. Għalhekk, huwa aħjar li tikkopja l-istampi minnufih. Redis: hawnhekk l-affarijiet isiru interessanti. F'Redis, is-sessjonijiet huma maħżuna - ma nistgħux neħduha u nidfnuha biss. Minħabba li dan mhux se jkun tajjeb ħafna: l-utenti kollha se jiġu illoggjati, il-basktijiet tagħhom jitbattlu, eċċ. In-nies se jkunu sfurzati jerġgħu jdaħħlu l-username u l-password tagħhom, u ħafna nies jistgħu jinkisru u ma jlestux ix-xiri. Għal darb'oħra, il-konverżjonijiet se jonqsu. Min-naħa l-oħra, Redis hija direttament aġġornata, bl-aħħar utenti li illoggjaw probabbilment ma jkunux meħtieġa lanqas. U kompromess tajjeb huwa li tieħu Redis u tirrestawrah minn backup tal-bieraħ, jew, jekk tagħmel dan kull siegħa, minn siegħa ilu. Fortunatament, ir-restawr tiegħu minn backup ifisser li tikkopja fajl wieħed. U l-aktar storja interessanti hija Elasticsearch. Min qatt qabad replikazzjoni MySQL? Min qatt qabad ir-replikazzjoni ta' Elasticsearch? U għal min ħadem normalment wara? Li rrid ngħid hu li naraw ċertu entità fis-sistema tagħna. Jidher li huwa utli - iżda huwa kumpless.
Kumpless fis-sens li l-inġiniera sħabna m’għandhom l-ebda esperjenza ta’ ħidma magħha. Jew hemm esperjenza negattiva. Jew nifhmu li din għadha teknoloġija pjuttost ġdida bi sfumaturi jew rawness. Aħna naħsbu... Damn, elastika hija wkoll b'saħħitha, tieħu wkoll żmien twil biex tirrestawraha minn backup, x'għandi nagħmel? Aħna nifhmu li elastika fil-każ tagħna hija użata għat-tfittxija. Kif ibigħ il-ħanut online tagħna? Immorru għand in-negozjanti u nistaqsu minn fejn jiġu n-nies b'mod ġenerali. Huma jwieġbu: "90% minn Yandex Market jiġu direttament għall-karta tal-prodott." U jew jixtruh jew le. Għalhekk, it-tfittxija hija meħtieġa minn 10% tal-utenti. U ż-żamma ta 'replikazzjoni elastika, speċjalment bejn ċentri tad-dejta differenti f'żoni differenti, verament għandha ħafna sfumaturi. Liema ħruġ? Nieħdu elastiċi minn sit riżervat u ma nagħmlu xejn magħha. Jekk il-kwistjoni tkaxkar, x'aktarx se nqajmuha xi darba, iżda dan mhux ċert. Fil-fatt, il-konklużjoni hija l-istess, plus jew minus: aħna, għal darb'oħra, ma nirriżervawx servizzi li ma jaffettwawx il-flus. Biex iżżomm id-dijagramma aktar sempliċi.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Eżempju numru erbgħa, saħansitra aktar diffiċli

Integratur: bejgħ ta 'fjuri, sejħa ta' taxi, bejgħ ta 'oġġetti, b'mod ġenerali, xejn. Ħaġa serja li taħdem 24/7 għal numru kbir ta 'utenti. B'munzell interessanti sħiħ, fejn hemm bażijiet interessanti, soluzzjonijiet, tagħbija għolja, u l-aktar importanti, tweġġa' li timtedd għal aktar minn 5 minuti. Mhux biss u mhux daqshekk għax in-nies mhux se jixtru, imma għax in-nies jaraw li din il-ħaġa ma taħdimx, se jdejqu u jistgħu ma jerġgħux lura xejn.

KOLLOX SEW. Ħames minuti. X'se nagħmlu dwar dan? F'dan il-każ, aħna, bħall-adulti, nużaw il-flus kollha biex nibnu sit ta 'backup reali, b'replikazzjoni ta' kollox, u forsi anke awtomat kemm jista 'jkun il-bidla għal dan is-sit. U minbarra dan, trid tiftakar li tagħmel ħaġa waħda importanti: fil-fatt, ikteb ir-regolamenti tal-bidla. Ir-regolamenti, anke jekk għandek kollox awtomatizzat, jistgħu jkunu sempliċi ħafna. Mis-serje "run tali u tali skript ansible", "ikklikkja tali u tali checkbox fir-rotta 53" u l-bqija - iżda din għandha tkun xi tip ta 'lista eżatta ta' azzjonijiet.

U kollox jidher ċar. Il-bidla tar-replikazzjoni hija biċċa xogħol trivjali, jew se taqleb innifsu. Il-kitba mill-ġdid ta' isem ta' dominju fid-DNS hija mill-istess serje. L-inkwiet huwa li meta proġett bħal dan ifalli, jibda l-paniku, u anke l-aktar amministraturi b'saħħithom u b'daqna jistgħu jkunu suxxettibbli għalih. Mingħajr struzzjonijiet ċari "iftaħ it-terminal, ejja hawn, l-indirizz tas-server tagħna għadu bħal dan," huwa diffiċli li tilħaq il-limitu ta 'żmien ta' 5 minuti allokat għar-risuxxitazzjoni. Ukoll, barra minn hekk, meta nużaw dawn ir-regolamenti, huwa faċli li nirreġistraw xi bidliet fl-infrastruttura, pereżempju, u nibdlu r-regolamenti kif xieraq.
Ukoll, jekk is-sistema ta 'riservazzjoni hija kumplessa ħafna u f'xi punt għamilna żball, allura nistgħu neqirdu s-sit tal-backup tagħna, u barra minn hekk inbiddlu d-dejta f'qargħa ħamra fuq iż-żewġ siti - dan ikun kompletament imdejjaq.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Eżempju numru ħamsa, komplet hardcore

Servizz internazzjonali b’mijiet ta’ miljuni ta’ utenti madwar id-dinja. Iż-żoni tal-ħin kollha li hemm, tagħbija għolja b'veloċità massima, ma tistax timtedd xejn. Minuta - u se jkun imdejjaq. X'tagħmel? Riserva, għal darb'oħra, skont il-programm sħiħ. Għamilna dak kollu li tkellimt dwaru fl-eżempju preċedenti, u ftit aktar. Dinja ideali, u l-infrastruttura tagħna hija skond il-kunċetti kollha ta 'IaaC devops. Jiġifieri kollox huwa f'git, u tagħfas il-buttuna biss.

X'inhu nieqes? Wieħed - eżerċizzji. Huwa impossibbli mingħajrhom. Jidher li kollox huwa perfett magħna, ġeneralment għandna kollox taħt kontroll. Aħna nagħfas il-buttuna, kollox jiġri. Anke jekk dan hu hekk - u nifhmu li ma jseħħx b'dan il-mod - is-sistema tagħna tinteraġixxi ma' xi sistemi oħra. Per eżempju, dan huwa dns mir-rotta 53, ħażna s3, integrazzjoni ma 'xi api. Mhux se nkunu nistgħu nipprevedu kollox f’dan l-esperiment spekulattiv. U sakemm fil-fatt iġbed is-swiċċ, ma nkunux nafu jekk hux se jaħdem jew le.

Failover: il-perfezzjoniżmu u... l-għażż qed iħassruna

Dak huwa probabbilment kollox. M'għandekx tkun għażżien jew żżejjed. U jalla l-uptime tkun miegħek!

Sors: www.habr.com

Żid kumment