Failover: pèfeksyonism ak... parès ap ruine nou

An ete, tou de aktivite achte ak entansite chanjman nan enfrastrikti pwojè entènèt tradisyonèlman diminye, Kapitèn Obvious di nou. Senpleman paske menm espesyalis IT pafwa ale an vakans. Ak CTO tou. Li pi difisil pou moun ki rete nan biwo yo, men sa a se pa pwen an kounye a: petèt se poutèt sa ete a se pi bon peryòd pou tou dousman reflechi sou plan rezèvasyon ki egziste deja epi trase yon plan pou amelyore li. Ak eksperyans nan Yegor Andreev soti nan AdminDivision, ki li te pale sou nan konferans lan Uptime jou.

Gen plizyè enkonvenyans ou ka tonbe nan lè bati sit backup. Epi li absoliman enposib jwenn kenbe nan yo. Ak sa ki kraze nou nan tout bagay sa yo, tankou nan anpil lòt bagay, se pèfeksyonism ak ... parès. Nou ap eseye fè tout bagay, tout bagay, tout bagay parfe, men nou pa bezwen fè li parfe! Ou bezwen sèlman fè sèten bagay, men fè yo kòrèkteman, ranpli yo pou yo travay byen.

Failover se pa yon kalite plezi, bagay amizan; sa a se yon bagay ki ta dwe fè egzakteman yon sèl bagay - diminye D 'pou sèvis la, konpayi an, pèdi mwens lajan. Ak nan tout metòd rezèvasyon, mwen sijere panse nan kontèks sa a: ki kote lajan an ye?

Failover: pèfeksyonism ak... parès ap ruine nou

Premye pèlen: lè nou bati gwo, sistèm serye epi angaje yo nan redondance, nou redwi kantite aksidan. Sa a se yon move konsepsyon terib. Lè nou angaje nan redondance, nou gen anpil chans pou ogmante kantite aksidan. Men, si nou fè tout bagay byen, Lè sa a, kolektivman nou pral redwi tan yo. Pral gen plis aksidan, men yo pral rive nan pi ba pri. Ki sa ki se yon rezèvasyon? - sa a se yon konplikasyon nan sistèm nan. Nenpòt konplikasyon se move: nou gen plis cogs, plis angrenaj, nan yon mo, plis eleman - ak, Se poutèt sa, yon pi gwo chans nan pann. Epi yo reyèlman pral kraze. Epi yo pral kraze pi souvan. Yon egzanp senp: an n di nou gen yon sit entènèt ki gen PHP ak MySQL. Epi li ijan bezwen rezève.

Shtosh (c) Nou pran dezyèm sit la, bati yon sistèm ki idantik... Konpleksite a vin de fwa pi gwo - nou gen de antite. Nou menm tou nou woule yon sèten lojik pou transfere done soti nan yon sit nan yon lòt - se sa ki, replikasyon done, kopye done estatik, ak sou sa. Se konsa, lojik replikasyon an anjeneral trè konplèks, ak Se poutèt sa, konpleksite total nan sistèm nan pa ka 2, men 3, 5, 10 fwa pi gwo.

Dezyèm pèlen: lè nou bati vrèman gwo sistèm konplèks, nou fantasize sou sa nou vle jwenn nan fen an. Voila: nou vle jwenn yon sistèm super-fyab ki travay san okenn tan, switch nan yon demi segonn (oswa pi bon ankò, imedyatman), epi nou kòmanse fè rèv rive vre. Men, gen tou yon nuans isit la: pi kout tan an vle chanje, plis konplèks lojik sistèm lan vin. Plis nou gen konplèks pou fè lojik sa a, se pi souvan sistèm nan ap kraze. Epi ou ka fini nan yon sitiyasyon ki trè dezagreyab: n ap eseye ak tout fòs nou pou redwi tan yo, men an reyalite nou ap fè tout bagay pi konplike, epi lè yon bagay ale mal, tan an ap fini pi long. Isit la ou souvan kenbe tèt ou panse: byen... li ta pi bon pou pa fè yon rezèvasyon. Li ta pi bon si li te travay pou kont li epi ak tan D 'konpreyansib.

