Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Sa ting-init, ang kalihokan sa pagpalit ug ang kakusog sa mga pagbag-o sa imprastraktura sa mga proyekto sa web sa tradisyonal nga pagkunhod, gisultihan kami ni Kapitan Obvious. Tungod kay bisan ang mga espesyalista sa IT usahay magbakasyon. Ug CTO usab. Mas lisud alang niadtong nagpabilin sa katungdanan, apan dili kana ang punto karon: tingali mao kana ang hinungdan nga ang ting-init mao ang pinakamaayo nga panahon sa hinay-hinay nga paghunahuna mahitungod sa kasamtangan nga reservation scheme ug paghimo og usa ka plano sa pagpalambo niini. Ug ang kasinatian ni Yegor Andreev gikan sa AdminDibisyon, nga iyang gihisgutan sa komperensya Uptime nga adlaw.

Adunay daghang mga lit-ag nga mahimo nimong mahulog kung magtukod mga backup nga site. Ug hingpit nga imposible nga madakpan sila. Ug ang nakaguba kanato niining tanan, sama sa daghang uban pang mga butang, mao ang pagkaperpeksyonismo ug... pagkatapulan. Gipaningkamutan namon nga buhaton ang tanan, tanan, tanan nga perpekto, apan dili namon kinahanglan buhaton kini nga perpekto! Kinahanglan lang nimo nga buhaton ang pipila ka mga butang, apan buhata kini sa husto, kompletoha kini aron kini molihok sa husto.

Ang Failover dili usa ka matang sa makalingaw, makalingaw nga butang; kini usa ka butang nga kinahanglan buhaton sa usa ka butang - pagpakunhod sa downtime aron ang serbisyo, ang kompanya, mawad-an og gamay nga salapi. Ug sa tanan nga mga pamaagi sa pagreserba, akong gisugyot nga hunahunaon sa mosunod nga konteksto: asa ang kwarta?

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Unang lit-ag: kung magtukod kita og dako, kasaligan nga mga sistema ug moapil sa redundancy, atong makunhuran ang gidaghanon sa mga aksidente. Kini usa ka makalilisang nga sayop nga pagsabut. Kung moapil kita sa redundancy, lagmit nga madugangan ang gidaghanon sa mga aksidente. Ug kung buhaton nato ang tanan nga husto, nan sa tingub atong pakunhuran ang downtime. Adunay daghang mga aksidente, apan kini mahitabo sa mas ubos nga gasto. Unsa ang reserbasyon? - kini usa ka komplikasyon sa sistema. Ang bisan unsang komplikasyon dili maayo: kami adunay daghang mga cogs, daghang mga gear, sa usa ka pulong, daghang mga elemento - ug, busa, usa ka mas taas nga higayon sa pagkaguba. Ug magbuwag gyud sila. Ug mas kanunay sila magbuwag. Usa ka yano nga pananglitan: ingnon ta nga kami adunay usa ka website nga adunay PHP ug MySQL. Ug kini kinahanglan nga ireserba dayon.

Shtosh (c) Gikuha namon ang ikaduha nga site, nagtukod usa ka parehas nga sistema... Ang pagkakomplikado mahimong doble nga kadako - kami adunay duha ka entidad. Gipagawas usab namo ang usa ka piho nga lohika alang sa pagbalhin sa datos gikan sa usa ka site ngadto sa lain - nga mao, pagkopya sa datos, pagkopya sa static nga datos, ug uban pa. Busa, ang replikasyon nga lohika kasagaran kaayo komplikado, ug busa, ang kinatibuk-ang pagkakomplikado sa sistema mahimong dili 2, apan 3, 5, 10 ka pilo nga mas dako.

