Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

Å odien pakalpojumam Bitrix24 nav simtiem gigabitu trafika, kā arÄ« tam nav milzÄ«ga serveru parka (lai gan, protams, ir diezgan daudz esoÅ”o). Taču daudziem klientiem tas ir galvenais rÄ«ks darbam uzņēmumā, tā ir reāla biznesam svarÄ«ga aplikācija. Tāpēc krist nav iespējams. Kā bÅ«tu, ja avārija tomēr notiktu, bet pakalpojums ā€œatkoptosā€ tik ātri, ka neviens neko nepamanÄ«tu? Un kā ir iespējams Ä«stenot failover, nezaudējot darba kvalitāti un klientu skaitu? Aleksandrs Demidovs, Bitrix24 mākoņpakalpojumu direktors, mÅ«su emuāram runāja par rezervÄ“Å”anas sistēmas attÄ«stÄ«bu 7 produkta pastāvÄ“Å”anas gadu laikā.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

ā€œMēs Bitrix24 izlaidām kā SaaS pirms 7 gadiem. Galvenās grÅ«tÄ«bas, iespējams, bija Ŕādas: pirms tas tika publiski izlaists kā SaaS, Å”is produkts vienkārÅ”i pastāvēja iesaiņota risinājuma formātā. Klienti to iegādājās no mums, mitināja savos serveros, izveidoja korporatÄ«vo portālu - vispārējs risinājums darbinieku saziņai, failu glabāŔanai, uzdevumu pārvaldÄ«bai, CRM, tas arÄ« viss. Un lÄ«dz 2012. gadam mēs nolēmām, ka vēlamies to palaist kā SaaS, administrējot to paÅ”i, nodroÅ”inot kļūdu toleranci un uzticamÄ«bu. Pieredzi ieguvām pa ceļam, jo ā€‹ā€‹lÄ«dz tam mums tās vienkārÅ”i nebija ā€“ bijām tikai programmatÅ«ras ražotāji, nevis pakalpojumu sniedzēji.

Uzsākot pakalpojumu, mēs sapratām, ka vissvarÄ«gākais ir nodroÅ”ināt kļūdu toleranci, uzticamÄ«bu un pastāvÄ«gu pakalpojuma pieejamÄ«bu, jo, ja jums ir vienkārÅ”a parasta vietne, piemēram, veikals, un tas jums uzkrÄ«t un tur sēž. stundu, tikai jÅ«s cieÅ”at, jÅ«s zaudējat pasÅ«tÄ«jumus, jÅ«s zaudējat klientus, bet paÅ”am klientam tas viņam nav Ä«paÅ”i svarÄ«gi. ViņŔ, protams, bija sarÅ«gtināts, bet aizgāja un nopirka to citā vietnē. Un, ja Ŕī ir aplikācija, uz kuras ir piesaistÄ«ts viss darbs uzņēmuma iekÅ”ienē, komunikācija, lēmumi, tad svarÄ«gākais ir iegÅ«t lietotāju uzticÄ«bu, proti, nepievilt un nepakrist. Jo viss darbs var apstāties, ja kaut kas iekŔā nedarbojas.

Bitrix.24 kā SaaS

Pirmo prototipu samontējām gadu pirms publiskās palaiÅ”anas, 2011. gadā. Mēs to samontējām apmēram nedēļas laikā, apskatÄ«jām, pagriezām - tas pat strādāja. Tas ir, jÅ«s varētu ieiet formā, ievadÄ«t tur portāla nosaukumu, tiktu atvērts jauns portāls un izveidota lietotāju bāze. Mēs to apskatÄ«jām, principā novērtējām produktu, nodevām metāllūžņos un turpinājām to pilnveidot veselu gadu. Tā kā mums bija liels uzdevums: mēs negribējām izveidot divas dažādas kodu bāzes, mēs negribējām atbalstÄ«t atseviŔķu iepakotu produktu, atseviŔķus mākoņa risinājumus - mēs vēlējāmies to visu izdarÄ«t vienā kodā.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

