Failover: ukugqibelela kunye... ukonqena kuyasimosha

Ehlotyeni, zombini umsebenzi wokuthenga kunye nobukhulu botshintsho kwiziseko zophuhliso lweeprojekthi zewebhu ngokwesiko ziyancipha, uCaptain Obvious usixelela. Kuba nje neengcali ze-IT ngamanye amaxesha ziya ekhefini. Kwaye i-CTO nayo. Kunzima ngakumbi kwabo bahlala ezikhundleni, kodwa ayisiyiyo loo nto ngoku: mhlawumbi yiloo nto ihlobo lelona xesha lilungileyo lokucinga kancinci malunga nesikimu sogcino esikhoyo kwaye uzobe isicwangciso sokusiphucula. Kunye namava kaYegor Andreev ukusuka ICandelo loLawulo, awathetha ngayo kwinkomfa Usuku lokuphumla.

Kukho imigibe emininzi onokuwela kuyo xa usakha iisayithi zokugcina. Kwaye akunakwenzeka ngokupheleleyo ukubanjwa kubo. Kwaye into esonakalisayo kuyo yonke le nto, njengakwezinye izinto ezininzi, kukugqibelela kunye ... ubuvila. Sizama ukwenza yonke into, yonke into, yonke into ngokugqibeleleyo, kodwa akufuneki siyenze ngokugqibeleleyo! Kufuneka wenze izinto ezithile kuphela, kodwa uzenze ngokuchanekileyo, uzigqibezele ukuze zisebenze ngokufanelekileyo.

I-Failover ayilona uhlobo oluthile lokuzonwabisa, into emnandi; le yinto ekufuneka yenze kanye into enye - ukunciphisa ixesha lokuphumla ukuze inkonzo, inkampani, ilahlekelwe yimali encinci. Kwaye kuzo zonke iindlela zogcino, ndicebisa ukucinga kumxholo olandelayo: iphi imali?

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Umgibe wokuqala: xa sisakha iinkqubo ezinkulu, ezithembekileyo kwaye sizibandakanya ekufuneni umsebenzi, sinciphisa inani leengozi. Le yimpazamo enkulu. Xa sisenza umsebenzi wokungafuneki emsebenzini, kusenokwenzeka ukuba sandise inani leengozi. Kwaye ukuba senza yonke into ngokufanelekileyo, ngoko ngokudibeneyo siya kunciphisa ixesha lokuphumla. Kuya kubakho iingozi ezininzi, kodwa ziya kwenzeka ngeendleko eziphantsi. Yintoni ugcino? - oku kuyingxaki yenkqubo. Nayiphi na ingxaki imbi: sinee-cogs ezininzi, iigiya ezininzi, ngelizwi, izinto ezininzi-kwaye ke, ithuba eliphezulu lokuqhekeka. Kwaye baya kuphuka ngokwenene. Kwaye baya kuphuka rhoqo. Umzekelo olula: masithi sinewebhusayithi ene-PHP kunye ne-MySQL. Kwaye kufuneka igcinwe ngokukhawuleza.

I-Shtosh (c) Sithatha indawo yesibini, sakha inkqubo efanayo ... Ubunzima buba bukhulu ngokuphindwe kabini - sinamacandelo amabini. Sikwakhupha ingqiqo ethile yokudlulisa idatha ukusuka kwenye indawo ukuya kwenye - oko kukuthi, ukuphindaphinda idatha, ukukopa idatha engatshintshiyo, njalo njalo. Ngoko ke, ingqiqo yokuphindaphinda ikholisa ukuntsonkotha kakhulu, kwaye ke, ukuntsokotha okupheleleyo kwenkqubo akunakuba ngu-2, kodwa 3, 5, 10 umphinda-phinde.