Ikaduhang lit-ag: sa dihang magtukod kita ug dako kaayong komplikadong mga sistema, kita maghanduraw kon unsay gusto natong makuha sa kataposan. Voila: gusto namon nga makakuha usa ka labi ka kasaligan nga sistema nga molihok nga wala’y bisan unsang oras sa pag-undang, molihok sa tunga sa segundo (o mas maayo pa, dayon), ug magsugod kami sa paghimo sa mga damgo nga matuman. Apan adunay usa usab ka nuance dinhi: ang mas mubo nga gitinguha nga oras sa pagbalhin, mas komplikado ang sistema sa lohika. Ang labi ka komplikado nga kinahanglan naton buhaton kini nga lohika, labi ka kanunay nga maguba ang sistema. Ug mahimo ka nga moabut sa usa ka dili maayo nga kahimtang: naningkamot kami sa tanan namong kusog nga makunhuran ang oras sa pag-undang, apan sa tinuud gihimo namon nga labi ka komplikado ang tanan, ug kung adunay sayup, ang oras sa pag-undang mahimong mas taas. Dinhi kanunay nimong madakpan ang imong kaugalingon nga naghunahuna: maayo ... mas maayo nga dili magpareserba. Mas maayo kung kini molihok nga nag-inusara ug adunay masabtan nga downtime.

Unsaon nimo pagpakig-away niini? Kinahanglan natong hunongon ang pagpamakak sa atong kaugalingon, hunongon ang pag-ulog-ulog sa atong kaugalingon nga magtukod kita ug spaceship dinhi karon, apan igong sabton kung unsa kadugay ang proyekto mamakak. Ug alang niining labing taas nga oras, pilion namon kung unsang mga pamaagi ang among gamiton aron madugangan ang kasaligan sa among sistema.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Panahon na alang sa "mga istorya gikan sa w" ... gikan sa kinabuhi, siyempre.

Pananglitan numero uno

Hunahunaa ang website sa business card para sa Pipe Rolling Plant No. Sa ubos mao ang slogan: "Ang among mga tubo mao ang labing lingin nga mga tubo sa N." Ug sa ubos mao ang numero sa telepono sa CEO ug ang iyang ngalan. Nakasabut kami nga kinahanglan nimo nga maghimo usa ka reserbasyon - kini usa ka hinungdanon nga butang! Magsugod kita sa paghunahuna kung unsa kini naglangkob. Html-statics - nga mao, ang usa ka magtiayon nga sa mga hulagway diin ang kinatibuk-ang manedyer, sa pagkatinuod, naghisgot sa usa ka matang sa sunod nga deal sa lamesa sa bathhouse uban sa iyang partner. Nagsugod kami sa paghunahuna bahin sa downtime. Naa sa imong hunahuna: kinahanglan ka nga mohigda didto sulod sa lima ka minuto, wala na. Ug unya mitungha ang pangutana: pila ang mga halin gikan niining among site sa kinatibuk-an? Pila-pila? Unsay buot ipasabot sa "zero"? Ug kana nagpasabut: tungod kay ang heneral naghimo sa tanan nga upat ka mga transaksyon sa miaging tuig sa parehas nga lamesa, kauban ang parehas nga mga tawo nga ilang giadtoan sa banyo ug naglingkod sa lamesa. Ug nahibal-an namon nga bisan kung ang site maglingkod sa usa ka adlaw, wala’y daotan nga mahitabo.

Base sa pasiuna nga impormasyon, adunay usa ka adlaw sa pagpataas niini nga istorya. Magsugod kita sa paghunahuna bahin sa usa ka redundancy scheme. Ug gipili namon ang labing maayo nga laraw sa pag-usab alang niini nga panig-ingnan: wala kami mogamit nga redundancy. Kining tibuok nga butang mahimong ipataas sa bisan kinsang admin sulod sa tunga sa oras nga adunay mga smoke break. Pag-instalar og web server, pagdugang og mga file - mao na. Mosalir kini. Dili nimo kinahanglan nga bantayan ang bisan unsang butang, dili nimo kinahanglan hatagan espesyal nga atensyon ang bisan unsang butang. Kana mao, ang konklusyon gikan sa pananglitan nga numero uno klaro kaayo: ang mga serbisyo nga dili kinahanglan nga ireserba dili kinahanglan nga ireserba.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Pananglitan numero duha