Tipiska tÄ«mekļa aplikācija tajā laikā bija viens serveris, uz kura darbojas kaut kāds PHP kods, mysql datubāze, tiek augÅ”upielādēti faili, dokumenti, attēli tiek ievietoti augÅ”upielādes mapē - labi, tas viss darbojas. Diemžēl, izmantojot Å”o, nav iespējams palaist kritiski stabilu tÄ«mekļa pakalpojumu. Tur izplatÄ«tā keÅ”atmiņa netiek atbalstÄ«ta, datu bāzes replikācija netiek atbalstÄ«ta.

Mēs formulējām prasÄ«bas: tā ir iespēja atrasties dažādās vietās, atbalstÄ«t replikāciju un ideālā gadÄ«jumā atrasties dažādos Ä£eogrāfiski sadalÄ«tos datu centros. Atdaliet produkta loÄ£iku un faktiski datu glabāŔanu. Spēt dinamiski mērogot atbilstoÅ”i slodzei un vispār izturēt statiku. No Å”iem apsvērumiem faktiski radās prasÄ«bas produktam, kuras mēs gada laikā precizējām. Å ajā laikā platformā, kas izrādÄ«jās vienota - kastÄ«tiem risinājumiem, mÅ«su paÅ”u servisam - veicām atbalstu tām lietām, kas mums bija vajadzÄ«gas. Mysql replikācijas atbalsts paÅ”a produkta lÄ«menÄ«: tas ir, izstrādātājs, kurÅ” raksta kodu, nedomā par to, kā tiks izplatÄ«ti viņa pieprasÄ«jumi, viņŔ izmanto mÅ«su api, un mēs zinām, kā pareizi izplatÄ«t rakstÄ«Å”anas un lasÄ«Å”anas pieprasÄ«jumus starp meistariem. un vergi.

Mēs esam nodroÅ”inājuÅ”i atbalstu produktu lÄ«menÄ« dažādām mākoņa objektu krātuvēm: Google krātuvei, amazon s3, kā arÄ« atbalstam atvērtā steka swift. Tāpēc tas bija ērti gan mums kā pakalpojumam, gan izstrādātājiem, kuri strādā ar iepakotu risinājumu: ja viņi vienkārÅ”i izmanto mÅ«su API darbam, viņi nedomā par to, kur fails galu galā tiks saglabāts, lokāli failu sistēmā vai objektu failu krātuvē.

Rezultātā uzreiz nolēmām, ka rezervēsim visa datu centra lÄ«menÄ«. 2012. gadā mēs pilnÄ«bā izlaidām pakalpojumu Amazon AWS, jo mums jau bija pieredze ar Å”o platformu ā€” tur tika mitināta mÅ«su paÅ”u vietne. MÅ«s piesaistÄ«ja fakts, ka katrā reÄ£ionā Amazon ir vairākas pieejamÄ«bas zonas ā€“ patiesÄ«bā (to terminoloÄ£ijā) vairāki datu centri, kas ir vairāk vai mazāk neatkarÄ«gi viens no otra un ļauj rezervēt vesela datu centra lÄ«menÄ«: ja tas pēkŔņi neizdodas, datu bāzes tiek replicētas par galveno-masters, tÄ«mekļa lietojumprogrammu serveri tiek dublēti un statiskie dati tiek pārvietoti uz s3 objektu krātuvi. Slodze ir sabalansēta - toreiz pa Amazon elb, bet nedaudz vēlāk tikām pie saviem slodzes balansētājiem, jo ā€‹ā€‹vajadzēja sarežģītāku loÄ£iku.

Tas, ko viņi gribēja, ir tas, ko viņi saņēma...

Visas pamata lietas, ko vēlējāmies nodroÅ”ināt ā€“ paÅ”u serveru kļūdu tolerance, tÄ«mekļa lietojumprogrammas, datu bāzes ā€“ viss darbojās labi. VienkārŔākais scenārijs: ja kāda no mÅ«su tÄ«mekļa lietojumprogrammām neizdodas, tad viss ir vienkārÅ”i - tās tiek izslēgtas no balansÄ“Å”anas.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

