Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Ehlobo, kokubili umsebenzi wokuthenga kanye nokuqina kwezinguquko kwingqalasizinda yamaphrojekthi wewebhu ngokwesiko kuyehla, uCaptain Obvious uyasitshela. Ngoba nje nochwepheshe be-IT kwesinye isikhathi baya eholidini. Futhi CTO futhi. Kunzima kakhulu kulabo abasasele ezikhundleni, kodwa akulona iphuzu manje: mhlawumbe yingakho ihlobo kuyinkathi engcono kakhulu yokucabanga kancane ngohlelo olukhona lokubhuka bese udweba uhlelo lokuluthuthukisa. Futhi isipiliyoni Yegor Andreev kusukela AdminDivision, akhulume ngayo engqungqutheleni Usuku lokuphumula.

Kunezingibe ezimbalwa ongawela kuzo lapho wakha izingosi eziyisipele. Futhi akunakwenzeka ngokuphelele ukubanjwa kubo. Futhi okusibhidlizayo kukho konke lokhu, njengakwezinye izinto eziningi, wukufuna ukuphelela kanye... nobuvila. Sizama ukwenza yonke into, yonke into, yonke into ngokuphelele, kodwa akudingeki sikwenze ngokuphelele! Udinga kuphela ukwenza izinto ezithile, kodwa uzenze ngendlela efanele, uziqedele ukuze zisebenze kahle.

I-Failover ayilona uhlobo oluthile lokuzijabulisa, into ejabulisayo; lokhu kuyinto okufanele yenze into eyodwa - ukunciphisa isikhathi sokuphumula ukuze isevisi, inkampani, ilahlekelwe yimali encane. Futhi kuzo zonke izindlela zokubhuka, ngiphakamisa ukucabanga kumongo olandelayo: iphi imali?

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Ugibe lokuqala: uma sakha amasistimu amakhulu, athembekile futhi sizibandakanya ekuqedeni umsebenzi, sinciphisa inani lezingozi. Lona umbono oyiphutha omubi. Uma sizibandakanya ekudidekeni, kungenzeka sinyuse isibalo sezingozi. Futhi uma senza konke kahle, khona-ke ngokuhlanganyela sizonciphisa isikhathi sokuphumula. Zizoba nezingozi eziningi, kodwa zizokwenzeka ngezindleko eziphansi. Kuyini ukubhukha? - lokhu kuyinkimbinkimbi yesistimu. Noma iyiphi inkinga yimbi: sinama-cogs amaningi, amagiya engeziwe, ngegama, izakhi eziningi - futhi, ngakho-ke, nethuba eliphakeme lokuwohloka. Futhi bazophuka ngempela. Futhi bazophuka kaningi. Isibonelo esilula: ake sithi sinewebhusayithi ene-PHP ne-MySQL. Futhi idinga ukugodlwa ngokushesha.

I-Shtosh (c) Sithatha indawo yesibili, sakha uhlelo olufanayo... Ubunzima buba bukhulu ngokuphindwe kabili - sinezinhlangano ezimbili. Siphinde sikhiphe i-logic ethile yokudlulisa idatha isuka kwenye isayithi iye kwenye - okungukuthi, ukuphindaphinda kwedatha, ukukopisha idatha emile, njalo njalo. Ngakho-ke, i-logic yokuphindaphinda ngokuvamile iyinkimbinkimbi kakhulu, ngakho-ke, ubunkimbinkimbi obuphelele bohlelo ngeke bube bukhulu izikhathi ezi-2, kodwa 3, 5, 10 ezinkulu.