Umgibe wesibini: xa sisakha iisistim ezinkulu ezintsonkothileyo ngokwenene, siyaphupha malunga noko sifuna ukukufumana ekugqibeleni. Voila: sifuna ukufumana inkqubo enokwethenjelwa kakhulu esebenza ngaphandle kwexesha lokuphumla, utshintshe kwisiqingatha sesibini (okanye ungcono, ngoko nangoko), kwaye siqala ukwenza amaphupha abe yinyaniso. Kodwa kukwakho i-nuance apha: ixesha elifutshane elifunekayo lokutshintsha, kokukhona ingqiqo yenkqubo iba nzima. Okukhona kuntsokothileyo kufuneka senze le ngqiqo, kokukhona inkqubo iya kuphuka. Kwaye unokugqiba kwimeko engathandekiyo kakhulu: sizama ngamandla ethu onke ukunciphisa ixesha lokunciphisa, kodwa ngokwenene senza yonke into ibe nzima ngakumbi, kwaye xa kukho into engalunganga, ixesha lokuphumla liya kugqiba ixesha elide. Apha uhlala uzibambe ucinga: kulungile ... kungangcono ukuba ungabeki ugcino. Kuya kuba ngcono ukuba isebenze yodwa kunye nexesha lokuphumla eliqondakalayo.

Ungayilwa njani le nto? Kufuneka siyeke ukuzixokisa, siyeke ukuzikhohlisa ukuba siza kwakha isiphekepheke apha ngoku, kodwa siqonde ngokwaneleyo ukuba le projekthi inokuxoka ixesha elingakanani. Kwaye ngeli xesha liphezulu, siya kukhetha ukuba zeziphi iindlela esiya kuzisebenzisa ngokwenene ukwandisa ukuthembeka kwenkqubo yethu.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Lixesha “lamabali asuka ku-w”... asuka ebomini, kunjalo.

Umzekelo inombolo enye

Khawube nomfanekiso wewebhusayithi yekhadi leshishini lePipe Rolling Plant No. Ezantsi nje kukho isilogeni: “Imibhobho yethu yeyona mibhobho ingqukuva ku-N.” Kwaye ngezantsi inombolo yefowuni ye-CEO kunye negama lakhe. Siyaqonda ukuba kufuneka wenze ugcino - le yinto ebaluleke kakhulu! Masiqale sifumanise ukuba iqulathe ntoni na. I-Html-statics - oko kukuthi, imifanekiso embalwa apho umphathi jikelele, eneneni, exubusha uhlobo oluthile lwesivumelwano esilandelayo etafileni kwindlu yokuhlambela kunye neqabane lakhe. Siqala ukucinga ngexesha lokuphumla. Ifika engqondweni: kufuneka ulale apho imizuzu emihlanu, hayi ngaphezulu. Kwaye ke umbuzo uvela: zingaphi iintengiso ezazivela kule ndawo yethu ngokubanzi? Yimalini-yimalini? Uthetha ukuthini "zero"? Kwaye oko kuthetha: ngenxa yokuba i-general yenza zonke iintengiselwano ezine kunyaka ophelileyo kwitafile enye, kunye nabantu abafanayo abaya nabo kwindlu yokuhlambela baze bahlale etafileni. Kwaye siyaqonda ukuba nokuba isiza sihleli usuku, akukho nto imbi iya kwenzeka.

Ngokusekelwe kulwazi lwentshayelelo, kukho usuku lokuphakamisa eli bali. Masiqale sicinge ngeskimu sokugxothwa. Kwaye sikhetha esona sicwangciso sifanelekileyo sokuphinda siphinde siphinde sisebenze kulo mzekelo: asisebenzisi i-redundancy. Le nto yonke inokuphakanyiswa nayiphi na i-admin kwisiqingatha seyure kunye nekhefu lomsi. Faka iseva yewebhu, yongeza iifayile-yiyo loo nto. Iza kusebenza. Awudingi ukubeka iliso kuyo nayiphi na into, awudingi ukunikela ingqalelo ekhethekileyo kuyo nantoni na. Oko kukuthi, isiphelo esisuka kumzekelo wokuqala sicace gca: iinkonzo ezingafunekiyo ukuba zigcinwe akufuneki zigcinwe.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Umzekelo wesibini