Blog sa kompanya: ang mga espesyal nga nabansay nga mga tawo nagsulat sa balita didto, miapil kami sa ingon ug ingon nga eksibisyon, apan nagpagawas kami usa ka bag-ong produkto, ug uban pa. Ingnon ta nga kini standard nga PHP nga adunay WordPress, gamay nga database ug gamay nga static. Siyempre, naa sa hunahuna nga dili ka kinahanglan nga mohigda sa bisan unsang mga kahimtang - "dili molapas sa lima ka minuto!" Mao ra. Pero hunahunaon pa nato. Unsa ang gibuhat niini nga blog? Ang mga tawo gikan didto gikan sa Yandex, gikan sa Google base sa pipila ka mga pangutana, organiko. Nindot. Aduna bay kalabotan ang pagpamaligya niini? Epiphany: dili gyud. Ang trapiko sa advertising moadto sa panguna nga site, nga naa sa lahi nga makina. Magsugod kita sa paghunahuna bahin sa usa ka pamaagi sa pagpareserba. Sa usa ka maayo nga paagi, kini kinahanglan nga ipataas sa usa ka magtiayon nga mga oras, ug kini maayo sa pag-andam alang niini. Makatarunganon ang pagkuha sa usa ka makina gikan sa laing sentro sa datos, i-roll ang palibot niini, nga mao, usa ka web server, PHP, WordPress, MySQL, ug ibilin kini didto. Sa higayon nga atong masabtan nga ang tanan nabuak, kinahanglan natong buhaton ang duha ka butang - i-roll out ang mysql dump 50 meters, molupad kini didto sa usa ka minuto, ug i-roll out ang usa ka piho nga gidaghanon sa mga hulagway gikan sa backup didto. Wala usab kini didto kay nasayod ang Dios kung unsa kadugay. Busa, sa tunga sa oras ang tibuok nga butang mobangon. Walay replikasyon, o ang Dios pasayloa ako, automatic failover. Konklusyon: kung unsa ang mahimo natong dali nga ma-roll out gikan sa usa ka backup dili kinahanglan nga i-back up.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Pananglitan numero tulo, mas komplikado

Online nga tindahan. Ang PhP nga adunay bukas nga kasingkasing gamay nga gibag-o, ang mysql nga adunay lig-on nga base. Daghang static (human sa tanan, ang online store adunay matahum nga mga imahe sa HD ug tanan nga butang), Redis alang sa sesyon ug Elasticsearch alang sa pagpangita. Nagsugod kami sa paghunahuna bahin sa downtime. Ug dinhi, siyempre, klaro nga ang usa ka online nga tindahan dili makahigda nga walay sakit sulod sa usa ka adlaw. Tuod man, kon mas dugay kini, mas daghang salapi ang mawala kanato. Kini angay nga paspasan. Tagpila? Abi nakog usa ka oras mi maghigda, walay mabuang. Oo, adunay mawala kanato, apan kung magsugod kita sa pagtrabaho, mosamot kini. Atong gihubit ang usa ka laraw sa downtime nga gitugot kada oras.