Ugibe lwesibili: uma sakha amasistimu amakhulu ayinkimbinkimbi, siphupha ngalokho esifuna ukukuthola ekugcineni. I-Voila: sifuna ukuthola uhlelo olunokwethenjelwa kakhulu olusebenza ngaphandle kwanoma yisiphi isikhathi sokuphumula, lushintsha ngesigamu sesekhondi (noma okungcono kakhulu, ngokushesha), futhi siqala ukwenza amaphupho abe yiqiniso. Kodwa futhi kukhona okungafani lapha: lapho isikhathi esifiswayo sokushintsha sisifushane, yilapho ingqondo yesistimu iba yinkimbinkimbi kakhulu. Lapho kufanele senze le logic ibe yinkimbinkimbi, kulapho uhlelo luzobhidlika kaningi. Futhi ungagcina usesimweni esingemnandi kakhulu: sizama ngawo wonke amandla ethu ukunciphisa isikhathi sokuphumula, kodwa empeleni senza yonke into ibe nzima nakakhulu, futhi uma kukhona okungahambi kahle, isikhathi sokuphumula sizogcina siba side. Lapha uvame ukuzithola ucabanga: kuhle... kungaba ngcono ukungabhuki. Kungaba ngcono uma isebenza yodwa futhi ngesikhathi sokuphumula esiqondakalayo.

Ungakulwa kanjani lokhu? Kudingeka siyeke ukuzikhohlisa, siyeke ukuzikhohlisa ngokuthi sizokwakha umkhumbi-mkhathi lapha manje, kodwa siqonde ngokwanele ukuthi iphrojekthi ingaqamba amanga isikhathi eside kangakanani. Futhi ngalesi sikhathi esiphezulu, sizokhetha ukuthi yiziphi izindlela esizozisebenzisa ukukhulisa ukwethembeka kwesistimu yethu.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Sekuyisikhathi "sezindaba ezivela ku-w"... ezivela empilweni, kunjalo.

Isibonelo sokuqala

Cabanga ngewebhusayithi yekhadi lebhizinisi lePipe Rolling Plant No. 1 edolobheni lase-N. Isho ngamagama amakhulu - PIPE ROLLING PLANT No. 1. Ngezansi nje kunesiqubulo esithi: “Amapayipi ethu angamapayipi ayindilinga kunawo wonke kwa-N.” Futhi ngezansi kunenombolo yocingo ye-CEO kanye negama lakhe. Siyaqonda ukuthi udinga ukubhukha - lokhu kuyinto ebaluleke kakhulu! Ake siqale ukuthola ukuthi ihlanganisani. I-Html-statics - okungukuthi, izithombe ezimbalwa lapho umphathi jikelele, empeleni, exoxa ngolunye uhlobo lwedili elilandelayo etafuleni endlini yokugezela nomlingani wakhe. Siqala ukucabanga ngesikhathi sokuphumula. Kufika emqondweni: udinga ukulala lapho imizuzu emihlanu, kungasekho. Bese kuthi-ke umbuzo uphakame: zingaki ukuthengiswa okwakukhona kule sayithi yethu ngokujwayelekile? Kangakanani-kangakanani? Kusho ukuthini "zero"? Futhi lokho kusho: ngoba ujenene wenza konke ukuthengiselana okune ngonyaka odlule etafuleni elifanayo, nabantu abafanayo abaya nabo endlini yokugeza futhi bahlale etafuleni. Futhi siyaqonda ukuthi noma ngabe isiza sihlala usuku, akukho okubi okuzokwenzeka.

Ngokusekelwe olwazini oluyisingeniso, kunosuku lokuphakamisa le ndaba. Ake siqale ukucabanga ngohlelo lokudilizwa emsebenzini. Futhi sikhetha uhlelo oluhle kakhulu lokuphinda lusetshenziswe kulesi sibonelo: asisebenzisi i-redundancy. Yonke le nto ingavuswa yinoma yimuphi u-admin ngesigamu sehora ngekhefu lentuthu. Faka iseva yewebhu, engeza amafayela - yilokho kuphela. Kuzosebenza. Awudingi ukubeka iso kunoma yini, awudingi ukunaka okukhethekile kunoma yini. Okusho ukuthi, isiphetho esivela kusibonelo sokuqala sisobala: izinsizakalo ezingadingi ukugodlwa azidingi ukugodlwa.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Isibonelo sesibili