Ibhlog yeNkampani: abantu abaqeqeshwe ngokukhethekileyo babhala iindaba apho, sithathe inxaxheba kumboniso onjalo nonjalo, kodwa sakhulula enye imveliso entsha, njalo njalo. Masithi le yi-PHP eqhelekileyo ene-WordPress, i-database encinci kunye ne-static encinci. Ewe, iphinda ifike engqondweni ukuba akufuneki ulale phantsi phantsi kweemeko- "imizuzu emihlanu!" Kuphelele apho. Kodwa makhe sicinge ngokubhekele phaya. Yenza ntoni le bhlog? Abantu beza apho bevela kwiYandex, bevela kuGoogle ngokusekelwe kwimibuzo ethile, ngokwendalo. Kakhulu. Ngaba iintengiso zinento yokwenza nayo? Epiphany: hayi nyani. I-traffic traffic iya kwindawo ephambili, ekumatshini ohlukileyo. Masiqale sicinge ngeskimu sokubhukisha. Ngendlela efanelekileyo, kufuneka iphakanyiswe kwiiyure ezimbalwa, kwaye kuya kuba kuhle ukulungiselela oku. Kuya kuba nengqiqo ukuthatha umatshini ovela kwelinye iziko ledatha, uqengqele indalo kuyo, oko kukuthi, iseva yewebhu, i-PHP, i-WordPress, i-MySQL, kwaye uyishiye apho. Okwangoku xa siqonda ukuba yonke into iphukile, kufuneka senze izinto ezimbini - khupha i-mysql yokulahla i-50 yeemitha, iya kubhabha apho ngomzuzu, kwaye ikhuphe inani elithile lemifanekiso kwi-backup apho. Oku kwakhona akukho apho kuba uThixo uyazi ukuba kude kube nini. Ngaloo ndlela, kwisiqingatha seyure yonke into iyaphakama. Akukho phindaphindo, okanye uThixo andixolele, ngokuzenzekela. Isiphelo: into esinokuyikhupha ngokukhawuleza kwi-backup ayifuni kuxhaswa.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Umzekelo inombolo yesithathu, intsonkothe ​​ngakumbi

Ivenkile ekwi-Intanethi. I-PhP enentliziyo evulekileyo i-tweaked encinci, i-mysql enesiseko esiqinileyo. I-static eninzi (emva kwayo yonke into, ivenkile ye-intanethi inemifanekiso emihle ye-HD kunye nazo zonke ezo zinto), i-Redis yeseshoni kunye ne-Elasticsearch yokukhangela. Siqala ukucinga ngexesha lokuphumla. Kwaye apha, ewe, kuyacaca ukuba ivenkile ekwi-Intanethi ayinakulala ingenantlungu imini yonke. Ngapha koko, okukhona ixoka, kokukhona siphulukana nemali eninzi. Kufanelekile ukukhawulezisa. Kagakanani? Ndicinga ukuba xa silala phantsi iyure yonke, akukho mntu uya kuphambana. Ewe, siya kulahlekelwa yinto, kodwa ukuba siqala ukusebenza nzima, kuya kuba nzima ngakumbi. Sichaza iskimu sexesha lokuphumla elivunyelwe ngeyure.

