DevOps чист

Таърифи DevOps хеле мураккаб аст, аз ин рӯ мо бояд ҳар дафъа баҳсро дар бораи он аз нав оғоз кунем. Танҳо дар Ҳабре дар ин мавзӯъ ҳазорҳо нашрияҳо мавҷуданд. Аммо агар шумо инро хонда истода бошед, шумо эҳтимол медонед, ки DevOps чист. Зеро ман нестам. Салом номи ман Александр Титов (@осминог) ва мо танҳо дар бораи DevOps сӯҳбат мекунем ва ман таҷрибаи худро мубодила мекунам.

DevOps чист

Ман муддати тӯлонӣ дар бораи он фикр мекардам, ки чӣ гуна ҳикояи худро муфид гардонам, бинобар ин дар ин ҷо саволҳои зиёде хоҳанд буд - саволҳое, ки ман аз худам мепурсам ва саволҳое, ки ман аз муштариёни ширкати мо мепурсам. Бо ҷавоб додан ба ин саволҳо, фаҳмиш беҳтар мешавад. Ман ба шумо мегӯям, ки чаро DevOps аз нуқтаи назари ман лозим аст, он боз аз нуқтаи назари ман чист ва чӣ гуна фаҳмидан мумкин аст, ки шумо боз аз нуқтаи назари ман ба сӯи DevOps ҳаракат мекунед. Нуқтаи охирин тавассути саволҳо хоҳад буд. Бо ҷавоб додан ба онҳо, шумо метавонед бифаҳмед, ки оё ширкати шумо ба DevOps ҳаракат мекунад ё ягон мушкилот вуҷуд дорад.


Дар як вақт ман дар мавҷҳои якҷояшавӣ ва харидҳо савор шуда будам. Аввалан, ман дар як стартапи хурде бо номи Qik кор кардам, сипас онро як ширкати каме калонтар бо номи Skype харид, ки баъдан аз ҷониби як ширкати каме калонтар бо номи Microsoft харида шуд. Дар он лаҳза, ман дидам, ки чӣ гуна идеяи DevOps дар ширкатҳои андозаашон гуногун тағир меёбад. Пас аз он, ман ба DevOps аз нуқтаи назари бозор таваҷҷӯҳ зоҳир кардам ва ман ва ҳамкорони ман ширкати Express 42-ро таъсис додем. 6 сол аст, ки мо дар мавҷҳои бозор ҳаракат мекунем.

Дар байни чизҳои дигар, ман яке аз созмондиҳандагони ҷомеаи DevOps Moscow ва ташкилкунандаи DevOps-Days 2017 ҳастам, аммо ман 2018-ро ташкил накардаам. Express 42 бо бисёр ширкатҳо кор мекунад. Мо дар он ҷо DevOps парвариш мекунем, мушоҳида мекунем, ки он чӣ гуна рух медиҳад, хулоса мебарорем, таҳлил мекунем, хулосаҳои худро ба ҳама нақл мекунем ва одамонро дар таҷрибаҳои DevOps меомӯзем. Умуман, мо тамоми кувваро ба кор бурда истодаем, ки дар ин бобат тачриба ва махорати худро афзун гардонем.

Чаро DevOps

Аввалин саволе, ки ҳамаро ба ташвиш меорад ва ҳамеша ин аст - чаро? Бисёр одамон фикр мекунанд, ки DevOps танҳо автоматизатсия ё чизест, ки ҳар як ширкат аллакай дошт.

— Мо ҳамгироии доимӣ доштем - ин маънои онро дорад, ки мо аллакай DevOps доштем ва чаро ин ҳама чиз лозим аст? Онхо дар хорича кайфу сафо мекунанд, вале моро аз кор бозмедоранд!

Дар тӯли 9 соли рушди ҷомеа ва методология, аллакай маълум шуд, ки ин то ҳол дурахшони маркетинг нест, аммо то ҳол комилан равшан нест, ки чаро он лозим аст. Мисли ҳама гуна асбоб ва раванд, DevOps ҳадафҳои мушаххас дорад, ки дар ниҳоят ба онҳо ноил мешаванд.

Хамаи ин аз он сабаб аст, ки дуньё тагьир меёбад. Вай аз равиши корхона дур мешавад, вақте ки ширкатҳо рост ба сӯи орзу ҳаракат мекунанд, чунон ки классики Петербурги мо месуруд, аз нуқтаи А то нуқтаи В аз рӯи стратегияи муайян, бо сохтори муайяне, ки барои ин сохта шудааст.

DevOps чист

Аслан, ҳама чиз дар IT бояд мувофиқи ин равиш сохта шавад. Дар ин ҷо IT танҳо барои автоматикунонии равандҳо истифода мешавад.

Автоматикунонӣ зуд-зуд тағйир намеёбад, зеро вақте ки ширкат ба як табаддулоти хуб дучор мешавад, чӣ бояд тағир ёбад? Он кор мекунад - ба он даст нарасонед. Ҳоло равишҳо дар ҷаҳон тағир меёбанд ва равише, ки Agile номида мешавад, нишон медиҳад, ки нуқтаи ниҳоии B фавран намоён нест.

DevOps чист

Вақте ки ширкат аз бозор мегузарад, бо муштарӣ кор мекунад, вай пайваста бозорро меомӯзад ва нуқтаи ниҳоии В-ро тағйир медиҳад. Гузашта аз ин, ширкат ҳар қадар зуд-зуд самти худро иваз кунад, дар ниҳоят муваффақтар мешавад, зеро вай бештар бозорро интихоб мекунад. нишаҳо.

Стратегияро як ширкати ҷолибе нишон медиҳад, ки ман ба наздикӣ дар бораи он фаҳмидам. One Box Shave як хидмати расонидани обуна барои риштарошҳо ва лавозимоти риштарошӣ дар як қуттӣ мебошад. Онҳо медонанд, ки чӣ гуна "қуттӣ" -и худро барои муштариёни гуногун танзим кунанд. Ин корро як нармафзори муайян анҷом медиҳад, ки баъдан фармоишро ба заводи Кореяе, ки маҳсулот истеҳсол мекунад, мефиристад.

