Failover: kamilperestî û... tembelî me xera dike

Di havînê de, hem çalakiya kirînê û hem jî tundiya guhertinên di binesaziya projeyên malperê de bi kevneşopî kêm dibe, Captain Obvious ji me re dibêje. Tenê ji ber ku pisporên IT carinan carinan diçin betlaneyê. Û CTO jî. Ji bo kesên ku li ser wezîfeyê dimînin her tişt dijwartir e, lê ev ne xala nuha ye: dibe ku ji ber vê yekê havîn baştirîn dem e ku meriv hêdî hêdî li ser nexşeya rezervasyonê ya heyî bifikire û plansaziyek ji bo baştirkirina wê çêbike. Û serpêhatiya Yegor Andreev ji AdminDivision, ku ew li ser konferansê axivî Roja Uptime.

Dema ku hûn malperên hilanînê çêdikin, gelek xeletî hene ku hûn dikarin têkevin nav wan. Û bi tevahî ne gengaz e ku meriv di nav wan de were girtin. Û ya ku me di van hemûyan de jî xera dike, wek di gelek tiştên din de kamilbûn û... tembelî ye. Em hewl didin ku her tiştî, her tiştî, her tiştî bi rengek bêkêmasî bikin, lê ne hewce ye ku em wiya bêkêmasî bikin! Hûn tenê hewce ne ku hin tiştan bikin, lê wan rast bikin, wan temam bikin da ku ew bi rêkûpêk bixebitin.

Failover ne celebek kêf, tiştek kêfxweş e; ev tiştek e ku divê tam yek tişt bike - dema domandinê kêm bike da ku karûbar, pargîdanî, kêmtir drav winda bike. Û di hemî rêbazên veqetandinê de, ez pêşniyar dikim ku di çarçoveyek jêrîn de bifikirim: drav li ku ye?

Failover: kamilperestî û... tembelî me xera dike

Xema yekem: Dema ku em pergalên mezin, pêbawer ava dikin û tev li zêdebûnê dibin, em jimara qezayan kêm dikin. Ev têgihiştineke şaş e. Dema ku em tev li zêdebûnê dibin, dibe ku em hejmara qezayan zêde bikin. Û heke em her tiştî rast bikin, wê hingê em ê bi hev re dema domandinê kêm bikin. Dê qeza zêdetir bibin, lê ew ê bi lêçûnên kêmtir çêbibin. rezervasyon çi ye? - ev tevliheviya pergalê ye. Her tevliheviyek xirab e: me bêtir cog, bêtir kelûmel, bi gotinek, hêmanên bêtir hene - û, ji ber vê yekê, şansek hilweşandinê mezintir e. Û ew ê bi rastî bişkînin. Û ew ê pir caran bişkînin. Mînakek hêsan: em bibêjin malperek me bi PHP û MySQL heye. Û ew bi lezgînî pêdivî ye ku were parastin.

Shtosh (c) Em malpera duyemîn digirin, pergalek wekhev ava dikin... Tevlihevî du caran mezin dibe - du hebûnên me hene. Em ji bo veguheztina daneyan ji malperek din jî mantiqek diyar dikin - ango, dubarekirina daneyan, kopîkirina daneyên statîk, û hwd. Ji ber vê yekê, mantiqa dubarekirinê bi gelemperî pir tevlihev e, û ji ber vê yekê, tevliheviya tevahî pergalê dikare ne 2, lê 3, 5, 10 carî mezintir be.

Xema duyemîn: Gava ku em pergalên tevlihev ên bi rastî mezin ava dikin, em li ser tiştê ku em dixwazin di dawiyê de bi dest bixin xeyal dikin. Voila: em dixwazin pergalek pir pêbawer ku bêyî demdirêj kar dike, di nîv saniyeyê de (an jî çêtir be, tavilê) diguhezîne, û em dest bi pêkanîna xewnan dikin. Lê li vir nuwazeyek jî heye: her ku dema guheztinê ya xwestî kurttir bibe, mantiqa pergalê jî tevlihevtir dibe. Em çiqasî tevlihevtir bin ku em vê mantiqê çêbikin, ew qas pir caran dê pergal hilweşe. Û hûn dikarin bikevin rewşek pir ne xweş: em bi hemî hêza xwe hewl didin ku wextê bêkêmasî kêm bikin, lê di rastiyê de em her tiştî tevlihevtir dikin, û gava ku tiştek xelet bibe, dema domandinê dê dirêjtir bibe. Li vir hûn pir caran xwe difikirîn: baş e ... çêtir e ku hûn rezervasyonek nekin. Dê çêtir be ku ew bi tenê û bi domdariya têgihîştî bixebite.

