Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Дар тобистон, ҳам фаъолияти харидорӣ ва ҳам шиддатнокии тағирот дар инфрасохтори лоиҳаҳои веб ба таври анъанавӣ коҳиш меёбад, капитан Обвиус ба мо мегӯяд. Танҳо аз он сабаб, ки ҳатто мутахассисони IT баъзан ба рухсатӣ мераванд. Ва CTO низ. Барои онҳое, ки дар вазифа боқӣ мемонанд, мушкилтар аст, аммо ҳоло гап ин нест: шояд аз ҳамин сабаб тобистон беҳтарин давра барои оҳиста-оҳиста дар бораи нақшаи мавҷудаи бронкунӣ фикр кардан ва нақшаи такмил додани он аст. Ва тачрибаи Егор Андреев аз Шӯъбаи маъмурӣ, ки дар бораи он дар конференция сухан ронд Рӯзи вақти корӣ.

Ҳангоми сохтани сайтҳои эҳтиётӣ шумо метавонед ба як қатор домҳо дучор шавед. Ва ба онҳо гирифтор шудан комилан ғайриимкон аст. Ва он чизе, ки моро дар ин ҳама, мисли бисёр чизҳои дигар хароб мекунад, комилиятпарастӣ ва... танбалӣ аст. Мо кӯшиш мекунем, ки ҳама чизро, ҳама чизро, ҳама чизро ба таври комил иҷро кунем, аммо ба мо лозим нест, ки онро ба таври комил иҷро кунем! Шумо бояд танҳо баъзе чизҳоро иҷро кунед, аммо онҳоро дуруст иҷро кунед, онҳоро пурра кунед, то онҳо дуруст кор кунанд.

Failover як навъ шавқовар нест, чизи шавқовар; ин корест, ки бояд маҳз як чизро иҷро кунад - вақти бекориро кам кунед, то ки хидмат, ширкат камтар пулро аз даст диҳад. Ва дар ҳама усулҳои фармоиш, ман пешниҳод мекунам, ки дар заминаи зерин фикр кунед: пул дар куҷост?

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Аввалин дом: вақте ки мо системаҳои калон ва боэътимод месозем ва ба зиёдатӣ машғул мешавем, мо шумораи фалокатҳоро кам мекунем. Ин як тасаввуроти даҳшатнок аст. Вақте ки мо ба ихтисоркунӣ машғул мешавем, мо эҳтимол шумораи садамаҳоро зиёд мекунем. Ва агар мо хама корро дуруст ба чо оварем, пас коллективона вакти бекористиро кам мекунем. Фалокат зиёд мешавад, аммо онҳо бо хароҷоти камтар рух медиҳанд. Бронкунӣ чист? — ин мураккабии система аст. Ҳар як мушкилӣ бад аст: мо бештар дандонҳо, фишангҳои бештар, ба ибораи дигар, элементҳои бештар дорем - ва аз ин рӯ, эҳтимолияти шикастани. Ва онҳо дар ҳақиқат мешикананд. Ва онҳо зуд-зуд мешикананд. Мисоли оддӣ: биёед бигӯем, ки мо вебсайте бо PHP ва MySQL дорем. Ва он бояд фавран захира карда шавад.

Штош (в) Мо сайти дуюмро мегирем, системаи якхеларо месозем... Мушкилот ду баробар зиёд мешавад - мо ду объект дорем. Мо инчунин як мантиқи муайянеро барои интиқоли маълумот аз як сайт ба сайти дигар - яъне такрори маълумот, нусхабардории маълумоти статикӣ ва ғайра таҳия мекунем. Ҳамин тариқ, мантиқи такрорӣ одатан хеле мураккаб аст ва аз ин рӯ, мураккабии умумии система метавонад на 2, балки 3, 5, 10 маротиба зиёдтар бошад.