Ibhulogi yenkampani: abantu abaqeqeshwe ngokukhethekile babhala izindaba lapho, sabamba iqhaza embukisweni onjalo nonjalo, kodwa sakhipha omunye umkhiqizo omusha, njalonjalo. Ake sithi lena i-PHP ejwayelekile ene-WordPress, isizindalwazi esincane kanye ne-static kancane. Yiqiniso, kuyafika engqondweni futhi ukuthi akufanele ulale phansi ngaphansi kwezimo - "imizuzu engaphezu kwemihlanu!" Yilokho kuphela. Kodwa ake sicabange ngokuqhubekayo. Yenzani le bhulogi? Abantu beza lapho bevela ku-Yandex, bevela ku-Google ngokusekelwe kweminye imibuzo, ngokwemvelo. Kuhle. Ingabe ukuthengisa kunento yokwenza nakho? I-Epiphany: akunjalo. Ithrafikhi yokukhangisa iya endaweni eyinhloko, esemshinini ohlukile. Ake siqale ukucabanga ngesikimu sokubhukha. Ngendlela enhle, idinga ukuphakanyiswa emahoreni ambalwa, futhi kungaba kuhle ukulungiselela lokhu. Kungaba okunengqondo ukuthatha umshini kwesinye isikhungo sedatha, ugingqe imvelo kuwo, okungukuthi, iseva yewebhu, i-PHP, i-WordPress, i-MySQL, bese uyishiya lapho. Okwamanje lapho siqonda ukuthi konke kuphukile, sidinga ukwenza izinto ezimbili - sikhiphe i-mysql yokulahla amamitha angu-50, izondiza lapho ngomzuzu, futhi ikhiphe inombolo ethile yezithombe kusuka kubhekhaphu lapho. Lokhu futhi akukho lapho ngoba uNkulunkulu uyazi ukuthi kuze kube nini. Ngakho, ngesigamu sehora yonke into iyaphakama. Akukho ukuphindaphinda, noma uNkulunkulu angithethelele, iphutha elizenzakalelayo. Isiphetho: lokho esingakukhipha ngokushesha kukhophi yasenqolobaneni akudingeki ukuba kwenziwe ikhophi yasenqolobaneni.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Isibonelo sesithathu, siyinkimbinkimbi kakhulu

Isitolo esiku-inthanethi. I-PhP enenhliziyo evulekile ishintshiwe kancane, i-mysql enesisekelo esiqinile. I-static eningi (phela, isitolo se-inthanethi sinezithombe ezinhle ze-HD nazo zonke lezo zinto), i-Redis yeseshini kanye ne-Elasticsearch yokusesha. Siqala ukucabanga ngesikhathi sokuphumula. Futhi lapha, kunjalo, kusobala ukuthi isitolo esiku-inthanethi asikwazi ukulala singenabuhlungu usuku lonke. Phela uma ilala isikhathi eside, silahlekelwa yimali eyengeziwe. Kuyafaneleka ukusheshisa. Malini? Ngicabanga ukuthi uma silala phansi ihora lonke, akekho ozosangana. Yebo, sizolahlekelwa okuthile, kodwa uma siqala ukusebenza kanzima, kuzoba kubi kakhulu. Sichaza uhlelo lwesikhathi sokuphumula esivunyelwe ngehora.