Balansētājs (tolaik tas bija Amazon elbs) nederÄ«gās maŔīnas atzÄ«mēja un izslēdza uz tām slodzes sadali. Amazon automātiskā mērogoÅ”ana darbojās: kad slodze pieauga, automātiskās mērogoÅ”anas grupai tika pievienotas jaunas iekārtas, slodze tika sadalÄ«ta jaunām maŔīnām - viss bija kārtÄ«bā. Ar mÅ«su balansieriem loÄ£ika ir aptuveni tāda pati: ja kaut kas notiek ar lietojumprogrammu serveri, mēs noņemam no tā pieprasÄ«jumus, izmetam Ŕīs maŔīnas, iedarbinām jaunas un turpinām strādāt. Shēma gadu gaitā ir nedaudz mainÄ«jusies, bet turpina darboties: tā ir vienkārÅ”a, saprotama, un ar to nav nekādu grÅ«tÄ«bu.

Mēs strādājam visā pasaulē, klientu slodzes maksimumi ir pilnÄ«gi atŔķirÄ«gi, un draudzÄ«gā veidā mums vajadzētu bÅ«t iespējai jebkurā laikā - klientiem nepamanÄ«ti - veikt noteiktus servisa darbus jebkurai mÅ«su sistēmas sastāvdaļai. LÄ«dz ar to mums ir iespēja atslēgt datu bāzi no darbÄ«bas, pārdalot slodzi uz otru datu centru.

Kā tas viss darbojas? ā€” Pārslēdzam trafiku uz strādājoÅ”u datu centru - ja datu centrā notiek avārija, tad pilnÄ«bā, ja tas ir mÅ«su plānotais darbs ar vienu datu bāzi, tad daļu trafika, kas apkalpo Å”os klientus, pārslēdzam uz otru datu centru, apturot tā replikācija. Ja tÄ«mekļa lietojumprogrammām ir nepiecieÅ”amas jaunas maŔīnas, jo ir palielinājusies otrā datu centra slodze, tās tiks startētas automātiski. Mēs pabeidzam darbu, tiek atjaunota replikācija, un mēs atgriežam visu slodzi. Ja mums ir jāatspoguļo kāds darbs otrajā DC, piemēram, jāinstalē sistēmas atjauninājumi vai jāmaina iestatÄ«jumi otrajā datu bāzē, tad kopumā mēs atkārtojam to paÅ”u, tikai otrā virzienā. Un, ja tas ir nelaimes gadÄ«jums, tad mēs visu darām triviāli: mēs izmantojam notikumu apstrādātāju mehānismu uzraudzÄ«bas sistēmā. Ja tiek aktivizētas vairākas pārbaudes un statuss kļūst kritisks, mēs palaižam Å”o apdarinātāju, kas var veikt Å”o vai citu loÄ£iku. Katrai datu bāzei mēs norādām, kurÅ” serveris ir tās kļūmjpārlēce un kur ir jāpārslēdz trafiks, ja tā nav pieejama. Vēsturiski mēs vienā vai otrā veidā izmantojam nagios vai dažas tās dakÅ”iņas. Principā lÄ«dzÄ«gi mehānismi pastāv gandrÄ«z jebkurā monitoringa sistēmā, neko sarežģītāku pagaidām neizmantojam, bet varbÅ«t kādreiz izmantosim. Tagad uzraudzÄ«bu aktivizē nepieejamÄ«ba, un tai ir iespēja kaut ko pārslēgt.

Vai esam visu rezervējuÅ”i?