Ин маҳсулотро Unilever ба маблағи 1 миллиард доллар харидааст. Ҳоло он бо Gillette рақобат мекунад ва як қисми зиёди истеъмолкунандагонро дар бозори Амрико гирифтааст. One Box Shave мегӯяд:

— 4 дона? Шумо ҷиддӣ ҳастед? Чаро ин ба шумо лозим аст - ин сифати ришро беҳтар намекунад. Қаймоқи махсус интихобшуда, бӯи хушбӯй ва риштароши босифат бо ду теғ нисбат ба он 4 теғи аблаҳии Gillette мушкилоти бештареро ҳал мекунад! Оё мо ба зудӣ ба 10 мерасад?

Ҷаҳон ҳамин тавр тағйир меёбад. Unilever иддао дорад, ки онҳо як системаи олии IT доранд, ки ба шумо имкон медиҳад, ки ин корро кунед. Дар ниҳоят, он ба консепсия монанд аст Вақт ба бозор, ки дар бораи он аллакай касе нагуфтааст.

DevOps чист

Мақсади Time-to-market дар он нест, ки мо то чӣ андоза зуд-зуд ҷойгир мекунем. Шумо метавонед зуд-зуд ҷойгир кунед, аммо давраҳои озодкунӣ тӯлонӣ хоҳанд буд. Агар давраҳои семоҳаи релизҳо ба ҳамдигар баробар шуда, онҳоро ба як ҳафта иваз кунанд, маълум мешавад, ки ширкат ба назар мерасад, ки дар як ҳафта як маротиба ҷойгир карда мешавад. Ва аз идея то татбиқи ниҳоии он 3 моҳ тӯл мекашад.

Вақт ба бозор дар бораи кам кардани вақт аз идея то татбиқи ниҳоӣ мебошад.

Дар ин ҳолат, нармафзор бо бозор ҳамкорӣ мекунад. Ҳамин тавр вебсайти One Box Shave бо муштарӣ ҳамкорӣ мекунад. Онҳо фурӯшанда надоранд - танҳо вебсайте, ки меҳмонон дар он ҷо клик мекунанд ва хоҳишҳои худро мегузоранд. Бинобар ин, чизи нав бояд доимо дар сайт ҷойгир карда шавад ва мувофиқи хоҳишҳо нав карда шавад. Масалан, дар Кореяи Ҷанубӣ онҳо нисбат ба Русия ба таври дигар риш метарошанд ва бӯи санавбарро не, масалан, сабзӣ ва ванилинро дӯст медоранд.

Азбаски мундариҷаи сайтро зуд тағир додан лозим аст, таҳияи нармафзор хеле тағир меёбад. Тавассути нармафзор мо бояд фаҳмем, ки муштарӣ чӣ мехоҳад. Пештар, мо инро тавассути баъзе роҳҳои гардиш, масалан, тавассути идоракунии тиҷорат омӯхта будем. Сипас мо онро тарҳрезӣ кардем, талаботро ба системаи IT гузоштем ва ҳама чиз хуб буд. Ҳоло он дигар аст - нармафзорро ҳар касе, ки дар ин раванд иштирок мекунад, тарҳрезӣ мекунад, аз ҷумла муҳандисон, зеро тавассути мушаххасоти техникӣ онҳо чӣ гуна кор кардани бозорро меомӯзанд ва инчунин фаҳмиши худро бо тиҷорат мубодила мекунанд.

Масалан, дар Qik мо ногаҳон фаҳмидем, ки одамон воқеан бор кардани рӯйхати тамосҳоро ба сервер дӯст медоранд ва онҳо ба мо замима доданд. Дар аввал мо дар ин бора фикр намекардем. Дар як ширкати классикӣ, ҳама тасмим мегирифтанд, ки ин иштибоҳ аст, зеро мушаххасот нагуфтааст, ки он бояд хуб кор кунад ва умуман дар зону татбиқ карда шавад, онҳо ин хусусиятро хомӯш карда мегуфтанд: "Ин ба касе лозим нест, Муҳимтар аз ҳама он аст, ки функсияи асосӣ кор мекунад." . Ва ширкати технологӣ инро як фурсат мебинад ва мувофиқи он нармафзорро тағир медиҳад.

DevOps чист

Дар соли 1968, як бачаи дурандеш Мелвин Конвей идеяи зеринро таҳия кард.

Ташкилоте, ки системаро эҷод мекунад, бо тарҳе маҳдуд аст, ки сохтори коммуникатсионии ин созмонро такрор мекунад.

Ба таври муфассал, барои истеҳсоли системаҳои навъи дигар, шумо инчунин бояд сохтори коммуникатсионӣ дар дохили як ширкати навъи дигар дошта бошед. Агар сохтори коммуникатсионии шумо зинанизоми олӣ бошад, пас ин ба шумо имкон намедиҳад, ки системаҳоеро эҷод кунед, ки нишондиҳандаи хеле баланди Time-to-Market-ро таъмин карда тавонанд.

Хондан дар бораи қонуни Конвей метавонад тавассути истинодҳо. Барои фаҳмидани фарҳанг ё фалсафаи DevOps муҳим аст, зеро ягона чизе, ки дар DevOps ба таври куллӣ тағйир меёбад, сохтори иртибот байни дастаҳо мебошад.

Аз нуқтаи назари раванд, пеш аз DevOps, ҳама марҳилаҳо: таҳлил, таҳия, озмоиш, амалиёт хаттӣ буданд.DevOps чист
Дар мавриди DevOps, ҳамаи ин равандҳо дар як вақт рух медиҳанд.

DevOps чист

Вақт ба бозор ягона роҳи анҷом додани он аст. Барои одамоне, ки дар раванди кӯҳна кор мекарданд, ин то андозае кайҳонӣ ва умуман чунин менамояд.

Пас чаро ба шумо DevOps лозим аст?