Ki jan ou ka goumen sa a? Nou bezwen sispann bay tèt nou manti, sispann flate tèt nou ke nou pral bati yon veso isit la kounye a, men byen konprann konbyen tan pwojè a ka bay manti. Ak pou tan maksimòm sa a, nou pral chwazi ki metòd nou pral aktyèlman itilize pou ogmante fyab nan sistèm nou an.

Failover: pèfeksyonism ak... parès ap ruine nou

Li lè pou "istwa soti nan w" ... soti nan lavi, nan kou.

Egzanp nimewo en

Imajine yon sit entènèt kat biznis pou Pipe Rolling Plant No 1 nan vil N. Li di nan gwo lèt - PIPE ROLLING PLANT No 1. Jis anba a se eslogan an: "Tiyo nou yo se tiyo ki pi wonn nan N." Epi anba a se nimewo telefòn CEO a ak non li. Nou konprann ke ou bezwen fè yon rezèvasyon - sa a se yon bagay trè enpòtan! Ann kòmanse konnen ki sa li konsiste de. Html-statik - se sa ki, yon koup nan foto kote manadjè jeneral la, an reyalite, ap diskite sou kèk kalite pwochen kontra sou tab la nan twalèt la ak patnè li. Nou kòmanse reflechi sou D'. Li vin nan tèt ou: ou bezwen kouche la pou senk minit, pa plis. Lè sa a, kesyon an rive: konbyen lavant te gen nan sit sa a nan nou an jeneral? Konbyen-konbyen? Ki sa "zewo" vle di? E sa vle di: paske jeneral la te fè tout kat tranzaksyon ane pase sou menm tab la, ak menm moun yo ak ki moun yo ale nan twalèt la epi yo chita bò tab la. Epi nou konprann ke menm si sit la chita pou yon jou, pa gen anyen terib ki pral rive.

Dapre enfòmasyon entwodiksyon an, gen yon jou pou ogmante istwa sa a. Ann kòmanse reflechi sou yon konplo redondance. Epi nou chwazi plan redondance ki pi ideyal pou egzanp sa a: nou pa sèvi ak redondance. Tout bagay sa a ka leve soti vivan nan nenpòt admin nan yon demi èdtan ak repo lafimen. Enstale yon sèvè entènèt, ajoute dosye - se li. Li pral travay. Ou pa bezwen veye sou anyen, ou pa bezwen peye atansyon espesyal sou anyen. Sa vle di, konklizyon ki soti nan egzanp nimewo en se byen evidan: sèvis ki pa bezwen rezève pa bezwen rezève.

Failover: pèfeksyonism ak... parès ap ruine nou

Egzanp nimewo de

Blog konpayi: moun ki resevwa fòmasyon espesyal ekri nouvèl la, nou te patisipe nan yon egzibisyon konsa, men nou te lage yon lòt nouvo pwodwi, ak sou sa. Ann di sa a se PHP estanda ak WordPress, yon ti baz done ak yon ti kras nan estatik. Natirèlman, li vin nan tèt ou ankò ke ou ta dwe nan okenn sikonstans kouche - "pa plis pase senk minit!" Sa a tout. Men, ann reflechi pi lwen. Kisa blog sa fè? Moun ki vini la soti nan Yandex, ki soti nan Google ki baze sou kèk demann, òganikman. Gwo. Èske lavant gen anyen fè ak li? Epifani: pa vre. Trafik piblisite ale nan sit prensipal la, ki se sou yon machin diferan. Ann kòmanse reflechi sou yon konplo anrjistreman. Nan yon bon fason, li bezwen leve soti vivan nan yon koup la èdtan, epi li ta bon pou prepare pou sa a. Li ta rezonab pou pran yon machin nan yon lòt sant done, woule anviwònman an sou li, se sa ki, yon sèvè entènèt, PHP, WordPress, MySQL, epi kite li la. Nan moman sa a lè nou konprann ke tout bagay kase, nou bezwen fè de bagay - woule soti pil fatra a mysql 50 mèt, li pral vole la nan yon minit, ak woule soti yon sèten kantite foto soti nan backup la la. Sa a pa la tou pou Bondye konnen konbyen tan. Kidonk, nan yon demi èdtan tout bagay la leve. Pa gen replikasyon, oswa Bondye padonnen m ', failover otomatik. Konklizyon: sa nou ka byen vit woule soti nan yon backup pa bezwen fè bak.