Mums ir daudz klientu no ASV, daudzi klienti no Eiropas, daudzi klienti, kas atrodas tuvāk Austrumiem ā€“ Japānai, SingapÅ«rai un tā tālāk. Protams, milzÄ«ga klientu daļa ir Krievijā. Tas ir, darbs nav vienā reÄ£ionā. Lietotāji vēlas ātru atbildi, ir prasÄ«bas ievērot dažādus vietējos likumus, un katrā reÄ£ionā mēs rezervējam divus datu centrus, kā arÄ« ir daži papildu pakalpojumi, kurus atkal ir ērti izvietot viena reÄ£iona ietvaros - klientiem, kuri atrodas Å”is reÄ£ions strādā. REST apstrādātāji, autorizācijas serveri, tie ir mazāk kritiski klienta darbÄ«bai kopumā, jÅ«s varat pārslēgties caur tiem ar nelielu pieņemamu kavÄ“Å”anos, bet jÅ«s nevēlaties izgudrot riteni, kā tos uzraudzÄ«t un ko darÄ«t ar viņiem. Tāpēc mēs cenÅ”amies maksimāli izmantot esoÅ”os risinājumus, nevis attÄ«stÄ«t kaut kādu kompetenci papildu produktos. Un kaut kur mēs triviāli izmantojam pārslēgÅ”anu DNS lÄ«menÄ«, un pakalpojuma dzÄ«vÄ«gumu mēs nosakām ar to paÅ”u DNS. Amazon ir pakalpojums Route 53, taču tas nav tikai DNS, kurā varat veikt ierakstus, un viss ā€” tas ir daudz elastÄ«gāks un ērtāks. Izmantojot to, jÅ«s varat izveidot Ä£eogrāfiski izplatÄ«tus pakalpojumus ar Ä£eogrāfiskajām atraÅ”anās vietām, kad to izmantojat, lai noteiktu, no kurienes klients ir nācis, un sniegtu viņam noteiktus ierakstus - ar tā palÄ«dzÄ«bu jÅ«s varat izveidot kļūmjpārlēces arhitektÅ«ras. Tādas paÅ”as veselÄ«bas pārbaudes ir konfigurētas paŔā marÅ”rutā 53, jÅ«s iestatāt uzraugāmos galapunktus, iestatāt metriku, iestatāt, ar kādiem protokoliem nosaka pakalpojuma ā€œdzÄ«vÄ«buā€ - tcp, http, https; iestatiet pārbaužu biežumu, kas nosaka, vai pakalpojums ir vai nav. Un paŔā DNS jÅ«s norādāt, kas bÅ«s primārais, kas sekundārais, kur pārslēgties, ja tiek aktivizēta veselÄ«bas pārbaude marÅ”rutā 53. To visu var izdarÄ«t ar dažiem citiem rÄ«kiem, bet kāpēc tas ir ērti - mēs to iestatām vienreiz augŔā un tad vispār nedomā, kā mēs veicam pārbaudes, kā pārslēdzamies: viss darbojas pats no sevis.

Pirmais "bet": kā un ar ko rezervēt paÅ”u 53. marÅ”rutu? Kas zina, ja nu ar viņu kaut kas notiks? Par laimi, mēs nekad neuzkāpām uz Ŕī grābekļa, bet man atkal bÅ«s stāsts par to, kāpēc mums likās, ka mums tomēr ir jāveic rezervācija. Å eit mēs iepriekÅ” izlikām sev salmiņus. Vairākas reizes dienā veicam visu zonu pilnÄ«gu izkrauÅ”anu, kas mums ir 53. marÅ”rutā. Amazon API ļauj ērti nosÅ«tÄ«t tos JSON formātā, un mums ir vairāki rezerves serveri, kur mēs to konvertējam, augÅ”upielādējam konfigurāciju veidā un, rupji runājot, ir rezerves konfigurācija. Ja kaut kas notiek, mēs varam to ātri izvietot manuāli, nezaudējot DNS iestatÄ«jumu datus.

Otrais "bet": Kas Å”ajā attēlā vēl nav rezervēts? Pats balansētājs! MÅ«su klientu sadalÄ«jums pa reÄ£ioniem ir ļoti vienkārÅ”s. Mums ir domēni bitrix24.ru, bitrix24.com, .de - tagad ir 13 dažādi, kas darbojas dažādās zonās. Nonācām pie tā: katram reÄ£ionam ir savi balansētāji. Tas padara ērtāku sadali pa reÄ£ioniem atkarÄ«bā no tā, kur ir tÄ«kla maksimālā slodze. Ja tā ir kļūme viena balansētāja lÄ«menÄ«, tad tas vienkārÅ”i tiek izņemts no ekspluatācijas un izņemts no dns. Ja ir kādas problēmas ar balansētāju grupu, tad tie tiek dublēti citās vietnēs, un pārslēgÅ”anās starp tām notiek, izmantojot to paÅ”u marÅ”rutu53, jo Ä«sā TTL dēļ pārslēgÅ”anās notiek maksimāli 2, 3, 5 minÅ«Å”u laikā. .