Hûn çawa dikarin vê yekê şer bikin? Pêdivî ye ku em dev ji derewên xwe berdin, dev ji dilpakiya xwe berdin ku em ê nuha li vir keştiyek fezayê ava bikin, lê bi têra xwe fêm bikin ka proje heya kengê dikare derewan bike. Û ji bo vê dema herî zêde, em ê hilbijêrin ka kîjan rêbazan em ê bi rastî bikar bînin da ku pêbaweriya pergala xwe zêde bikin.

Failover: kamilperestî û... tembelî me xera dike

Dem dema “çîrokên w” ye... ji jiyanê, bê guman.

Mînak hejmar yek

Malperek qerta karsaziyê ji bo Kargeha Rolling Bole Numreya 1 li bajarê N. Bi herfên mezin dibêje - PIPE ROLLING PLANT No. 1. Hema li jêr dirûşma: "Bûleyên me boriyên herî dor in li N." Û li jêr hejmara telefona CEO û navê wî ye. Em fêm dikin ku hûn hewce ne ku rezervek çêbikin - ev tiştek pir girîng e! Ka em dest pê bikin ku fêm bikin ka ew ji çi pêk tê. Html-statîk - ango çend wêne ku bi rastî gerînendeyê giştî li ser sifrê li serşokê bi hevjîna xwe re li ser hin peymanek din nîqaş dike. Em dest pê dikin ku li ser demdirêjê bifikirin. Ew tê bîra min: hûn hewce ne ku pênc deqeyan li wir razin, ne zêde. Û dûv re pirs derdikeve: ji vê malpera me bi giştî çend firot hebûn? Çiqas-çiqas? Wateya "sifir" çi ye? Û ev tê wê wateyê: ji ber ku general sala borî her çar danûstandin li ser heman maseyê, bi heman kesên ku bi wan re diçin serşokê û li ser sifrê rûdiniştin, kirin. Û em fêm dikin ku her çend malper rojekê rûne jî, dê tiştek tirsnak çênebe.

Li ser bingeha agahdariya destpêkê, rojek heye ku vê çîrokê bilind bike. Werin em dest bi ramana plansaziyek zêdebûnê bikin. Û em ji bo vê nimûneyê nexşeya zêdebûnê ya herî îdeal hildibijêrin: em zêdebûnê bikar naynin. Ev hemî tişt dikare ji hêla her admin ve di nav nîv saetê de bi şikestinên dûmanê ve were rakirin. Pêşkêşkerek malperê saz bikin, pelan lê zêde bikin - ew e. Wê bixebite. Ne hewce ye ku meriv çavê xwe li tiştek bigire, ne hewce ye ku hûn bala xwe bidin tiştek. Ango, encam ji mînaka jimare yek pir eşkere ye: karûbarên ku ne hewce ne ku bêne veqetandin ne hewce ne ku bêne veqetandin.

Failover: kamilperestî û... tembelî me xera dike

Mînak hejmar du

Bloga şirketê: kesên taybet perwerdekirî li wir nûçeyan dinivîsin, em beşdarî pêşangeheke filan bûn, lê me berhemek din a nû derxist û hwd. Ka em bibêjin ev PHP-ya standard bi WordPress re, databasek piçûk û piçek statîk e. Bê guman, dîsa tê bîra we ku hûn di bin şert û mercan de razan nebin - "bêtirî pênc hûrdeman!" Ew hemî ye. Lê em bêtir bifikirin. Ev blog çi dike? Mirov ji Yandex, ji Google li ser bingeha hin pirsan, organîkî têne wir. Ecêb. Ma firotan tiştek pê re heye? Epiphany: ne bi rastî. Trafîka reklamê diçe malpera sereke, ku li ser makîneyek cûda ye. Ka em dest bi ramana nexşeyek veqetandinê bikin. Bi awayek baş, pêdivî ye ku ew di nav çend demjimêran de were rakirin, û dê xweş be ku meriv ji bo vê yekê amade bike. Dê maqûl be ku meriv makîneyek ji navendek daneyê din bigire, hawîrdorê li ser wê bizivirîne, ango serverek malperê, PHP, WordPress, MySQL, û li wir bihêle. Wextê ku em fam dikin ku her tişt şikestî ye, divê em du tiştan bikin - 50 metre çolê mysql derxînin, ew ê di deqeyekê de li wir bifire, û hejmareke diyar a wêneyan ji paşvekêşanê li wir derxîne. Ev jî ne ji bo ku Xwedê dizane heta kengî. Bi vî rengî, di nîv saetê de hemî tişt radibe. Ne dubarekirin, an Xwedê min bibore, têkçûna otomatîkî. Encam: tiştê ku em dikarin zû ji paşvekişandinê derxînin, ne hewce ye ku were piştguh kirin.