Failover: pèfeksyonism ak... parès ap ruine nou

Egzanp nimewo twa, pi konplike

Boutik sou entènèt. PhP ak kè louvri se yon ti kras tweaked, mysql ak yon baz solid. Byen anpil nan estatik (apre tout, magazen an sou entènèt gen bèl imaj HD ak tout bagay sa yo), Redis pou sesyon an ak Elasticsearch pou rechèch. Nou kòmanse panse sou D'. Ak isit la, nan kou, li evidan ke yon magazen sou entènèt pa ka kouche alantou san doulè pou yon jou. Apre yo tout, pi long li manti, se plis lajan nou pèdi. Li vo pi vit. Konbyen? Mwen panse ke si nou kouche pou yon èdtan, pèsonn pa pral fou. Wi, nou pral pèdi yon bagay, men si nou kòmanse travay di, li pral sèlman vin pi mal. Nou defini yon konplo D' pèmèt pou chak èdtan.

Ki jan yo ka rezève tout bagay sa yo? Ou bezwen yon machin nan nenpòt ka: yon èdtan nan tan se byen ti kras. Mysql: isit la nou deja bezwen replikasyon, replikasyon ap viv, paske nan yon èdtan 100 GB gen plis chans pa dwe ajoute nan pil fatra a. Statistik, foto: ankò, nan yon èdtan 500 GB ka pa gen tan yo dwe ajoute. Se poutèt sa, li pi bon pou kopye foto yo touswit. Redis: se kote bagay yo vin enteresan. Nan Redis, sesyon yo estoke - nou pa ka jis pran li epi antere li. Paske sa a pa pral trè bon: tout itilizatè yo pral dekonekte, panyen yo pral vide, ak sou sa. Moun yo pral oblije re-antre non itilizatè yo ak modpas yo, epi anpil moun ka kraze epi yo pa fini acha a. Ankò, konvèsyon yo pral tonbe. Nan lòt men an, Redis se dirèkteman ajou, ak dènye itilizatè ki konekte yo pwobableman pa bezwen tou. Ak yon bon konpwomi se pran Redis epi restore li soti nan yon backup soti nan yè, oswa, si ou fè li chak èdtan, soti nan yon èdtan de sa. Erezman, restore li nan yon backup vle di kopye yon dosye. Ak istwa ki pi enteresan an se Elasticsearch. Ki moun ki te janm ranmase MySQL replikasyon? Ki moun ki te janm ranmase replikasyon Elasticsearch? Ak pou ki moun li te travay nòmalman apre? Sa ki mon pe dir se ki nou vwar en serten antite dan nou sistenm. Li sanble itil - men li se konplèks.
Konplèks nan sans ke enjenyè parèy nou yo pa gen okenn eksperyans travay ak li. Oswa gen yon eksperyans negatif. Oswa nou konprann ke sa a se toujou yon teknoloji san patipri nouvo ak nuans oswa brut. Nou panse... Damn, elastik se tou an sante, li pran tou yon bon bout tan retabli li soti nan yon backup, kisa mwen ta dwe fè? Nou konprann ke elastik nan ka nou an yo itilize pou rechèch. Ki jan magazen sou entènèt nou an vann? Nou ale nan mache epi mande kote moun soti. Yo reponn: "90% nan Yandex Market vin dirèkteman nan kat pwodwi a." Epi swa yo achte li oswa yo pa fè sa. Se poutèt sa, rechèch nesesè pa 10% nan itilizatè yo. Ak kenbe replikasyon elastik, espesyalman ant diferan sant done nan diferan zòn, reyèlman gen yon anpil nan nuans. Ki sòti? Nou pran elastik nan yon sit rezève epi pa fè anyen ak li. Si pwoblèm nan trennen sou, nou ta ka leve l 'yon jou, men sa a pa sèten. Aktyèlman, konklizyon an se menm bagay la, plis oswa mwens: nou, ankò, pa rezève sèvis ki pa afekte lajan. Pou kenbe dyagram nan pi senp.