Барои таҳияи маҳсулоти рақамӣ. Агар ширкати шумо маҳсулоти рақамӣ надошта бошад, DevOps лозим нест - ин хеле муҳим аст.

DevOps маҳдудиятҳои суръати истеҳсоли пайдарпайи нармафзорро бартараф мекунад. Дар он хамаи процессхо дар як вакт ба амал меоянд.

Мушкилот меафзояд. Вақте ки инҷилистони DevOps ба шумо мегӯянд, ки он барои шумо баровардани нармафзорро осон мекунад, ин сафсата аст.

Бо DevOps, корҳо танҳо мураккабтар мешаванд.

Дар конфронс дар стенди Avito, шумо метавонед дидед, ки ҷойгир кардани контейнери Docker чӣ гуна аст - як вазифаи ғайривоқеӣ. Мушкилот манъ мешавад; шумо бояд дар як вақт бисёр тӯбҳоро бозӣ кунед.

DevOps раванд ва созмонро дар ширкат комилан тағир медиҳад — аниқтараш, на DevOps, балки маҳсулоти рақамӣ тағйир меёбад. Барои ба DevOps омадан, шумо бояд ин равандро комилан тағир диҳед.

Саволҳо барои мутахассис

Шумо чӣ доред? Саволҳое, ки шумо метавонед ҳангоми кор дар ширкат ва ҳамчун мутахассис рушд кардан ба худатон пурсед.

Оё шумо стратегияи эҷоди маҳсулоти рақамӣ доред? Агар вуҷуд дошта бошад, ин аллакай хуб аст. Ин маънои онро дорад, ки ширкати шумо ба сӯи DevOps ҳаракат мекунад.

Оё ширкати шумо аллакай маҳсулоти рақамиро эҷод мекунад? Ин маънои онро дорад, ки шумо метавонед як зинаи дигар боло равед ва корҳоро ҷолибтар иҷро кунед - боз аз нуқтаи назари DevOps. Ман танхо аз хамин нуктаи назар сухан меронам.

Оё ширкати шумо яке аз пешвоёни бозор дар чароғаки маҳсулоти рақамӣ аст? Spotify, Yandex, Uber ширкатҳое ҳастанд, ки ҳоло дар авҷи пешрафти технологӣ қарор доранд.

Аз худ ин саволҳоро пурсед ва агар ҳама ҷавобҳо не бошанд, пас шояд шумо набояд дар ин ширкат DevOps кор кунед. Агар мавзӯи DevOps барои шумо воқеан ҷолиб бошад, шояд ... шумо бояд ба ширкати дигар гузаред? Агар ширкати шумо мехоҳад ба DevOps дохил шавад, аммо шумо ба ҳама саволҳо "Не" ҷавоб додед, он ба он каргодуҳои зебое монанд аст, ки ҳеҷ гоҳ тағир намеёбад.

DevOps чист

ташкилот

Тавре ки ман гуфтам, тибқи қонуни Конвей, ташкили ширкат тағир меёбад. Ман аз он чизе оғоз мекунам, ки DevOps аз нуқтаи назари ташкилӣ ворид шудан ба дохили ширкатро пешгирӣ мекунад.

Мушкилоти "чоҳҳо"

Калимаи англисии «Сило»-ро дар ин чо ба русй чун «хучук» тарчума кардаанд. Максади ин проблема дар он аст дар байни коллективхо мубодилаи ахбор ба рох монда нашудааст. Ҳар як даста бидуни сохтани харитаи умумӣ барои паймоиш таҷрибаи худро амиқ меомӯзад.

Дар баъзе мавридҳо ин ба ман шахсеро ба хотир меорад, ки навакак ба Маскав омадааст ва ҳоло дар харитаи метро чӣ гуна ҳаракат карданро намедонад. Москвагихо одатан райони худро нагз медонанд ва дар тамоми Москва бо харитаи метро сайру гашт карда метавонанд. Вақте ки шумо бори аввал ба Маскав меоед, шумо ин маҳоратро надоред ва шумо танҳо гумроҳ мешавед.

DevOps пешниҳод мекунад, ки аз ин лаҳзаи бесарусомонӣ ва ҳамаи шӯъбаҳо барои сохтани харитаи муштараки муштарак якҷоя кор кунанд.

Ба ин ду омил халал мерасонад.

Оқибати системаи идоракунии корпоративӣ. Он дар «чоҳҳои» алоҳидаи иерархӣ сохта шудааст. Масалан, дар ширкатҳое, ки ин системаро дастгирӣ мекунанд, муайян KPI мавҷуданд. Аз тарафи дигар, мағзи шахсе, ки берун рафтан аз ҳудуди таҷрибаи худ ва паймоиш дар тамоми система душвор аст, монеа мешавад. Ин танҳо нороҳат аст. Тасаввур кунед, ки шумо дар фурудгоҳи Бангкок ҳастед - шумо роҳи худро зуд намеёбед. Паймоиши DevOps низ душвор аст ва аз ин рӯ одамон мегӯянд, ки барои расидан ба он ҷо роҳнамо пайдо кардан лозим аст.

Аммо аз ҳама муҳимаш дар он аст, ки мушкили "чоҳҳо" барои як муҳандис, ки бо рӯҳияи DevOps фаро гирифта шудааст, Фаулер ва як қатор китобҳои дигарро хондааст, дар он ифода ёфтааст, ки «чоҳҳо» ба шумо имкон намедиҳад, ки корҳои "аён" кунед. Мо аксар вақт пас аз DevOps Moscow ҷамъ мешавем, бо ҳамдигар сӯҳбат мекунем ва одамон шикоят мекунанд:

— Мо танҳо мехостем CI-ро оғоз кунем, аммо маълум шуд, ки роҳбарият ба он ниёз надорад.

Ин маҳз аз он сабаб рӯй медиҳад CI и Раванди интиқоли муттасил дар сарҳади бисёр имтиҳонҳо қарор доранд. Факат дар микьёси ташкилй проблемаи «чойхо»-ро бартараф на-карда, чй коре кунеду чй кадар аламовар бошад хам, пеш рафта наметавонед.