Inokugcinwa njani yonke le nto? Udinga imoto kuyo nayiphi na imeko: iyure yexesha lincinci kakhulu. Mysql: apha sele sifuna ukuphindaphinda, ukuphindaphinda okuphilayo, kuba ngeyure i-100 GB ayinakongezwa kwindawo yokulahla. Izibalo, imifanekiso: kwakhona, ngeyure i-500 GB ingenalo ixesha lokongezwa. Ngoko ke, kungcono ukukopa imifanekiso ngoko nangoko. Redis: kulapho izinto ziba nomdla khona. KwiRedis, iiseshoni zigcinwa - asinakuyithatha nje siyingcwabe. Ngenxa yokuba oku akuyi kuba kuhle kakhulu: bonke abasebenzisi baya kukhutshwa, iibhasikithi zabo ziya kuchithwa, njalo njalo. Abantu baya kunyanzelwa ukuba baphinde bafake igama labo lomsebenzisi kunye negama lokugqitha, kwaye abantu abaninzi banokuqhekeka kwaye bangagqibi ukuthenga. Kwakhona, iinguqu ziya kuhla. Kwelinye icala, iRedis ihlaziyiwe ngokuthe ngqo, kunye nabasebenzisi bokugqibela abangeneyo mhlawumbi abafuneki. Kwaye ukuthomalalisa okulungileyo kukuthatha iRedis kwaye uyibuyisele kwi-backup ukusuka izolo, okanye, ukuba uyenza iyure nganye, ukusuka kwiyure edluleyo. Ngethamsanqa, ukuyibuyisela kwi-backup kuthetha ukukopa ifayile enye. Kwaye elona bali linomdla yi-Elasticsearch. Ngubani owakhe wathatha i-MySQL replication? Ngubani owakhe wayichola i-Elasticsearch replication? Kwaye yayisebenzela bani ngokwesiqhelo emva koko? Into endiyithethayo kukuba sibona iqumrhu elithile kwinkqubo yethu. Kubonakala kuluncedo - kodwa kunzima.
Intsonkothile ngengqiqo yokuba oogxa bethu abanamava okusebenza nayo. Okanye kukho amava angalunganga. Okanye siyaqonda ukuba le iseyitekhnoloji entsha ngokufanelekileyo ene-nuances okanye eluhlaza. Sicinga ... Damn, i-elastic nayo isempilweni, ikwathatha ixesha elide ukuyibuyisela kwi-backup, kufuneka ndenze ntoni? Siyaqonda ukuba i-elastic kwimeko yethu isetyenziselwa ukukhangela. Ithengisa njani ivenkile yethu ye-intanethi? Siya kubarhwebi sibuze ukuba bavela phi abantu. Bayaphendula: "I-90% evela kwiMarike yaseYandex iza ngqo kwikhadi lemveliso." Kwaye mhlawumbi bayayithenga okanye abayithengi. Ngoko ke, ukukhangela kuyadingeka kwi-10% yabasebenzisi. Kwaye nokugcina uphindaphindo olulastiki, ngakumbi phakathi kwamaziko ahlukeneyo edatha kwiindawo ezahlukeneyo, ngokwenene kunee-nuances ezininzi. Yeyiphi ukuphuma? Sithatha i-elastic kwindawo egciniweyo kwaye singenzi nto ngayo. Ukuba ityala liyatsala, sinokuliphakamisa ngenye imini, kodwa oko akuqinisekanga. Ngokwenyani, isiphelo siyafana, dibanisa okanye thabatha: thina, kwakhona, asizigcineli iinkonzo ezingachaphazeli imali. Ukugcina umzobo lula.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Umzekelo inombolo yesine, nzima ngakumbi

Umhlanganisi: ukuthengisa iintyatyambo, ukubiza iteksi, ukuthengisa iimpahla, ngokubanzi, nantoni na. Into enzulu esebenzayo 24/7 kwinani elikhulu labasebenzisi. Nge-stack enomdla ogcweleyo, apho kukho iziseko ezinomdla, izisombululo, umthwalo ophezulu, kwaye okona kubaluleke kakhulu, kubuhlungu ukulala phantsi ngaphezu kwemizuzu emi-5. Akunjalo kuphela kwaye kungekhona kakhulu ngenxa yokuba abantu abayi kuthenga, kodwa ngenxa yokuba abantu baya kubona ukuba le nto ayisebenzi, baya kucaphuka kwaye bangabuyi kwakhona.