TreÅ”ais "bet": Kas vēl nav rezervēts? S3, pareizi. Kad ievietojām failus, ko glabājam lietotājiem s3, mēs patiesi ticējām, ka tas ir bruņu caurdurÅ”anas veids, un tur nekas nav jārezervē. Taču vēsture rāda, ka lietas notiek savādāk. Kopumā Amazon raksturo S3 kā fundamentālu pakalpojumu, jo Amazon pati izmanto S3, lai saglabātu maŔīnu attēlus, konfigurācijas, AMI attēlus, momentuzņēmumus... Un, ja s3 avarē, kā tas notika vienu reizi pa Å”iem 7 gadiem, tik ilgi, cik mēs esam lietojuÅ”i bitrix24, tas seko tam kā ventilators. Ir daudz lietu, kas rodas ā€“ nespēja startēt virtuālās maŔīnas, api kļūme utt.

Un S3 var nokrist - tas notika vienreiz. LÄ«dz ar to nonācām pie Ŕādas shēmas: pirms dažiem gadiem Krievijā nebija nopietnu sabiedrisko objektu krātuves, un mēs apsvērām variantu kaut ko darÄ«t paÅ”i... Par laimi, nesākām to darÄ«t, jo mēs to darÄ«tu. esam iedziļinājuÅ”ies zināŔanām, kuru mums nav, un, iespējams, sajauktos. Tagad Mail.ru ir ar s3 saderÄ«ga krātuve, tā ir pieejama Yandex un daudziem citiem pakalpojumu sniedzējiem. Galu galā mēs nonācām pie domas, ka vēlamies, pirmkārt, iegÅ«t dublējumu un, otrkārt, iespēju strādāt ar vietējām kopijām. Konkrēti Krievijas reÄ£ionā mēs izmantojam pakalpojumu Mail.ru Hotbox, kas ir API saderÄ«gs ar s3. Mums nebija vajadzÄ«gas nekādas lielas lietojumprogrammas koda modifikācijas, un mēs izveidojām Ŕādu mehānismu: s3 ir trigeri, kas aktivizē objektu izveidi/dzÄ“Å”anu, Amazon piedāvā pakalpojumu ar nosaukumu Lambda ā€” Ŕī ir koda palaiÅ”ana bez servera. kas tiks izpildÄ«ts tieÅ”i tad, kad tiks aktivizēti noteikti aktivizētāji.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

Mēs to izdarÄ«jām ļoti vienkārÅ”i: ja mÅ«su aktivizētājs iedarbojas, mēs izpildām kodu, kas kopēs objektu uz Mail.ru krātuvi. Lai pilnÄ«bā uzsāktu darbu ar vietējām datu kopijām, mums ir nepiecieÅ”ama arÄ« reversā sinhronizācija, lai klienti, kas ir Krievijas segmentā, varētu strādāt ar viņiem tuvāku krātuvi. Pasts gatavojas pabeigt trigerus savā krātuvē - bÅ«s iespējams veikt reverso sinhronizāciju infrastruktÅ«ras lÄ«menÄ«, bet pagaidām mēs to darām sava koda lÄ«menÄ«. Ja redzam, ka klients ir ievietojis failu, tad koda lÄ«menÄ« notikumu ievietojam rindā, apstrādājam un veicam reverso replikāciju. Kāpēc tas ir slikti: ja mēs kādu darbu ar saviem objektiem veicam ārpus mÅ«su produkta, tas ir, ar kādiem ārējiem lÄ«dzekļiem, mēs to neņemsim vērā. Tāpēc mēs gaidām lÄ«dz beigām, kad krātuves lÄ«menÄ« parādās trigeri, lai neatkarÄ«gi no tā, no kurienes mēs izpildām kodu, objekts, kas nonāca pie mums, tiek kopēts otrā virzienā.