Дуюм дом: Вақте ки мо системаҳои воқеан азими мураккаб месозем, мо дар бораи он чизе ки дар ниҳоят ба даст овардан мехоҳем, хаёл мекунем. Voila: мо мехоҳем як системаи бениҳоят боэътимод ба даст орем, ки бидуни таъхир кор кунад, дар ним сония (ё беҳтараш, фавран) иваз шавад ва мо ба амалӣ шудани орзуҳо шурӯъ мекунем. Аммо дар ин ҷо як нозуки низ ҳаст: вақти дилхоҳи гузариш ҳар қадар кӯтоҳтар бошад, мантиқи система ҳамон қадар мураккабтар мешавад. Чӣ қадаре ки мо бояд ин мантиқро мураккаб созем, система ҳамон қадар зуд вайрон мешавад. Ва шумо метавонед ба вазъияти хеле ногувор дучор шавед: мо бо тамоми қувва кӯшиш мекунем, ки вақти бекориро кам кунем, аммо дар асл мо ҳама чизро мураккабтар мегардонем ва вақте ки ягон хатогӣ рӯй медиҳад, вақти бекорӣ дарозтар мешавад. Дар ин чо зуд-зуд худатонро ба чунин фикр меандозед: хуб... брон накардан бехтар мебуд. Беҳтар мебуд, агар он танҳо ва бо бекористии фаҳмо кор мекард.

Чӣ тавр шумо метавонед бо ин мубориза баред? Мо бояд ба худ дурӯғ гуфтанро бас кунем, худамонро таъриф карданро бас кунем, ки мо ҳоло дар ин ҷо киштии кайҳонӣ месозем, аммо ба таври кофӣ фаҳмем, ки лоиҳа то чӣ андоза дурӯғ гуфта метавонад. Ва дар ин вақти максималӣ, мо интихоб хоҳем кард, ки кадом усулҳоро барои баланд бардоштани эътимоднокии системаи худ истифода мебарем.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Вакти он расидааст, ки «хикояхо аз w»... аз хаёт, албатта.

Мисоли рақами як

Тасаввур кунед, ки веб-сайти визиткавии заводи трубопрокати раками 1. шахри Н. Дар он бо харфхои калон гуфта шудааст — КОМБИНАТИ ТУРБОРБОЗИИ №1. Дар зерн ин шиор чунин аст: «Кубурхои мо кубурхои мудаввартарин дар Н. Ва дар зер рақами телефони директор ва номи ӯ оварда шудааст. Мо мефаҳмем, ки шумо бояд фармоиш диҳед - ин чизи хеле муҳим аст! Биёед бифаҳмем, ки он аз чӣ иборат аст. Html-static - яъне як ҷуфти расмҳо, ки дар он мудири генералӣ воқеан дар сари миз дар ҳаммом бо шарики худ як навъ созишномаи навбатиро муҳокима мекунад. Мо дар бораи вақти бекоркунӣ фикр карданро сар мекунем. Ба хотир меояд: дар он ҷо панҷ дақиқа хобидан лозим аст, на бештар. Ва он гоҳ саволе ба миён меояд: умуман аз ин сайти мо чӣ қадар фурӯш буд? Чанд-чанд? "Нул" чӣ маъно дорад? Ва ин чунин маъно дорад: зеро генерал соли гузашта тамоми чор муомилотро дар сари як миз, бо хамон одамоне, ки бо онхо ба хаммом мераванд ва сари миз менишинанд. Ва мо мефаҳмем, ки ҳатто агар сайт як рӯз нишаста бошад, ҳеҷ чизи даҳшатнок рӯй нахоҳад дод.

Дар асоси маълумоти муқаддимавӣ, як рӯз барои баланд бардоштани ин ҳикоя вуҷуд дорад. Биёед дар бораи нақшаи ихтисоркунӣ фикр кунем. Ва мо барои ин мисол схемаи идеалии зиёдатӣ интихоб мекунем: мо зиёдатӣ истифода намебарем. Ин ҳама чизро ҳар як администратор метавонад дар давоми ним соат бо танаффусҳои дуд баланд кунад. Веб-серверро насб кунед, файлҳоро илова кунед - ҳамин аст. Он кор хоҳад кард. Ба шумо лозим нест, ки ба чизе диққат диҳед, ба шумо диққати махсус додан лозим нест. Яъне, хулоса аз мисоли рақами як комилан равшан аст: хидматҳое, ки захира кардан лозим нест.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Мисоли рақами дуюм