Sa unsang paagi kining tanan mareserba? Kinahanglan nimo ang usa ka awto sa bisan unsang kaso: gamay ra ang oras sa oras. Mysql: dinhi kinahanglan na nato ang replikasyon, live replication, tungod kay sa usa ka oras ang 100 GB lagmit dili idugang sa dump. Statics, mga hulagway: pag-usab, sa usa ka oras 500 GB mahimong walay panahon nga idugang. Busa, mas maayo nga kopyahon dayon ang mga litrato. Redis: dinhi kini mahimong makapaikag. Sa Redis, ang mga sesyon gitipigan - dili lang nato kini makuha ug ilubong. Tungod kay kini dili kaayo maayo: ang tanan nga tiggamit ma-log out, ang ilang mga bukag mahabwa, ug uban pa. Ang mga tawo mapugos sa pagsulod pag-usab sa ilang username ug password, ug daghang mga tawo ang mahimong mobulag ug dili makompleto ang pagpalit. Pag-usab, ang mga pagkakabig moubos. Sa laing bahin, ang Redis direkta nga na-update, nga ang katapusan nga naka-log-in nga mga tiggamit lagmit dili usab kinahanglan. Ug ang usa ka maayong pagkompromiso mao ang pagkuha sa Redis ug ibalik kini gikan sa usa ka backup gikan sa kagahapon, o, kung buhaton nimo kini matag oras, gikan sa usa ka oras ang milabay. Maayo na lang, ang pagpahiuli niini gikan sa usa ka backup nagpasabut sa pagkopya sa usa ka file. Ug ang labing makapaikag nga istorya mao ang Elasticsearch. Kinsa ang nakapili sa replikasyon sa MySQL? Kinsa ang nakapili sa replikasyon sa Elasticsearch? Ug alang kang kinsa kini normal nga nagtrabaho pagkahuman? Ang akong gipasabot mao nga nakakita kita og usa ka entidad sa atong sistema. Kini daw mapuslanon - apan kini komplikado.
Komplikado sa diwa nga ang atong mga kaubang enhinyero walay kasinatian sa pagtrabaho niini. O adunay negatibo nga kasinatian. O nahibal-an namon nga kini usa pa ka bag-ong teknolohiya nga adunay mga nuances o hilaw. Naghunahuna kami ... Damn, ang pagkamaunat-unat usab himsog, kini usab nagkinahanglan og taas nga panahon sa pag-uli niini gikan sa usa ka backup, unsa ang akong buhaton? Nasabtan namo nga ang pagkamaunat-unat sa among kaso gigamit alang sa pagpangita. Giunsa ang pagbaligya sa among online nga tindahan? Moadto kami sa mga tigpamaligya ug mangutana kung diin gikan ang mga tawo. Sila mitubag: "90% gikan sa Yandex Market moabut direkta sa produkto card." Ug bisan sila mopalit niini o dili. Busa, ang pagpangita gikinahanglan sa 10% sa mga tiggamit. Ug ang pagpadayon sa pagkamaunat-unat nga pagkopya, labi na taliwala sa lainlaing mga sentro sa datos sa lainlaing mga zone, adunay daghang mga nuances. Asa nga exit? Gikuha namon ang pagkamaunat gikan sa usa ka gireserba nga site ug wala’y gihimo niini. Kung ang butang magdugay, mahimo naton kini ipataas sa umaabot, apan dili kini sigurado. Sa tinuud, parehas ang konklusyon, dugang o minus: kami, usab, wala magreserba sa mga serbisyo nga dili makaapekto sa salapi. Para mas simple ang diagram.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Pananglitan numero upat, mas lisud pa

Integrator: pagbaligya sa mga bulak, pagtawag og taxi, pagbaligya sa mga butang, sa kinatibuk-an, bisan unsa. Usa ka seryoso nga butang nga nagtrabaho 24/7 alang sa daghang mga tiggamit. Uban sa usa ka bug-os nga makapaikag nga stack, diin adunay mga makapaikag nga mga base, solusyon, taas nga karga, ug labing hinungdanon, sakit ang paghigda sa sobra sa 5 ka minuto. Dili lamang ug dili kaayo tungod kay ang mga tawo dili mopalit, apan tungod kay ang mga tawo makakita nga kini nga butang dili molihok, sila masuko ug mahimong dili na mobalik.