DevOps чист

Ҳар як иштирокчии раванд дар ширкат: таҳиягарони пуштибонӣ ва фронтенд, озмоиш, DBA, амалиёт, шабака, дар самти худ кофта мешавад ва ҳеҷ кас харитаи умумӣ надорад, ба ҷуз менеҷер, ки бо ягон роҳ онҳоро назорат мекунад ва онҳоро бо истифода аз "тақсим" идора мекунад. ва забт кардан» метода.

Одамон барои баъзе ситораҳо ё парчамҳо мубориза мебаранд, ҳама таҷрибаи худро мекофтанд.

Дар натица, вакте ки вазифаи ба хам пайваст кардани хамаи ин ва сохтани газопроводи умумй ба миён меояд ва барои ситорахо ва байракхо мубориза бурдан лозим нест, савол ба миён меояд — ба хар хол чй бояд кард? Мо бояд бо кадом роҳе ба созиш бирасем, аммо дар мактаб касе ба мо ин корро ёд надодааст. Моро аз мактаб таълим медоданд: синфи хаштум — вой! — нисбат ба синфи хафтум! Дар ин ҷо ҳам ҳамин тавр аст.

Оё дар ширкати шумо низ ҳамин тавр аст?

Барои санҷидани ин, шумо метавонед ба худ саволҳои зеринро диҳед.

Оё дастаҳо абзорҳои умумиро истифода мебаранд ва дар тағир додани ин абзорҳои умумӣ саҳм мегузоранд?

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

Оё мумкин аст, ки кумитаи таѓйирот таъсис дода, вазъиятро таѓйир дињем? Ё ин ки дасти пурқуввати роҳбарият ва роҳнамоии олиро талаб мекунад? Ман ба наздикӣ дар Фейсбук навиштам, ки чӣ гуна як бонки ношинос асбобҳоро тавассути фармоиш амалӣ мекунад: мо фармоиш менависем, онро як сол иҷро мекунем ва бубинем, ки чӣ мешавад. Ин, албатта, дуру дароз ва аламовар аст.

Барои роҳбарон то чӣ андоза муҳим аст, ки дастовардҳои шахсиро бидуни ба назар гирифтани дастовардҳои ширкат гиранд?

Агар шумо ба ин саволҳо худатон ҷавоб диҳед, маълум мешавад, ки оё шумо дар ширкати шумо чунин мушкилот доред.

Инфрасохтор ҳамчун код

Пас аз ҳалли ин мушкилот, аввалин таҷрибаи муҳим, ки бидуни он пешрафт дар DevOps душвор аст инфрасохтор ҳамчун код.

Аксар вақт, инфрасохтор ҳамчун код ба таври зерин қабул карда мешавад:

— Биёед ҳама чизро дар bash автоматӣ кунем, худро бо скриптҳо фаро гирем, то маъмурон кори дастиро камтар кунанд!

Аммо ин дуруст нест.

Инфрасохтор ҳамчун код маънои онро дорад, ки шумо системаи IT-ро, ки бо он кор мекунед, дар шакли код тавсиф мекунед, то ҳолати онро доимо дарк кунед.

Якҷоя бо дастаҳои дигар, шумо харитаеро дар шакли код эҷод мекунед, ки ҳама онро фаҳманд ва паймоиш ва паймоиш кунанд. Фарқ надорад, ки он дар чӣ кор карда шудааст - Chef, Ansible, Salt ё истифодаи файлҳои YAML дар Kubernetes - ҳеҷ тафовуте нест.

Дар конфронс як ҳамтои 2GIS нақл кард, ки чӣ гуна онҳо барои Кубернетес чизҳои дохилии худро сохтанд, ки сохтори системаҳои алоҳидаро тавсиф мекунад. Барои тавсифи 500 система ба онҳо асбоби алоҳидае лозим буд, ки ин тавсифро тавлид мекунад. Вақте ки ин тавсиф вуҷуд дорад, ҳама метавонанд бо ҳамдигар тафтиш кунанд, тағиротро назорат кунанд, чӣ гуна онро тағир додан ва такмил додан лозим аст, чӣ намерасад.

розӣ шавед, скриптҳои алоҳидаи bash одатан ин фаҳмишро таъмин намекунанд. Дар яке аз ширкатҳое, ки ман кор мекардам, ҳатто номи скрипти "танҳо нависед" вуҷуд дошт - вақте ки скрипт навишта мешавад, аммо хондани он дигар имкон надорад. Ман фикр мекунам, ки ин ба шумо низ шинос аст.

Инфрасохтор ҳамчун код рамзе, ки вазъи кунунии инфрасохторро тавсиф мекунад. Бисёре аз гурӯҳҳои маҳсулот, инфрасохтор ва хидматрасонӣ дар ин код якҷоя кор мекунанд ва муҳимтар аз ҳама, онҳо бояд фаҳманд, ки ин код воқеан чӣ гуна кор мекунад.

Рамз мувофиқи таҷрибаҳои беҳтарини код нигоҳ дошта мешавад: таҳияи муштарак, баррасии код, XP-барномасозӣ, озмоиш, кашидани дархостҳо, CI барои инфрасохтори код - ҳамаи ин мувофиқ аст ва метавонад истифода шавад.

Код барои тамоми муҳандисон забони умумӣ мегардад.

Тағир додани инфрасохтор дар код вақти зиёдро талаб намекунад. Бале, рамзи инфрасохтор инчунин метавонад қарзи техникӣ дошта бошад. Одатан дастаҳо бо он якуним сол пас аз оғози татбиқи "инфрасохтор ҳамчун код" дар шакли як қатор скриптҳо ё ҳатто Ansible дучор меоянд, ки онҳо мисли рамзи спагетти менависанд ва онҳо инчунин скриптҳои bash-ро ба омехта мепартоянд!