Блоги ширкат: дар он ҷо одамони махсус таълимдида хабар менависанд, мо дар фалон намоишгоҳ ширкат доштем, аммо боз як маҳсулоти навро бароварда будем ва ғайра. Биёед бигӯем, ки ин стандарти PHP бо WordPress аст, пойгоҳи додаҳои хурд ва каме статикӣ. Албатта, боз ба хотир меояд, ки шумо набояд дар ҳеҷ ҳолат хобида бошед - "на бештар аз панҷ дақиқа!" Ҳамааш ҳамин аст. Аммо биёед бештар фикр кунем. Ин блог чӣ кор мекунад? Одамон ба он ҷо аз Яндекс, аз Google дар асоси баъзе дархостҳо ба таври органикӣ меоянд. бузург. Оё фурӯш бо он коре дорад? Epiphany: аслан не. Трафики таблиғотӣ ба сайти асосӣ меравад, ки дар мошини дигар аст. Биёед дар бораи нақшаи бронкунӣ фикр кунем. Ба таври хуб, онро дар як-ду соат баланд бардоштан лозим аст ва ба ин тайёрй дидан хуб мебуд. Аз маркази додаҳои дигар мошин гирифта, ба он муҳити атроф, яъне веб-сервер, PHP, WordPress, MySQL гузоред ва онро дар он ҷо гузоред, оқилона мебуд. Дар айни замон, вақте ки мо мефаҳмем, ки ҳама чиз вайрон шудааст, ба мо лозим аст, ки ду кореро анҷом диҳем - партови mysql ба масофаи 50 метр, он дар як дақиқа ба он ҷо парвоз мекунад ва миқдори муайяни тасвирҳоро аз нусхабардорӣ дар он ҷо мебарорад. Ин ҳам нест, зеро Худо медонад, ки то кай. Хамин тавр, дар давоми ним соат тамоми чиз баланд мешавад. Не такрорӣ, ё Худо маро бубахшад, нокомии худкор. Хулоса: он чизеро, ки мо метавонем аз нусхаи эҳтиётӣ зуд бароварда метавонем, ба нусхабардорӣ ниёз надорад.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Мисоли рақами се, мураккабтар

Мағозаи онлайн. PhP бо дили кушода каме таҳрир карда шудааст, mysql бо пойгоҳи мустаҳкам. Хеле статикӣ (дар ниҳоят, мағозаи онлайн дорои тасвирҳои зебои HD ва ҳама чизҳо), Redis барои сессия ва Elasticsearch барои ҷустуҷӯ. Мо дар бораи вақти бекоркунӣ фикр карданро сар мекунем. Ва дар ин ҷо, албатта, маълум аст, ки мағозаи онлайн наметавонад як рӯз бедард хобида бошад. Охир, хар кадар дуру дароз бошад, хамон кадар пулро аз даст медиҳем. Меарзад суръатро тезонд. Чӣ қадар? Ба фикрам, агар як соат хоб кунем, касе девона намешавад. Бале, мо чизеро аз даст медихем, вале агар ба кор шуруъ кунем, боз хам бадтар мешавад. Мо схемаи бекористиро дар як соат муайян мекунем.