OK ra. Lima ka minuto. Unsa ang atong buhaton bahin niini? Sa kini nga kaso, kami, sama sa mga hamtong, naggamit sa tanan nga salapi aron magtukod usa ka tinuud nga backup nga site, nga adunay pagkopya sa tanan, ug tingali automate ang pagbalhin sa kini nga site kutob sa mahimo. Ug dugang pa niini, kinahanglan nimong hinumdoman nga buhaton ang usa ka hinungdanon nga butang: sa tinuud, isulat ang mga regulasyon sa pagbalhin. Ang mga regulasyon, bisan kung naa nimo ang tanan nga awtomatiko, mahimong yano kaayo. Gikan sa serye nga "pagpadagan sa ingon ug ingon nga usa ka ansible nga script", "pag-klik sa ingon ug ingon nga usa ka checkbox sa ruta 53" ug uban pa - apan kini kinahanglan nga usa ka matang sa eksaktong lista sa mga aksyon.

Ug ang tanan ingon og klaro. Ang pagbalhin sa replikasyon usa ka gamay nga buluhaton, o kini magbalhin sa kaugalingon. Ang pagsulat pag-usab sa usa ka domain name sa DNS gikan sa samang serye. Ang problema mao nga kung mapakyas ang ingon nga proyekto, magsugod ang kalisang, ug bisan ang labing kusgan, bungot nga mga admin mahimong dali nga maapektuhan niini. Kung walay klaro nga mga instruksyon "ablihi ang terminal, ania dinhi, ang adres sa among server sama gihapon niini," lisud nga makab-ot ang 5-minuto nga limitasyon sa oras nga gigahin alang sa resuscitation. Aw, dugang pa, kung gamiton naton kini nga mga regulasyon, dali nga irekord ang pipila nga mga pagbag-o sa imprastraktura, pananglitan, ug usbon ang mga regulasyon sumala niana.
Aw, kung ang sistema sa reserbasyon komplikado kaayo ug sa usa ka punto nakahimo kami og usa ka sayup, nan mahimo namon nga gub-on ang among backup nga site, ug dugang pa nga himuon ang datos nga usa ka kalabasa sa duha nga mga site - kini hingpit nga makapasubo.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Pananglitan nga numero lima, kompleto nga hardcore

Usa ka internasyonal nga serbisyo nga adunay gatusan ka milyon nga tiggamit sa tibuuk kalibutan. Ang tanan nga mga time zone adunay, taas nga load sa labing taas nga tulin, dili ka makahigda. Usa ka minuto - ug kini mahimong masulub-on. Unsay buhaton? Reserve, pag-usab, sumala sa bug-os nga programa. Gibuhat namo ang tanan nga akong gihisgutan sa miaging pananglitan, ug gamay pa. Usa ka sulundon nga kalibutan, ug ang among imprastraktura sumala sa tanan nga mga konsepto sa IaaC devops. Kana mao, ang tanan naa sa git, ug imong ipadayon ang buton.

Unsay nawala? Usa ka - ehersisyo. Imposible kung wala sila. Ingon og ang tanan perpekto sa amon, kasagaran naa namon ang tanan nga kontrolado. Gipadayon namon ang buton, ang tanan mahitabo. Bisan kung mao kini - ug nahibal-an namon nga dili kini mahitabo - ang among sistema nakig-uban sa ubang mga sistema. Pananglitan, kini ang dns gikan sa ruta 53, pagtipig sa s3, panagsama sa pipila nga api. Dili namo makita ang tanan niining espekulatibo nga eksperimento. Ug hangtod nga gibira gyud namo ang switch, dili kami mahibal-an kung kini molihok ba o dili.

Failover: perpeksiyonismo ug... ang pagkatapulan nagdaot kanato

Mao ra siguro. Ayaw pagtinapulan o pagpasobra niini. Ug hinaut nga ang uptime mag-uban kanimo!

Source: www.habr.com

Idugang sa usa ka comment