Failover: kamilperestî û... tembelî me xera dike

Mînak hejmar sê, tevlihevtir

Online store. PhP-ya bi dilê vekirî piçekî tweaked e, mysql bi bingehek zexm e. Pir pir statîk (ji ber vê yekê, firotgeha serhêl wêneyên xweşik ên HD û hemî tiştên wê hene), Redis ji bo danişînê û Elasticsearch ji bo lêgerînê. Em dest pê dikin ku li ser demdirêjê bifikirin. Û li vir, bê guman, eşkere ye ku firotgehek serhêl nikare rojek bê êş li dora xwe derewan bike. Beriya her tiştî, ew çiqas dirêj bimîne, em bêtir drav winda dikin. Hêjayî lezkirinê ye. Çiqas? Ez difikirim ku em saetekê razên, kes dîn nabe. Erê, em ê tiştek winda bikin, lê heke em dest bi xebata dijwar bikin, ew ê xirabtir bibe. Em plansaziyek dorhêla ku her demjimêrek destûr tê dayîn diyar dikin.

Ev hemû çawa dikarin bên parastin? Di her rewşê de hûn hewceyê otomobîlek in: demjimêrek dem pir hindik e. Mysql: Li vir em jixwe pêdivî bi dubarekirinê, dubarekirina zindî heye, ji ber ku di saetekê de 100 GB bi îhtîmalek mezin dê li çopê neyê zêdekirin. Statîk, wêne: dîsa, di saetekê de 500 GB dibe ku dem tune ku were zêdekirin. Ji ber vê yekê, çêtir e ku hûn tavilê wêneyan kopî bikin. Redis: Li vir tişt balkêş dibin. Li Redis, danişîn têne hilanîn - em nekarin tenê wê bigirin û binax bikin. Ji ber ku ev ê ne pir baş be: dê hemî bikarhêner werin derxistin, selikên wan dê bêne vala kirin û hwd. Mirov dê neçar bibin ku ji nû ve navê bikarhêner û şîfreya xwe binivîsin, û dibe ku gelek kes ji hev veqetin û kirînê temam nekin. Dîsa, veguherîn dê dakevin. Ji hêla din ve, Redis rasterast nûvekirî ye, digel ku bikarhênerên paşîn ên têketî ne hewce ne jî. Û lihevkirinek baş ev e ku hûn Redis bistînin û wê ji paşvekêşana ji duh ve, an jî, heke hûn wê her demjimêrekê bikin, ji saetek berê ve vegerînin. Xwezî, vegerandina wê ji hilanînê tê wateya kopîkirina yek pelê. Û çîroka herî balkêş Elasticsearch e. Kê çu carî dubarekirina MySQL hildaye? Kê çu carî dubarekirina Elasticsearch hilbijartiye? Û piştî ku ew bi gelemperî xebitî? Mebesta min ev e ku em di pergala xwe de saziyek diyarkirî dibînin. Wusa dixuye ku kêrhatî ye - lê ew tevlihev e.
Di vê wateyê de tevlihev e ku endezyarên me yên hevalên me çu ezmûna xebatê bi wê re tune. An jî ezmûnek neyînî heye. An jî em fam dikin ku ev hîn jî teknolojiyek nû ye ku bi nuwaze an xav e. Em difikirin... Lanet, elastîk jî saxlem e, di heman demê de demek dirêj digire ku meriv wê ji paşvekêşanê vegerîne, divê ez çi bikim? Em fêm dikin ku elastîk di doza me de ji bo lêgerînê tê bikar anîn. Firotana meya serhêl çawa difiroşe? Em diçin ba bazarganan û dipirsin mirov ji ku derê tên. Ew bersiv didin: "90% ji Yandex Market rasterast tê qerta hilberê." Û yan ew bikirin yan jî nekin. Ji ber vê yekê, lêgerîn ji hêla 10% bikarhêneran ve hewce ye. Û domandina dubarekirina elastîk, nemaze di navbera navendên daneyên cihêreng ên li deverên cihêreng de, bi rastî gelek nuwaze hene. Kîjan derketin? Em elastîkê ji malperek parastî digirin û pê re tiştek nakin. Ger doz dirêj bibe, dibe ku em rojekê wê rakin, lê ew ne diyar e. Bi rastî, encam yek e, zêde an kêm: em, dîsa, karûbarên ku bandorê li drav nakin rezerv nakin. Ji bo ku diagram hêsan bimîne.