Koda lÄ«menÄ« mēs katram klientam reÄ£istrējam abas krātuves: viena tiek uzskatÄ«ta par galveno, otra tiek uzskatÄ«ta par rezerves. Ja viss ir kārtÄ«bā, mēs strādājam ar krātuvi, kas mums ir tuvāka: tas ir, mÅ«su klienti, kas atrodas Amazon, viņi strādā ar S3, un tie, kas strādā Krievijā, viņi strādā ar Hotbox. Ja karodziņŔ tiek aktivizēts, ir jāpievieno kļūmjpārlēce, un mēs pārslēdzam klientus uz citu krātuvi. Mēs varam atzÄ«mēt Å”o izvēles rÅ«tiņu neatkarÄ«gi pēc reÄ£iona un pārslēgt tos uz priekÅ”u un atpakaļ. Mēs to vēl neesam izmantojuÅ”i praksē, bet esam paredzējuÅ”i Å”o mehānismu un domājam, ka kādreiz mums bÅ«s vajadzÄ«gs un noderēs tieÅ”i Å”is slēdzis. Tas jau vienreiz ir noticis.

Ak, un Amazon aizbēga...

Å Ä« gada aprÄ«lÄ« tiek atzÄ«mēta gadadiena kopÅ” Telegram bloÄ·Ä“Å”anas sākuma Krievijā. Visvairāk ietekmētais pakalpojumu sniedzējs, uz kuru tas attiecas, ir Amazon. Un diemžēl vairāk cieta Krievijas uzņēmumi, kas strādāja visai pasaulei.

Ja uzņēmums ir globāls un Krievija tam ir ļoti mazs segments, 3-5% - nu, tā vai tā, jūs varat tos upurēt.

Ja tas ir tÄ«ri Krievijas uzņēmums - esmu pārliecināts, ka tam ir jāatrodas lokāli -, labi, tas vienkārÅ”i bÅ«s ērti paÅ”iem lietotājiem, ērti un bÅ«s mazāk risku.

Ko darīt, ja tas ir uzņēmums, kas darbojas globāli un kuram ir aptuveni vienāds klientu skaits no Krievijas un kaut kur citur pasaulē? Segmentu savienojamība ir svarīga, un tiem vienā vai otrā veidā ir jādarbojas vienam ar otru.

2018. gada marta beigās Roskomnadzor nosÅ«tÄ«ja vēstuli lielākajiem operatoriem, ka plāno bloķēt vairākus miljonus Amazon IP, lai bloķētu... Zello messenger. Pateicoties Å”iem paÅ”iem pakalpojumu sniedzējiem - viņi veiksmÄ«gi nopludināja vēstuli visiem, un radās izpratne, ka saikne ar Amazon var izjukt. Bija piektdiena, mēs panikā skrējām pie kolēģiem no servers.ru, sakot: ā€œDraugi, mums ir vajadzÄ«gi vairāki serveri, kas atradÄ«sies nevis Krievijā, nevis Amazonā, bet, piemēram, kaut kur Amsterdamā,ā€ secÄ«bā. uz, lai varētu vismaz kaut kā instalēt savu VPN un starpniekserveri dažiem galapunktiem, kurus mēs nekādā veidā nevaram ietekmēt, piemēram, tā paÅ”a s3 galapunktiem - mēs nevaram mēģināt izveidot jaunu pakalpojumu un iegÅ«t citu IP, mums vēl ir jānokļūst tur. Tikai dažu dienu laikā mēs uzstādÄ«jām Å”os serverus, palaidām tos un kopumā sagatavojāmies brÄ«dim, kad sākās bloÄ·Ä“Å”ana. Interesanti, ka RKN, skatoties uz satraukumu un paniku, teica: "Nē, mēs tagad neko nebloķēsim." (Bet tas ir tieÅ”i lÄ«dz brÄ«dim, kad sāka bloķēt Telegram.) IekārtojuÅ”i apvedceļa iespējas un sapratuÅ”i, ka bloÄ·Ä“Å”ana nav ieviesta, mēs tomēr nesākām visu lietu sakārtot. Jā, katram gadÄ«jumam.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