Kungagcinwa kanjani konke lokhu? Udinga imoto kunoma yikuphi: ihora lesikhathi lincane kakhulu. I-Mysql: lapha sesivele sidinga ukuphindaphinda, ukuphindaphinda okubukhoma, ngoba ngehora i-100 GB cishe ngeke yengezwe endaweni yokulahla. Izibalo, izithombe: futhi, ngehora i-500 GB ingase ingabi naso isikhathi sokwengezwa. Ngakho-ke, kungcono ukukopisha izithombe ngokushesha. Redis: kulapho izinto ziba mnandi khona. Ku-Redis, amaseshini agcinwa - asikwazi nje ukukuthatha futhi sikungcwabe. Ngoba lokhu ngeke kube kuhle kakhulu: bonke abasebenzisi bazokhishwa, obhasikidi babo bazothululwa, njalonjalo. Abantu bazophoqeleka ukuthi baphinde bafake igama labo lomsebenzisi nephasiwedi, futhi abantu abaningi bangase bahlukane futhi bangaqedi ukuthenga. Futhi, ukuguqulwa kuzokwehla. Ngakolunye uhlangothi, i-Redis isesikhathini samanje, nabasebenzisi bokugcina abangene ngemvume cishe abadingeki. Futhi ukuvumelana okuhle ukuthatha i-Redis futhi uyibuyisele kusuka kusipele sayizolo, noma, uma ukwenza njalo ngehora, kusukela ehoreni eledlule. Ngenhlanhla, ukuyibuyisela kukhophi yasenqolobaneni kusho ukukopisha ifayela elilodwa. Futhi indaba ethakazelisa kakhulu i-Elasticsearch. Ubani owake wathatha ukuphindaphinda kwe-MySQL? Ubani owake wathatha i-Elasticsearch replication? Futhi yayisebenzela bani ngokujwayelekile ngemva kwalokho? Engikushoyo ukuthi sibona ibhizinisi elithile ohlelweni lwethu. Kubonakala kuwusizo - kodwa kuyinkimbinkimbi.
Inkimbinkimbi ngomqondo wokuthi onjiniyela esikanye nabo abanaso isipiliyoni sokusebenza nayo. Noma kukhona isipiliyoni esibi. Noma siyaqonda ukuthi lobu kusewubuchwepheshe obusha obunama-nuances noma ubuhlaza. Sicabanga... Damn, ukunwebeka nakho kunempilo, futhi kuthatha isikhathi eside ukuyibuyisela ku-backup, yini okufanele ngiyenze? Siyaqonda ukuthi okunwebekayo esimweni sethu kusetshenziselwa ukusesha. Sithengisa kanjani isitolo sethu esiku-inthanethi? Siya kwabamaketha sibuze ukuthi abantu baphumaphi. Bayaphendula: "U-90% ovela e-Yandex Market uza ngqo ekhadini lomkhiqizo." Futhi bayayithenga noma cha. Ngakho-ke, ukusesha kudingwa yi-10% yabasebenzisi. Futhi ukugcina ukuphindaphinda okunwebekayo, ikakhulukazi phakathi kwezikhungo zedatha ezihlukene ezindaweni ezihlukene, kunama-nuances amaningi ngempela. Ikuphi ukuphuma? Sithatha okunwebekayo endaweni egodliwe futhi singenzi lutho ngakho. Uma udaba luqhubeka, singaluphakamisa ngolunye usuku, kodwa lokho akuqinisekile. Empeleni, isiphetho siyefana, ukuhlanganisa noma ukususa: thina, futhi, asizigodli izinsizakalo ezingaphazamisi imali. Ukuze ugcine umdwebo ulula.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Isibonelo sesine, esinzima nakakhulu

Umdidiyeli: ukuthengisa izimbali, ukubiza itekisi, ukuthengisa izimpahla, ngokuvamile, noma yini. Into ebucayi esebenza 24/7 ngenani elikhulu labasebenzisi. Ngesitaki esithakazelisayo esigcwele, lapho kunezisekelo ezithakazelisayo, izixazululo, umthwalo ophezulu, futhi okubaluleke kakhulu, kubuhlungu ukulala isikhathi esingaphezu kwemizuzu engu-5. Hhayi kuphela futhi hhayi kakhulu ngoba abantu ngeke bathenge, kodwa ngenxa yokuthi abantu bazobona ukuthi le nto ayisebenzi, bazocasuka futhi bangase bangabuyi nhlobo.