Failover: kamilperestî û... tembelî me xera dike

Mînaka hejmara çar, hîn dijwartir e

Integrator: firotina kulîlkan, gazîkirina taksiyê, firotana tiştan, bi gelemperî, tiştek. Tiştek cidî ku ji bo hejmareke mezin ji bikarhêneran 24/7 dixebite. Bi stûnek balkêş a bêkêmasî, li ku derê bingehên balkêş, çareserî, bargiraniya bilind hene, û ya herî girîng jî, ew diêşe ku ji 5 hûrdeman bêtir razan. Ne tenê û ne ew qas ji ber ku mirov wê nekirin, lê ji ber ku mirov wê bibîne ku ev tişt naxebite, ew ê aciz bibin û dibe ku qet venegerin.

OK. Pênc deqîqe. Em ê ji bo vê yekê çi bikin? Di vê rewşê de, em, mîna mezinan, hemî drav bikar tînin da ku malperek paşvekêşana rastîn, bi dubarekirina her tiştî ava bikin, û dibe ku heya ku gengaz be veguheztina vê malperê bixweber jî bikin. Û ji bilî vê, hûn hewce ne ku ji bîr mekin ku tiştek girîng bikin: Bi rastî, rêzikên guheztinê binivîsin. Rêzik, hetta ku we her tişt otomatîk hebe, dikare pir hêsan be. Ji rêzenivîsa "nivîskarek wusa û wusa bimeşîne", "li rêça 53-ê li qutiya kontrolê ya wusa û wusa bikirtînin" û hwd - lê divê ev celeb navnîşek rastîn a çalakiyan be.

Û her tişt zelal xuya dike. Veguheztina replikasyonê karekî hindik e, an jî ew ê xwe biguherîne. Ji nû ve nivîsandina navek domainê di DNS de ji heman rêzê ye. Pirsgirêk ev e ku gava projeyek weha têk diçe, panîk dest pê dike, û tewra rêvebirên herî bihêz, rih jî dikarin jê re hesap bibin. Bêyî rêwerzên zelal "termînalê vekin, werin vir, navnîşana servera me hîn jî bi vî rengî ye," dijwar e ku meriv sînorê dema 5-deqîqê ya ku ji bo vejînê hatî veqetandin bicîh bîne. Welê, zêde, dema ku em van rêziknameyan bikar tînin, hêsan e ku meriv hin guheztinên di binesaziyê de tomar bike, mînakî, û li gorî vê rêziknameyê biguhezîne.
Welê, heke pergala veqetandinê pir tevlihev e û di deverekê de me xeletiyek kir, wê hingê em dikarin malpera xweya paşvekişandinê hilweşînin, û di ser de jî daneyan li ser her du malperan bikin kulîlk - ev ê bi tevahî xemgîn be.

Failover: kamilperestî û... tembelî me xera dike

Mînaka hejmara pênc, bi tevahî hişk

Karûbarek navneteweyî ya ku li çaraliyê cîhanê bi sed mîlyon bikarhêneran heye. Hemî deverên demjimêr li wir hene, bi leza herî zêde barkirina zêde, hûn nikanin qet razin. Deqeyek - û ew ê xemgîn be. Çi bikim? Reserve, dîsa, li gor bernameya full. Me her tiştê ku min di mînaka berê de behs kir, û hinekî din jî kir. Cîhanek îdeal, û binesaziya me li gorî hemî têgehên IaaC devops e. Ango, her tişt di git de ye, û hûn tenê bişkojkê pê bikin.

Çi kêm e? Yek - temrîn. Bêyî wan ne mimkûn e. Wusa dixuye ku her tişt bi me re bêkêmasî ye, em bi gelemperî her tişt di bin kontrolê de ne. Em bişkojkê pêl dikin, her tişt dibe. Heger weha be jî - û em fam dikin ku bi vî rengî nabe - pergala me bi hin pergalên din re têkilî dike. Mînakî, ev dns ji riya 53, hilanîna s3, yekbûnek bi hin api re ye. Em ê nikaribin di vê ceribandina spekulatîf de her tiştî pêşbînî bikin. Û heya ku em bi rastî veguheztinê nekişînin, em ê nizanin ka ew ê bixebite an na.

Failover: kamilperestî û... tembelî me xera dike

Ew dibe ku hemî. Ne tembel bin û ne jî zêde bikin. Û dibe ku dema xebatê bi we re be!

Source: www.habr.com

Add a comment