Failover: pèfeksyonism ak... parès ap ruine nou

Egzanp nimewo kat, menm pi difisil

Entegratè: vann flè, rele yon taksi, vann machandiz, an jeneral, anyen. Yon bagay serye ki travay 24/7 pou yon gwo kantite divinò. Avèk yon gwo pil enteresan, kote gen baz enteresan, solisyon, gwo chaj, ak sa ki pi enpòtan, li fè mal kouche pou plis pase 5 minit. Non sèlman e pa tèlman paske moun pa pral achte, men paske moun pral wè ke bagay sa a pa mache, yo pral fache epi yo ka pa tounen ditou.

OK. Senk minit. Kisa nou pral fè sou sa? Nan ka sa a, nou menm, tankou granmoun, sèvi ak tout lajan an pou konstwi yon sit backup reyèl, ak replikasyon nan tout bagay, e petèt menm otomatize chanje nan sit sa a otank posib. Ak anplis sa a, ou bezwen sonje fè yon sèl bagay enpòtan: aktyèlman, ekri règleman yo chanje. Règleman yo, menm si ou gen tout bagay otomatik, ka trè senp. Soti nan seri a "kouri tankou yon script ansible", "klike sou tèl ak tèl yon kaz nan wout 53" ak sou sa - men sa a dwe yon kalite lis egzak nan aksyon.

Ak tout bagay sanble klè. Chanje replikasyon se yon travay trivial, oswa li pral chanje tèt li. Reekri yon non domèn nan DNS soti nan menm seri a. Pwoblèm lan se ke lè yon pwojè konsa echwe, panik kòmanse, e menm pi fò, admin bab yo ka sansib a li. San yo pa enstriksyon klè "louvri tèminal la, vin isit la, adrès sèvè nou an toujou tankou sa a," li difisil pou satisfè limit tan 5 minit yo te bay pou reanimasyon. Oke, plis, lè nou itilize règleman sa yo, li fasil pou anrejistre kèk chanjman nan enfrastrikti a, pou egzanp, epi chanje règleman yo kòmsadwa.
Oke, si sistèm rezèvasyon an trè konplèks epi nan kèk pwen nou te fè yon erè, Lè sa a, nou ka detwi sit backup nou an, epi anplis vire done yo nan yon joumou sou tou de sit - sa a pral konplètman tris.

Failover: pèfeksyonism ak... parès ap ruine nou

Egzanp nimewo senk, konplè hardcore

Yon sèvis entènasyonal ak dè santèn de milyon itilizatè atravè mond lan. Tout zòn tan ki genyen, gwo chaj nan vitès maksimòm, ou pa ka kouche ditou. Yon minit - epi li pral tris. Kisa pou fe? Rezève, ankò, dapre pwogram nan plen. Nou te fè tout sa mwen te pale sou egzanp anvan an, ak yon ti kras plis. Yon mond ideyal, ak enfrastrikti nou an dapre tout konsèp devops IaaC yo. Sa vle di, tout bagay se nan git, epi ou jis peze bouton an.

Kisa ki manke? Youn - egzèsis. Li enposib san yo. Li sanble ke tout bagay pafè avèk nou, nou jeneralman gen tout bagay anba kontwòl. Nou peze bouton an, tout bagay rive. Menm si sa a se konsa - e nou konprann ke li pa rive nan fason sa a - sistèm nou an reyaji ak kèk lòt sistèm. Pou egzanp, sa a se dns soti nan wout 53, s3 depo, entegrasyon ak kèk api. Nou p ap kapab prevwa tout bagay nan eksperyans spéculatif sa a. Epi jiskaske nou aktyèlman rale switch la, nou pa pral konnen si li pral travay oswa ou pa.

Failover: pèfeksyonism ak... parès ap ruine nou

Sa a se pwobableman tout. Pa fè parese oswa fè twòp. Epi se ka uptime la avèk ou!

Sous: www.habr.com

Add nouvo kòmantè