KULUNGILE. Imizuzu emihlanu. Sizokwenzani ngalokhu? Kulokhu, thina, njengabantu abadala, sisebenzisa yonke imali ukwakha isiza sangempela sokulondoloza, ngokuphindaphinda kwakho konke, futhi mhlawumbe nokushintsha ngokuzenzakalelayo kule sayithi ngangokunokwenzeka. Futhi ngaphezu kwalokhu, udinga ukukhumbula ukwenza into eyodwa ebalulekile: empeleni, bhala imithetho yokushintsha. Imithethonqubo, noma unakho konke okuzenzakalelayo, ingaba lula kakhulu. Kusukela ochungechungeni oluthi “sebenzisa iskripthi esinjalo nesifanele”, “chofoza ibhokisi elithi nanje kumzila 53” njalo njalo - kodwa lokhu kufanele kube uhlobo oluthile lohlu oluqondile lwezenzo.

Futhi konke kubonakala kucacile. Ukushintsha ukuphindaphinda kuwumsebenzi omncane, noma kuzozishintsha. Ukubhala kabusha igama lesizinda ku-DNS kuvela ochungechungeni olufanayo. Inkinga ukuthi uma iphrojekthi enjalo ihluleka, ukwethuka kuyaqala, futhi ngisho nabanamandla kakhulu, abaphathi bentshebe bangaba sengozini. Ngaphandle kwemiyalo ecacile "vula itheminali, woza lapha, ikheli leseva yethu lisenjena," kunzima ukuhlangabezana nomkhawulo wesikhathi wemizuzu emi-5 owabelwe ukuvuselela. Yebo, futhi, uma sisebenzisa le mithethonqubo, kulula ukurekhoda izinguquko ezithile kwingqalasizinda, isibonelo, futhi uguqule imithetho ngokufanele.
Hhayi-ke, uma uhlelo lokubhuka luyinkimbinkimbi kakhulu futhi ngesinye isikhathi senze iphutha, khona-ke singabhubhisa isayithi lethu lokulondoloza, futhi ngaphezu kwalokho siguqule idatha ibe ithanga kuzo zombili izingosi - lokhu kuzoba buhlungu ngokuphelele.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Isibonelo sesihlanu, i-hardcore ephelele

Isevisi yamazwe ngamazwe enamakhulu ezigidi zabasebenzisi emhlabeni jikelele. Ngaso sonke isikhathi izindawo ezikhona, umthwalo omkhulu ngesivinini esikhulu, awukwazi ukucambalala nhlobo. Umzuzu - futhi kuyoba buhlungu. Okufanele ngikwenze? Gcina, futhi, ngokohlelo olugcwele. Senze konke engikhulume ngakho esibonelweni sangaphambilini, nokunye okwengeziwe. Umhlaba okahle, nengqalasizinda yethu ihambisana nayo yonke imiqondo ye-IaaC devops. Okusho ukuthi, yonke into iku-git, futhi uvele ucindezele inkinobho.

Yini eshodayo? Eyodwa - izivivinyo. Akunakwenzeka ngaphandle kwabo. Kubonakala sengathi yonke into iphelele nathi, ngokuvamile sinakho konke ngaphansi kokulawula. Sicindezela inkinobho, konke kuyenzeka. Noma ngabe lokhu kunjalo - futhi siyaqonda ukuthi akwenzeki ngale ndlela - uhlelo lwethu lusebenzisana nezinye izinhlelo. Isibonelo, lokhu i-dns kusuka kumzila 53, isitoreji se-s3, ukuhlanganiswa ne-api ethile. Ngeke sikwazi ukubona kusengaphambili konke kulokhu kuhlolwa kokuqagela. Futhi kuze kube yilapho sidonsa inkinobho, ngeke sazi ukuthi izosebenza noma cha.

Failover: ukuthanda ukuphelela kanye ... ukuvilapha kuyasilimaza

Cishe yilokho kuphela. Ungavilaphi noma wenze ngokweqile. Futhi kwangathi isikhathi sokuphumula singaba nawe!

Source: www.habr.com

Engeza amazwana