Чӣ тавр ҳамаи инро метавон захира кард? Дар ҳар сурат ба шумо мошин лозим аст: як соат вақт хеле кам аст. Mysql: дар ин ҷо ба мо аллакай репликатсия, репликатсияи зинда лозим аст, зеро дар як соат эҳтимолан 100 ГБ ба партовҳо илова карда намешавад. Статика, тасвирҳо: боз, дар як соат 500 ГБ барои илова кардан вақт надошта бошад. Аз ин рӯ, беҳтар аст, ки тасвирҳоро фавран нусхабардорӣ кунед. Редис: дар ин ҷо чизҳо ҷолиб мешаванд. Дар Redis, сессияҳо нигоҳ дошта мешаванд - мо наметавонем онро танҳо гирифта дафн кунем. Зеро ин чандон хуб нахоҳад буд: ҳамаи корбарон аз система хориҷ мешаванд, сабадҳояшон холӣ мешаванд ва ғайра. Одамон маҷбур мешаванд, ки номи корбар ва гузарвожаи худро дубора ворид кунанд ва бисёриҳо метавонанд аз он ҷудо шаванд ва харидро анҷом надиҳанд. Боз ҳам, табдилҳо коҳиш хоҳанд ёфт. Аз тарафи дигар, Redis мустақиман навсозӣ мешавад ва корбарони охирини воридшуда эҳтимолан лозим нестанд. Ва як созиши хуб ин гирифтани Редис ва барқарор кардани он аз нусхаи эҳтиётии дирӯз ё агар шумо ин корро ҳар соат анҷом диҳед, аз як соат пеш аст. Хушбахтона, барқарор кардани он аз нусхабардорӣ маънои нусхабардории як файлро дорад. Ва достони ҷолибтарин Elasticsearch аст. Кӣ боре нусхабардории MySQL-ро гирифтааст? Кӣ боре нусхабардории Elasticsearch-ро гирифтааст? Ва баъд аз он барои кй одатан кор мекард? Он чизе ки ман дар назар дорам, ин аст, ки мо дар системаи худ як ҷузъи муайянро мебинем. Чунин ба назар мерасад, ки ин муфид аст - аммо он мураккаб аст.
Комплекс ба он маъно, ки муҳандисони мо дар кор бо он таҷриба надоранд. Ё таҷрибаи манфӣ вуҷуд дорад. Ё мо мефаҳмем, ки ин як технологияи хеле нав бо нозукиҳо ё хом аст. Фикр мекунем... Бало, эластикӣ ҳам солим аст, барои барқарор кардани он аз нусха ҳам вақти зиёд лозим аст, чӣ кор кунам? Мо мефаҳмем, ки эластикӣ дар ҳолати мо барои ҷустуҷӯ истифода мешавад. Дӯкони онлайни мо чӣ гуна мефурӯшад? Мо ба назди бозоргарон рафта мепурсем, ки одамон аз куҷоянд. Онҳо ҷавоб медиҳанд: "90% аз Yandex Market мустақиман ба корти маҳсулот меоянд." Ва ё онро мехаранд ё не. Аз ин рӯ, ҷустуҷӯ ба 10% корбарон лозим аст. Ва нигоҳ доштани такрори чандирӣ, махсусан дар байни марказҳои гуногуни додаҳо дар минтақаҳои гуногун, воқеан нозукиҳои зиёд дорад. Кадом баромад? Мо чандирро аз сайти ҳифзшуда мегирем ва бо он ҳеҷ кор намекунем. Агар масъала кашол ёбад, мо шояд рӯзе онро боло барем, аммо ин аниқ нест. Дар асл, хулоса як аст, плюс ё манфӣ: мо, боз, хидматҳоеро, ки ба пул таъсир намерасонанд, захира намекунем. Барои соддатар нигоҳ доштани диаграмма.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Мисоли рақами чор, ҳатто мушкилтар

Интегратор: фурӯши гул, занг задан ба такси, фурӯши мол, умуман, ҳама чиз. Чизи ҷиддӣ, ки барои шумораи зиёди корбарон 24/7 кор мекунад. Бо як стек пурмуҳтавои ҷолиб, ки дар он пойгоҳҳои ҷолиб, ҳалли онҳо, сарбории баланд ва муҳимтар аз ҳама, дар тӯли зиёда аз 5 дақиқа хобидан дард мекунад. На танҳо ва на он қадар зиёд барои он ки одамон намехаранд, балки азбаски одамон мебинанд, ки ин кор кор намекунад, онҳо асабонӣ мешаванд ва шояд тамоман барнагарданд.