Un 2019. gadā mēs joprojām dzÄ«vojam bloÄ·Ä“Å”anas apstākļos. Vakar vakarā paskatÄ«jos: aptuveni miljons IP joprojām tiek bloķēti. Tiesa, Amazon tika gandrÄ«z pilnÄ«bā atbloķēts, maksimumā tas sasniedza 20 miljonus adreÅ”u... Kopumā realitāte ir tāda, ka var nebÅ«t saskaņotÄ«bas, labas saskaņotÄ«bas. PēkŔņi. Tā var nebÅ«t tehnisku iemeslu dēļ ā€“ ugunsgrēki, ekskavatori, tas viss. Vai arÄ«, kā mēs redzējām, ne gluži tehniski. LÄ«dz ar to kāds liels un liels, ar saviem AS, droÅ”i vien var Å”o to nokārtot citādi - tieÅ”ais savienojums un citas lietas jau ir l2 lÄ«menÄ«. Bet vienkārŔā versijā, piemēram, mÅ«su vai pat mazākā versijā, katram gadÄ«jumam var bÅ«t dublÄ“Å”ana kaut kur citur paceltu serveru lÄ«menÄ«, kas iepriekÅ” konfigurēts vpn, starpniekserveris, ar iespēju ātri pārslēgt konfigurāciju uz tiem Å”ajos segmentos. kas ir bÅ«tiski savienojamÄ«bai. Tas mums noderēja ne reizi vien, kad sākās Amazon bloÄ·Ä“Å”ana, sliktākajā gadÄ«jumā caur tiem ļāvām tikai S3 trafiku, bet pamazām tas viss atrisinājās.

Kā rezervēt... visu pakalpojumu sniedzēju?

PaÅ”laik mums nav scenārija, ja visa Amazon nokristu. Mums ir lÄ«dzÄ«gs scenārijs attiecÄ«bā uz Krieviju. Krievijā mÅ«s mitināja viens pakalpojumu sniedzējs, no kura izvēlējāmies vairākas vietnes. Un pirms gada mēs saskārāmies ar problēmu: lai gan tie ir divi datu centri, problēmas var rasties jau pakalpojumu sniedzēja tÄ«kla konfigurācijas lÄ«menÄ«, kas joprojām ietekmēs abus datu centrus. Un mēs varam nebÅ«t pieejami abās vietnēs. Protams, tā arÄ« notika. Mēs beidzām pārskatÄ«t arhitektÅ«ru iekÅ”pusē. Tas nav Ä«paÅ”i mainÄ«jies, taču Krievijai mums tagad ir divas vietnes, kas nav no viena un tā paÅ”a pakalpojumu sniedzēja, bet gan no divām dažādām. Ja viens neizdodas, mēs varam pārslēgties uz otru.

Hipotētiski Amazon mēs apsveram iespēju veikt rezervāciju cita pakalpojumu sniedzēja lÄ«menÄ«; varbÅ«t Google, varbÅ«t vēl kāds... Bet lÄ«dz Å”im praksē esam novērojuÅ”i, ka, kamēr Amazon notiek avārijas vienas pieejamÄ«bas zonas lÄ«menÄ«, tikmēr vesela reÄ£iona lÄ«menÄ« avārijas ir diezgan reti. Tāpēc teorētiski mums ir doma, ka mēs varētu veikt atrunu ā€œAmazon nav Amazonā€, taču praksē tas vēl nenotiek.

Daži vārdi par automatizāciju

Vai vienmēr ir nepiecieÅ”ama automatizācija? Å eit ir lietderÄ«gi atgādināt Danninga-Kruger efektu. Uz ā€œxā€ ass ir mÅ«su zināŔanas un pieredze, ko mēs iegÅ«stam, un uz ā€œyā€ ass ir pārliecÄ«ba par mÅ«su rÄ«cÄ«bu. Sākumā mēs neko nezinām un nemaz neesam pārliecināti. Tad mēs nedaudz zinām un kļūstam ļoti pārliecināti - tā ir tā sauktā ā€œstulbuma virsotneā€, ko labi ilustrē attēls ā€œplānprātÄ«ba un drosmeā€. Tad esam nedaudz mācÄ«juÅ”ies un esam gatavi doties kaujā. Tad mēs uzkāpjam uz dažām mega nopietnām kļūdām un nonākam izmisuma ielejā, kad it kā kaut ko zinām, bet patiesÄ«bā nezinām daudz. Tad, gÅ«stot pieredzi, kļūstam pārliecinātāki.