муҳим: Агар шумо то ҳол ин чизро надида бошед, дар хотир доред Ansible баш нест! Ҳуҷҷатҳоро бодиққат хонед, омӯзед, ки онҳо дар бораи он чӣ менависанд.

Инфрасохтор ҳамчун код ин тақсимоти рамзи инфрасохтор ба қабатҳои алоҳида мебошад.

Дар ширкати мо мо 3 қабати асосиро ҷудо мекунем, ки хеле возеҳ ва соддаанд, аммо шояд шумораи онҳо бештар бошад. Шумо метавонед ба рамзи инфрасохтори худ назар кунед ва бигӯед, ки шумо ин ҳолат доред ё не. Агар ягон қабат равшан карда нашавад, пас шумо бояд каме вақт ҷудо кунед ва каме рефактура кунед.
DevOps чист

қабати асосӣ - ҳамин тавр OS, нусхабардорӣ ва дигар чизҳои сатҳи паст танзим карда мешаванд, масалан, чӣ гуна Kubernetes дар сатҳи асосӣ ҷойгир карда мешавад.

Сатҳи хидматрасонӣ - инҳо хидматҳое мебошанд, ки шумо ба таҳиягар пешниҳод мекунед: сабти ном ҳамчун хидмат, мониторинг ҳамчун хидмат, пойгоҳи додаҳо ҳамчун хидмат, баланскунанда ҳамчун хидмат, навбат ҳамчун хидмат, Интиқоли доимӣ ҳамчун хидмат - маҷмӯи хидматҳое, ки гурӯҳҳои алоҳида тараккиётро таъмин карда метавонад. Ин ҳама бояд дар модулҳои алоҳида дар системаи идоракунии конфигуратсияи шумо тавсиф карда шаванд.

Қабате, ки дар он барномаҳо сохта мешаванд ва тасвир мекунад, ки чӣ тавр онҳо дар болои ду қабати қаблӣ кушода мешаванд.

Саволҳои назоратӣ

Оё ширкати шумо як анбори умумии инфрасохторӣ дорад? Оё шумо қарзи техникиро дар инфрасохтори худ идора мекунед? Оё шумо таҷрибаҳои рушдро дар анбори инфрасохтор истифода мебаред? Оё инфрасохтори шумо ба қабатҳо тақсим шудааст? Шумо метавонед диаграммаи Base-service-APP-ро тафтиш кунед. Тағйир додан то чӣ андоза душвор аст?

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

Интиқоли муттасил

Биёед дебетро бо кредит муқоиса кунем. Аввалан тавсифи инфрасохтор меояд, ки он метавонад хеле оддӣ бошад. Ба шумо лозим нест, ки ҳама чизро ба таври муфассал тавсиф кунед, аммо баъзе тавсифи асосӣ лозим аст, то шумо метавонед бо он кор кунед. Дар акси ҳол, маълум нест, ки минбаъд бо интиқоли муттасил чӣ кор кардан лозим аст. Ҳамаи ин таҷрибаҳо ҳангоми ба DevOps омадан ҳамзамон ба амал меоянд, аммо он аз фаҳмидани он чизе, ки шумо доред ва чӣ гуна идора кардани он оғоз мешавад. Ин маҳз амалияи инфрасохтор ҳамчун код аст.

Вақте ки маълум мешавад, ки шумо онро доред ва чӣ гуна онро идора кардан лозим аст, шумо ба фаҳмидани он ки чӣ гуна коди таҳиягарро ҳарчи зудтар ба истеҳсолот фиристед. Ман якҷоя бо таҳиякунанда дар назар дорам - мо дар бораи мушкилоти "чоҳҳо" дар хотир дорем, яъне на одамони алоҳида, балки як даста.

Вақте ки мо бо Ваня Евтухович китоби аввалро дидааст Ҷез Ҳумбл ва гуруххои муаллифон "Интиқоли доимӣ", ки соли 2009 ба табъ расида буд, мо муддати дароз фикр кардем, ки сарлавҳаи онро ба русӣ чӣ гуна тарҷума кунем. Мехостанд, ки онро «Доимо расонед» тарчума кунанд, мутаассифона, онро «Таъмини пайваста» тарчума карданд. Ба назари ман, дар номи мо як чизи русӣ ҳаст, бо фишор.

Воситаҳои доимӣ интиқол додан

Рамзе, ки дар анбори маҳсулот мавҷуд аст, ҳамеша метавонад ба истеҳсолот бор карда шавад. Шояд ӯ беэътиноӣ накунад, аммо ӯ ҳамеша ба он омода аст. Аз ин рӯ, шумо ҳамеша рамзро бо эҳсоси изтироб дар зери устухони думдоратон менависед. Он аксар вақт ҳангоми паҳн кардани рамзи инфрасохтор пайдо мешавад. Ин эҳсоси каме изтироб бояд вуҷуд дошта бошад - он равандҳои майнаро ба вуҷуд меорад, ки ба шумо имкон медиҳанд, ки кодро каме дигар нависед. Ин бояд дар қоидаҳои таҳияшуда сабт карда шавад.

Барои пайваста расонидани он, ба шумо формати артефакт лозим аст, ки дар платформаи инфрасохторӣ кор мекунад. Агар шумо "партовҳои ҳаёт" -и форматҳои гуногунро дар платформаи инфрасохторӣ партоед, он муттаҳид мешавад, нигоҳ доштани он душвор аст ва мушкилоти қарзи техникӣ ба миён меояд. Формати артефакт бояд мувофиқ карда шавад - ин ҳам як вазифаи дастаҷамъона аст: ҳамаи мо бояд якҷоя ҷамъ шавем, майнаамонро шитоб кунем ва ин форматро пайдо кунем.