ДУРУСТ. Панҷ дақиқа. Мо дар ин бора чӣ кор хоҳем кард? Дар ин ҳолат, мо мисли калонсолон тамоми маблағро барои сохтани як сайти эҳтиётии воқеӣ, бо такрори ҳама чиз истифода мебарем ва шояд ҳатто ба қадри имкон гузаришро ба ин сайт автоматӣ кунем. Илова бар ин, шумо бояд як чизи муҳимро фаромӯш накунед: воқеан, қоидаҳои гузаришро нависед. Қоидаҳо, ҳатто агар шумо ҳама чиз автоматӣ дошта бошед, метавонад хеле содда бошад. Аз силсилаи "фалон скрипти оқилона иҷро кунед", "фалон қуттии қайдро дар хатсайри 53 пахш кунед" ва ғайра - аммо ин бояд як навъ рӯйхати дақиқи амалҳо бошад.

Ва ҳама чиз равшан ба назар мерасад. Гузаронидани такрорӣ кори ночиз аст, ё худ худ иваз мекунад. Навиштани номи домен дар DNS аз ҳамон силсила аст. Мушкилот дар он аст, ки вақте ки чунин лоиҳа ноком мешавад, воҳима сар мешавад ва ҳатто маъмурони пурқувват ва ришдор метавонанд ба он осебпазир бошанд. Бе дастури возеҳ "терминалро кушоед, ба ин ҷо биёед, суроғаи сервери мо ҳоло ҳам чунин аст" иҷро кардани мӯҳлати 5 дақиқа барои эҳёшавӣ душвор аст. Хуб, илова бар ин, вақте ки мо ин қоидаҳоро истифода мебарем, масалан, баъзе тағиротҳоро дар инфрасохтор сабт кардан ва мувофиқи он қоидаҳоро тағир додан осон аст.
Хуб, агар системаи брон хеле мураккаб бошад ва дар баъзе мавридҳо мо хато кардаем, пас мо метавонем сайти эҳтиётии худро нест кунем ва илова бар ин, маълумотро дар ҳарду сайт ба каду табдил диҳем - ин комилан ғамгин хоҳад буд.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Мисоли рақами панҷ, хардкори комил

Хидмати байналмилалӣ бо садҳо миллион корбарон дар саросари ҷаҳон. Ҳама минтақаҳои вақт вуҷуд доранд, бори баланд бо суръати максималӣ, шумо тамоман хобида наметавонед. Як дақиқа - ва он ғамгин хоҳад буд. Чӣ бояд кард? Захира, боз аз руи программам пурра. Мо ҳама чизеро, ки ман дар мисоли қаблӣ гуфта будам, иҷро кардем ва каме бештар. Ҷаҳони идеалӣ ва инфрасохтори мо мувофиқи ҳама консепсияҳои IaaC devops аст. Яъне, ҳама чиз дар git аст ва шумо танҳо тугмаро пахш мекунед.

Чи чизи ҷой наёфтааст? Яке - машқҳо. Бе онҳо имконнопазир аст. Чунин ба назар мерасад, ки дар мо ҳама чиз комил аст, мо умуман ҳама чизро зери назорат дорем. Мо тугмаро пахш мекунем, ҳама чиз рӯй медиҳад. Ҳатто агар ин тавр бошад - ва мо мефаҳмем, ки ин тавр намешавад - системаи мо бо баъзе системаҳои дигар ҳамкорӣ мекунад. Масалан, ин dns аз хатсайри 53, нигаҳдории s3, ҳамгироӣ бо баъзе api мебошад. Мо дар ин озмоиши тахминӣ ҳама чизро пешгӯӣ карда наметавонем. Ва то он даме, ки мо гузаргоҳро нагирем, мо намедонем, ки он кор мекунад ё не.

Муваффақият: мукаммализм ва... танбалӣ моро хароб мекунанд

Шояд ҳамааш ҳамин бошад. Танбал нашавед ва аз ҳад зиёд кор накунед. Ва шояд вақти корӣ бо шумо бошад!

Манбаъ: will.com

Илова Эзоҳ