Bitrix24: ā€œTas, kas ātri pacelts, netiek uzskatÄ«ts par krituÅ”uā€

MÅ«su loÄ£ika par dažādiem automātiskajiem pārslēgÅ”anās gadÄ«jumiem uz noteiktiem negadÄ«jumiem ir ļoti labi aprakstÄ«ta Å”ajā grafikā. Sākām - neko nezinājām, gandrÄ«z viss darbs tika darÄ«ts ar rokām. Tad mēs sapratām, ka varam visam pievienot automatizāciju un, piemēram, mierÄ«gi gulēt. Un pēkŔņi mēs uzkāpjam uz mega-grābekļa: tiek aktivizēts kļūdains pozitÄ«vs rādÄ«tājs, un mēs pārslēdzam satiksmi uz priekÅ”u un atpakaļ, ja labā nozÄ«mē mums to nevajadzēja darÄ«t. LÄ«dz ar to replikācija sabojājas vai kaut kas cits ā€” Ŕī ir pati izmisuma ieleja. Un tad mēs nonākam pie izpratnes, ka mums visam jāpieiet gudri. Tas ir, ir jēga paļauties uz automatizāciju, paredzot viltus trauksmes iespēju. Bet! ja sekas var bÅ«t graujoÅ”as, tad labāk to atstāt dežūrmaiņā, dežurējoÅ”ajiem inženieriem, kuri pārliecināsies un uzraudzÄ«s, vai tieŔām ir notikusi avārija, un vajadzÄ«gās darbÄ«bas veiks manuāli...

Secinājums

7 gadu laikā mēs nonācām no tā, ka kaut kas nokrita, bija panika-panika, lÄ«dz sapratnei, ka problēmas neeksistē, ir tikai uzdevumi, tie ir - un var - atrisināt. Veidojot pakalpojumu, paskatieties uz to no augÅ”as, novērtējiet visus riskus, kas var rasties. Ja jÅ«s tos redzat uzreiz, tad iepriekÅ” paredziet atlaiÅ”anu un iespēju izveidot defektu izturÄ«gu infrastruktÅ«ru, jo jebkurÅ” punkts, kas var neizdoties un novest pie servisa nedarboÅ”anās, to noteikti darÄ«s. Un pat ja jums Ŕķiet, ka daži infrastruktÅ«ras elementi noteikti neizdosies - piemēram, tas pats s3, tomēr paturiet prātā, ka viņi var. Un vismaz teorētiski ir priekÅ”stats par to, ko jÅ«s ar viņiem darÄ«sit, ja kaut kas notiks. Ir riska pārvaldÄ«bas plāns. Kad domājat darÄ«t visu automātiski vai manuāli, novērtējiet riskus: kas notiks, ja automatizācija sāks visu pārslēgt - vai tas neradÄ«s vēl sliktāku situāciju salÄ«dzinājumā ar negadÄ«jumu? VarbÅ«t kaut kur ir jāizmanto saprātÄ«gs kompromiss starp automatizācijas izmantoÅ”anu un dežurējoŔā inženiera reakciju, kurÅ” izvērtēs reālo ainu un sapratÄ«s, vai kaut kas ir jāpārslēdz uz vietas vai "jā, bet ne tagad".

Saprātīgs kompromiss starp perfekcionismu un reālām pūlēm, laiku, naudu, ko varat tērēt shēmai, kas jums galu galā būs.

Å is teksts ir atjaunināta un paplaÅ”ināta versija Aleksandra Demidova ziņojumam konferencē Darba laiks 4. diena.

Avots: www.habr.com

Pievieno komentāru