Артефакт пайваста такмил дода мешавад ва ба муҳити истеҳсолӣ мувофиқат мекунад, вақте ки он тавассути лӯлаи интиқол мегузарад. Ҳангоме ки артефакт дар қад-қади қубур ҳаракат мекунад, он пайваста ба чизҳои ногувор дучор мешавад, ки ба он чизе, ки артефакте, ки шумо ба истеҳсолот гузоштаед, монанд аст. Агар дар таҳияи классикӣ ин аз ҷониби маъмури система, ки паҳнкуниро иҷро мекунад, анҷом дода шавад, пас дар раванди DevOps ин ҳама вақт рух медиҳад: дар ин ҷо онҳо онро бо якчанд озмоишҳо санҷиданд, дар ин ҷо онҳо онро ба кластери Kubernetes партофтанд, ки камтар ё камтар монанд аст. ба истеҳсолот, баъд ногаҳон онҳо ба озмоиши сарборӣ шурӯъ карданд.

Ин то андозае бозии Pac-Man-ро ба хотир меорад - артефакт аз як навъ ҳикоя мегузарад. Дар айни замон, назорат кардан муҳим аст, ки оё код воқеан аз ҳикоя мегузарад ва оё он бо ягон навъ ба истеҳсоли шумо алоқаманд аст. Ҳикояҳоро аз истеҳсолот ба раванди интиқоли муттасил кашидан мумкин аст: вақте чизе афтод, чунин буд, ҳоло биёед ин сенарияро дар дохили система барномарезӣ кунем. Ҳар дафъае, ки код низ аз ин сенария мегузарад ва шумо дафъаи оянда бо ин мушкилот дучор нахоҳед шуд. Шумо дар бораи он хеле пештар аз он ки он ба муштарии шумо мерасад, хоҳед фаҳмид.

Стратегияҳои гуногуни густариш. Масалан, шумо озмоиши AB ё густариши канариро барои санҷидани код дар муштариёни гуногун истифода мебаред, дар бораи чӣ гуна кор кардани код маълумот гиред ва назар ба он ки он ба 100 миллион корбар паҳн шудааст, хеле пештар.

«Мунтазам расондан» чунин менамояд.

DevOps чист

Раванди таҳвил Dev, CI, Test, PreProd, Prod муҳити алоҳида нест, инҳо марҳилаҳо ё стансияҳое мебошанд, ки маблағи оташнашаванда доранд, ки аз онҳо артефакти шумо мегузарад.

Агар шумо рамзи инфрасохтор дошта бошед, ки ҳамчун APP хидмати асосӣ тавсиф карда шудааст, он кӯмак мекунад ҳама скриптҳоро фаромӯш накунед, ва онҳоро ҳамчун рамзи ин артефакт нависед, тарғиби артефакт ва ҳангоми рафтан онро тағир диҳед.

Саволҳо барои санҷиши худ

Вақт аз тавсифи хусусият то ба истеҳсолот дар 95% ҳолатҳо камтар аз як ҳафта аст? Оё сифати артефакт дар ҳар як марҳилаи қубур беҳтар мешавад? Оё ҳикояе ҳаст, ки аз он мегузарад? Оё шумо стратегияҳои гуногуни густаришро истифода мебаред?

Агар ҳама ҷавобҳо ҳа бошанд, пас шумо бениҳоят сард ҳастед! Ҷавобҳои худро дар шарҳҳо нависед - ман шод хоҳам буд).

алоќаи

Ин амалия аз ҳама мушкилтарин аст. Дар конфронси DevOpsConf, як ҳамтои Infobip, ки дар ин бора сӯҳбат мекард, дар суханони худ каме ошуфта буд, зеро ин воқеан як таҷрибаи хеле мураккаб дар бораи он аст, ки шумо бояд ҳама чизро назорат кунед!

DevOps чист

Масалан, кайҳо пеш, вақте ки ман дар Қик кор мекардам ва мо фаҳмидем, ки мо бояд ҳама чизро назорат кунем. Мо ин корро кардем ва ҳоло мо дар Zabbix 150 ашё дорем, ки доимо назорат карда мешаванд. Ин даҳшатнок буд, директори техникӣ ангушти худро ба маъбадаш печонд:

-Бачаҳо, барои чӣ шумо бо як чизи норавшан серверро таҷовуз мекунед?

Аммо баъд як ҳодисае рух дод, ки нишон дод, ки ин дар ҳақиқат як стратегияи хеле олӣ аст.

Яке аз хидматҳо пайваста ба кор даромад. Дар аввал, он суқут накард, ки ҷолиб аст, код дар он ҷо илова карда нашудааст, зеро он брокери асосӣ буд, ки амалан ягон функсияи тиҷоратӣ надошт - он танҳо байни хидматҳои инфиродӣ паёмҳо фиристод. Хизмат дар тӯли 4 моҳ тағир наёфт ва ногаҳон бо хатогии "Айбҳои сегментатсия" ба кор даромад.

Мо ба ҳайрат афтодем, диаграммаҳои худро дар Zabbix кушодем ва маълум шуд, ки якуним ҳафта пеш рафтори дархостҳо дар хидмати API, ки ин брокер истифода мебарад, хеле тағир ёфтааст. Баъдан мо дидем, ки басомади фиристодани як навъи паём тағйир ёфтааст. Баъдтар мо фаҳмидем, ки инҳо муштариёни андроид буданд. Мо пурсидем:

— Бачахо, якуним хафта пеш ба шумо чй шуд?

Дар посух, мо як ҳикояи ҷолибро дар бораи он ки чӣ тавр онҳо UI-ро аз нав тарроҳӣ кардаанд, шунидем. Аз эҳтимол дур нест, ки касе фавран бигӯяд, ки китобхонаи HTTP-ро иваз кардаанд. Барои муштариёни Android, ин ба иваз кардани собун дар ҳаммом монанд аст - онҳо танҳо дар хотир надоранд. Дар натиҷа, пас аз 40 дақиқаи сӯҳбат, мо фаҳмидем, ки онҳо китобхонаи HTTP-ро иваз кардаанд ва вақтҳои пешфарзии он тағйир ёфтааст. Ин боиси тағир ёфтани рафтори трафик дар сервери API гардид, ки ба вазъияте оварда расонд, ки боиси мусобиқа дар дохили брокер гардид ва он ба садама сар кард.