KULUNGILE. Imizuzu emihlanu. Siza kwenza ntoni ngale nto? Kule meko, thina, njengabantu abadala, sisebenzisa yonke imali ukwakha indawo yokugcina i-backup, kunye nokuphindaphinda kwayo yonke into, kwaye mhlawumbi nokutshintshela ngokuzenzekelayo kule ndawo kangangoko kunokwenzeka. Kwaye ukongeza kule nto, kufuneka ukhumbule ukwenza into enye ebalulekileyo: ngokwenene, bhala imimiselo yokutshintsha. Imimiselo, nokuba unayo yonke into ezenzekelayo, ingaba lula kakhulu. Kuluhlu oluthi "sebenzisa iskripthi esinje kunye nesifanelekileyo", "cofa njalo kunye nebhokisi yokukhangela kwindlela 53" njalo njalo-kodwa oku kufuneka kube luhlobo oluthile loluhlu lwezenzo.

Kwaye yonke into ibonakala icacile. Ukutshintsha ukuphindaphinda kungumsebenzi omncinci, okanye iya kuzitshintsha ngokwayo. Ukubhala kwakhona igama lesizinda kwi-DNS kuluhlu olufanayo. Ingxaki kukuba xa iprojekthi enjalo isilela, uvalo luqala, kwaye nezona zinamandla, ii-admins ezineendevu zinokuchaphazeleka kuyo. Ngaphandle kwemiyalelo ecacileyo "vula i-terminal, yiza apha, idilesi yomncedisi wethu isenje," kunzima ukuhlangabezana nomda wemizuzu emi-5 eyabelwe ukuvuselela. Ewe, kunye, xa sisebenzisa le mimiselo, kulula ukurekhoda utshintsho oluthile kwiziseko zophuhliso, umzekelo, kwaye utshintshe imigaqo ngokufanelekileyo.
Ewe, ukuba inkqubo yogcino inzima kakhulu kwaye ngexesha elithile senze impazamo, ngoko sinokutshabalalisa indawo yethu yokugcina, kwaye ukongezelela ukuguqula idatha ibe yithanga kuzo zombini iindawo - oku kuya kuba buhlungu ngokupheleleyo.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Umzekelo inombolo yesihlanu, i-hardcore epheleleyo

Inkonzo yamazwe ngamazwe enamakhulu ezigidi zabasebenzisi kwihlabathi jikelele. Ngalo lonke ixesha lezowuni zikhona, umthwalo ophakamileyo ngesantya esiphezulu, awunakulala phantsi kwaphela. Umzuzu - kwaye kuya kuba buhlungu. Kwenziwe ntoni? Gcina, kwakhona, ngokwenkqubo epheleleyo. Senze yonke into endiyithethileyo kumzekelo wangaphambili, kunye nangaphezulu. Umhlaba ofanelekileyo, kunye nesiseko sethu sihambelana nazo zonke iingqikelelo ze-IaaC devops. Oko kukuthi, yonke into ikwi-git, kwaye ucofa nje iqhosha.

Kulahleke ntoni? Enye - imithambo. Akunakwenzeka ngaphandle kwabo. Kubonakala ngathi yonke into iphelele kunye nathi, sinayo yonke into phantsi kolawulo. Sicofa iqhosha, yonke into iyenzeka. Nokuba oku kunjalo - kwaye siyaqonda ukuba akwenzeki ngolu hlobo - inkqubo yethu isebenzisana nezinye iinkqubo. Ngokomzekelo, oku ku-dns ukusuka kwindlela ye-53, ukugcinwa kwe-s3, ukuhlanganiswa kunye ne-api ethile. Asiyi kukwazi ukubona yonke into kolu vavanyo luqikelelwayo. Kwaye de sitsale iswitshi, asizukwazi ukuba iya kusebenza okanye hayi.

Failover: ukugqibelela kunye... ukonqena kuyasimosha

Oko mhlawumbi konke. Musa ukonqena okanye uyigqithise. Kwaye ixesha lokuphumla linokuba nawe!

umthombo: www.habr.com

Yongeza izimvo