Бе мониторинги амиқ кушодани он умуман ғайриимкон аст. Агар ташкилот то ҳол мушкилоти "чоҳҳо" дошта бошад, вақте ки ҳама ба сӯи ҳамдигар пул мепартоянд, ин метавонад солҳо зиндагӣ кунад. Шумо танҳо серверро бозоғоз мекунед, зеро ҳалли мушкилот ғайриимкон аст. Вақте ки шумо ҳамаи рӯйдодҳоеро, ки шумо доред, назорат, пайгирӣ, пайгирӣ кунед ва мониторингро ҳамчун озмоиш истифода баред - код нависед ва фавран нишон диҳед, ки чӣ гуна онро назорат кардан мумкин аст, инчунин дар шакли код (мо аллакай инфрасохторро ҳамчун код дорем), ҳама чиз равшан мешавад дар каф. Ҳатто чунин мушкилоти мураккаб ба осонӣ пайгирӣ карда мешаванд.

DevOps чист

Ҳама маълумотро дар бораи он ки бо артефакт дар ҳар як марҳилаи раванди таҳвил чӣ мешавад, ҷамъ кунед - на дар истеҳсолот.

Мониторингро ба CI бор кунед ва баъзе чизҳои асосӣ аллакай дар он ҷо намоён хоҳанд шуд. Баъдтар шумо онҳоро дар Test, PredProd ва санҷиши сарборӣ хоҳед дид. Ҷамъоварии маълумот дар ҳама марҳилаҳо, на танҳо метрика, омор, балки инчунин гузоришҳо: чӣ гуна паҳн шудани барнома, аномалияҳо - ҳама чизро ҷамъ кунед.

Дар акси ҳол, фаҳмидани он душвор хоҳад буд. Ман аллакай гуфтам, ки DevOps мураккабтар аст. Барои мубориза бо ин мураккабӣ, шумо бояд таҳлили муқаррариро дошта бошед.

Саволҳо барои худтанзимкунӣ

Оё мониторинг ва сабти шумо воситаи рушд барои шумост? Ҳангоми навиштани код оё таҳиягарони шумо, аз ҷумла шумо, дар бораи чӣ гуна назорат кардани он фикр мекунанд?

Оё шумо дар бораи мушкилот аз муштариён мешунавед? Оё шумо муштариро аз назорат ва сабти ном беҳтар мефаҳмед? Оё шумо системаро аз мониторинг ва сабткунӣ беҳтар мефаҳмед? Оё шумо системаро танҳо барои он тағир медиҳед, ки шумо дидед, ки тамоюл дар система афзоиш меёбад ва шумо мефаҳмед, ки пас аз 3 ҳафтаи дигар ҳама чиз мемирад?

Вақте ки шумо ин се ҷузъро доред, шумо метавонед дар бораи он фикр кунед, ки шумо дар ширкати шумо кадом платформаи инфрасохторӣ доред.

Платформаи инфрасохторӣ

Гап дар он нест, ки ин маҷмӯи асбобҳои ноҳамвор аст, ки ҳар як ширкат дорад.

Мақсади платформаи инфрасохторӣ дар он аст, ки ҳамаи дастаҳо ин асбобҳоро истифода мебаранд ва онҳоро якҷоя таҳия мекунанд.

Равшан аст, ки гурӯҳҳои алоҳида мавҷуданд, ки барои таҳияи қисмҳои алоҳидаи платформаи инфрасохтор масъуланд. Аммо дар айни замон, ҳар як муҳандис барои таҳия, иҷро ва пешбурди платформаи инфрасохторӣ масъулият дорад. Дар сатҳи дохилӣ он як воситаи маъмул мегардад.

Ҳама дастаҳо платформаи инфрасохториро таҳия мекунанд ва ба он ҳамчун IDE-и худ бодиққат муносибат мекунанд. Дар IDE-и худ шумо плагинҳои гуногунро насб мекунед, то ҳама чизро хуб ва зуд созед ва тугмаҳои гармро танзим кунед. Вақте ки шумо Sublime, Atom ё Visual Studio Code мекушоед, хатогиҳои код ворид мешаванд ва шумо мефаҳмед, ки умуман кор кардан ғайриимкон аст, шумо фавран ғамгин мешавед ва шумо барои ислоҳи IDE-и худ давед.

Ба платформаи инфрасохтории худ ҳамин тавр муносибат кунед. Агар шумо фаҳмед, ки дар он чизе нодуруст аст, дархостро гузоред, агар шумо онро худатон ислоҳ карда натавонед. Агар чизи оддӣ бошад, онро худатон таҳрир кунед, дархости кашидан фиристед, бачаҳо онро баррасӣ мекунанд ва илова мекунанд. Ин як муносибати каме дигар ба асбобҳои муҳандисӣ дар сари таҳиякунанда аст.

Платформаи инфрасохторӣ интиқоли артефактро аз таҳия ба муштарӣ бо такмили пайвастаи сифат таъмин мекунад. IP бо маҷмӯи ҳикояҳое барномарезӣ шудааст, ки бо код дар истеҳсолот рӯй медиҳанд. Дар тӯли солҳои рушд, ин ҳикояҳо зиёданд, ки баъзеи онҳо беназиранд ва танҳо ба шумо дахл доранд - онҳоро Google кардан мумкин нест.

Дар ин лаҳза, платформаи инфрасохторӣ бартарии рақобатии шумо мегардад, зеро он чизеро дар бар мегирад, ки дар асбоби рақиб нест. Чӣ қадаре ки IP-и шумо амиқтар бошад, бартарии рақобатии шумо дар робита ба Time-to-market ҳамон қадар зиёдтар аст. Дар ин ҷо пайдо мешавад мушкилоти бастани фурӯшанда: Шумо метавонед платформаи ягон каси дигарро гиред, аммо бо истифода аз таҷрибаи ягон кас, шумо намефаҳмед, ки он ба шумо то чӣ андоза мувофиқ аст. Бале, на ҳама ширкатҳо метавонанд платформаеро ба монанди Amazon созанд. Ин як хатти душворест, ки таҷрибаи ширкат ба мавқеи он дар бозор мувофиқ аст ва шумо дар он ҷо қулфи фурӯшандаро истифода бурда наметавонед. Дар ин бора фикр кардан низ муҳим аст.

Нақшаи

Ин диаграммаи асосии платформаи инфрасохторӣ мебошад, ки ба шумо дар танзими ҳама таҷрибаҳо ва равандҳо дар як ширкати DevOps кӯмак мекунад.

DevOps чист

Биёед бубинем, ки он аз чӣ иборат аст.

Системаи оркестри захираҳо, ки CPU, хотира, дискро ба барномаҳо ва хидматҳои дигар пешкаш мекунад. Бар болои ин - хизматрасониҳои сатҳи паст: мониторинг, сабти ном, Engine CI/CD, нигаҳдории артефакт, инфрасохтор ҳамчун рамзи система.

Хизматрасонии сатҳи баланд: пойгоҳи додаҳо ҳамчун хидмат, навбатҳо ҳамчун хидмат, Тавозуни сарборӣ ҳамчун хидмат, тағир додани андозаи тасвир ҳамчун хидмат, Фабрикаи Big Data ҳамчун хидмат. Бар болои ин - лӯла, ки рамзи доимо тағирёфтаро ба муштарии шумо мерасонад.

Шумо дар бораи чӣ гуна нармафзори шумо барои муштарӣ кор кардан маълумот мегиред, онро тағир медиҳед, ин кодро дубора пешниҳод мекунед, маълумот мегиред - ва ҳамин тавр шумо ҳам платформаи инфрасохторӣ ва ҳам нармафзори худро доимо инкишоф медиҳед.

Дар диаграмма лӯлаи интиқол аз бисёр марҳилаҳо иборат аст. Аммо ин диаграммаи схематикист, ки ҳамчун намуна оварда шудааст - як ба як такрор кардани он лозим нест. Марҳилаҳо бо хидматҳо гӯё хидмат мекунанд - ҳар як хишти платформа таърихи худро дорад: чӣ гуна захираҳо тақсим карда мешаванд, чӣ гуна барнома оғоз мешавад, бо захираҳо кор мекунад, назорат карда мешавад ва тағир меёбад.

Фаҳмидани он муҳим аст, ки ҳар як қисми платформа як ҳикоя дорад ва аз худ бипурсед, ки ин хишт кадом ҳикояро дорад, шояд онро партофта, бо хидмати тарафи сеюм иваз кардан лозим аст. Масалан, оё ба чои хишт Окметрро гузоштан мумкин аст? Шояд бачаҳо аллакай ин таҷрибаро нисбат ба мо бештар таҳия кардаанд. Аммо шояд не - шояд мо таҷрибаи беназире дошта бошем, мо бояд Prometheus-ро насб кунем ва онро минбаъд инкишоф диҳем.

Эҷоди платформа

Ин як раванди мураккаби муошират аст. Вақте ки шумо таҷрибаҳои асосӣ доред, шумо муоширати байни муҳандисон ва мутахассисони гуногунро оғоз мекунед, ки талабот ва стандартҳоро таҳия мекунанд ва онҳоро пайваста ба асбобҳо ва равишҳои гуногун иваз мекунанд. Фарҳанге, ки мо дар DevOps дорем, дар ин ҷо муҳим аст.

DevOps чист
Бо фарҳанг ҳама чиз хеле оддӣ аст - он дар бораи ҳамкорӣ ва муошират аст, яъне майлу хохиши бо хамдигар дар сохаи умумй кор кардан, хохиши якчоя истифода бурдани як асбоб. Дар ин чо илми ракета вучуд надорад — хама чиз хеле оддй, баналист. Масалан, мо ҳама дар даромадгоҳ зиндагӣ мекунем ва онро тоза нигоҳ медорем - чунин сатҳи маданият.

Шумо чӣ доред?

Боз саволҳоеро, ки шумо метавонед ба худ диҳед.

Оё платформаи инфрасохторӣ бахшида шудааст? Кӣ барои рушди он масъул аст? Оё шумо бартариҳои рақобатии платформаи инфрасохтории худро дарк мекунед?

Шумо бояд ин саволҳоро ҳамеша ба худ диҳед. Агар чизеро ба хидматҳои тарафи сеюм интиқол додан мумкин бошад, он бояд интиқол дода шавад; агар хидмати тарафи сеюм ба ҳаракати шумо монеъ шавад, пас шумо бояд дар дохили худ як система созед.

Ҳамин тавр, DevOps ...

... ин як системаи мураккаб аст, он бояд дорои:

  • Маҳсулоти рақамӣ.
  • Модулҳои тиҷоратӣ, ки ин маҳсулоти рақамиро таҳия мекунанд.
  • Гурӯҳҳои маҳсулоте, ки код менависанд.
  • Амалияҳои интиқоли доимӣ.
  • Платформаҳо ҳамчун хидмат.
  • Инфрасохтор ҳамчун хидмат.
  • Инфрасохтор ҳамчун код.
  • Таҷрибаҳои ҷудогона барои нигоҳ доштани эътимод, ки дар DevOps сохта шудаанд.
  • Амалияи фикру мулоҳиза, ки ҳама чизро тавсиф мекунад.

DevOps чист

Шумо метавонед ин диаграммаро истифода бурда, дар он чизеро, ки шумо аллакай дар ширкати шумо дар ягон шакл доред, нишон диҳед: оё он таҳия шудааст ё ҳоло бояд таҳия карда шавад.

Он пас аз ду ҳафта тамом мешавад DevOpsConf 2019. ҳамчун қисми RIT++. Ба конфронс биёед, ки дар он шумо гузоришҳои ҷолибро дар бораи интиқоли муттасил, инфрасохтор ҳамчун код ва табдилдиҳии DevOps хоҳед ёфт. Чиптаҳои худро фармоиш диҳед, мухлати охирини нарх то 20 май

Манбаъ: will.com

Илова Эзоҳ