Методологияи густариши лоиҳа дар Slack истифода мешавад

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

Методологияи густариши лоиҳа дар Slack истифода мешавад

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

Равандҳои татбиқи лоиҳа имрӯз чӣ гуна кор мекунанд

Ҳар як PR (дархости кашидан) дар Slack бояд мавриди баррасии код қарор гирад ва бояд аз ҳама санҷишҳо бомуваффақият гузарад. Танҳо пас аз иҷрои ин шартҳо, барномасоз метавонад рамзи худро ба шохаи асосии лоиҳа муттаҳид кунад. Аммо, ин рамз танҳо дар соатҳои корӣ, вақти Амрикои Шимолӣ ҷойгир карда мешавад. Дар натиҷа, аз сабаби он ки кормандони мо дар ҷои кори худ қарор доранд, мо барои ҳалли ҳама гуна мушкилоти ғайричашмдошт омодаем.

Мо хар руз кариб 12 супо-риши планиро ичро мекунем. Ҳангоми ҳар як ҷойгиркунӣ, барномасозе, ки ҳамчун роҳбари ҷойгиркунӣ таъин шудааст, барои ба истеҳсолот ворид кардани сохтори нав масъул аст. Ин як раванди бисёрқадам аст, ки монтажро ба осонӣ ба истеҳсолот таъмин мекунад. Ба шарофати ин равиш, мо метавонем хатогиҳоро пеш аз он ки ба ҳамаи корбарони мо таъсир расонанд, ошкор кунем. Агар хатогиҳои аз ҳад зиёд вуҷуд дошта бошанд, ҷойгиркунии васлкунӣ метавонад баргардонида шавад. Агар як масъалаи мушаххас пас аз озодшавӣ ошкор шавад, ислоҳи онро ба осонӣ баровардан мумкин аст.

Методологияи густариши лоиҳа дар Slack истифода мешавад
Интерфейси системаи Checkpoint, ки дар Slack барои ҷойгиркунии лоиҳаҳо истифода мешавад

Раванди ҷойгиркунии версияи навро дар истеҳсолот метавон аз чор марҳила иборат арзёбӣ кард.

▍1. Эҷоди филиали озод

Ҳар як нашр аз як шохаи барориши нав оғоз мешавад, ки нуқтаи таърихи Git-и мост. Ин ба шумо имкон медиҳад, ки барчаспҳоро ба нашр таъин кунед ва ҷойеро фароҳам меорад, ки дар он шумо метавонед хатогиҳоеро, ки дар раванди омодасозии релиз барои баровардан ба истеҳсол пайдо шудаанд, ислоҳ кунед.

▍2. Ҷойгиркунӣ дар муҳити саҳнасозӣ

Қадами навбатӣ ин ҷойгир кардани маҷлис дар серверҳои статсионарӣ ва гузаронидани санҷиши автоматӣ барои иҷрои умумии лоиҳа (санҷиши дуд) мебошад. Муҳити саҳнавӣ муҳити истеҳсолӣ мебошад, ки трафики берунаро қабул намекунад. Дар ин муҳит мо санҷиши иловагии дастӣ анҷом медиҳем. Ин ба мо боварии иловагӣ медиҳад, ки лоиҳаи тағирёфта дуруст кор мекунад. Танҳо санҷишҳои автоматӣ барои таъмини ин сатҳи эътимод кофӣ нестанд.

▍3. Ҷойгиркунӣ дар муҳити озмоишӣ ва канарӣ

Ҷойгиркунӣ дар истеҳсолот аз муҳити озмоишӣ оғоз мешавад, ки аз ҷониби маҷмӯи ҳостҳо муаррифӣ мешавад, ки ба фазои кории дохилии мо Slack хизмат мерасонанд. Азбаски мо корбарони хеле фаъоли Slack ҳастем, бо назардошти ин равиш ба мо кӯмак кард, ки хатогиҳои зиёдеро дар оғози густариш пайдо кунем. Пас аз он ки мо боварӣ ҳосил кардем, ки функсияи асосии система вайрон нашудааст, маҷмӯа дар муҳити канарӣ ҷойгир карда мешавад. Он системаҳоеро ифода мекунад, ки тақрибан 2% трафики истеҳсолиро ташкил медиҳанд.

▍4. Тадричан ба истехсолот баровардан

Агар нишондиҳандаҳои мониторинги версияи нав устувор бошанд ва агар пас аз ҷойгиркунии лоиҳа дар муҳити канарӣ мо ягон шикоят нагирифтаем, мо тадриҷан интиқол додани серверҳои истеҳсолиро ба версияи нав идома медиҳем. Раванди ҷойгиркунӣ ба марҳилаҳои зерин тақсим мешавад: 10%, 25%, 50%, 75% ва 100%. Дар натиҷа, мо метавонем оҳиста-оҳиста трафики истеҳсолиро ба версияи нави система интиқол диҳем. Дар баробари ин мо фурсат дорем, ки дар сурати ошкор шудани ягон аномалия вазъиятро тафтиш кунем.

▍Агар дар вақти ҷойгиркунӣ чизе хато кунад-чӣ?

Ворид кардани тағирот ба код ҳамеша хатар аст. Аммо мо ба шарофати ҳузури "роҳбарони ҷойгиркунӣ" -и хуб омӯзонидашуда, ки раванди ворид кардани релизҳои навро ба истеҳсолот идора мекунанд, нишондиҳандаҳои мониторингро назорат мекунанд ва кори барномасозони релизро ҳамоҳанг мекунанд, бо ин мубориза мебарем.

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

Блокҳои сохтмонии системаи ҷойгиркунӣ

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

▍ Ҷойгиркунии зуд

Ҷараёни коре, ки дар боло тавсиф шудааст, метавонад ба назари бозгашт то андозае равшан ба назар расад. Аммо системаи ҷойгиркунии мо дарҳол ин тавр нашуд.

Вақте ки ширкат хеле хурдтар буд, тамоми барномаи мо метавонист дар 10 мисоли Amazon EC2 кор кунад. Ҷойгир кардани лоиҳа дар ин вазъият маънои истифодаи rsync барои зуд ҳамоҳангсозии ҳама серверҳоро дошт. Пештар, кодекси нав танҳо як қадам аз истеҳсолот дур буд, ки онро муҳити саҳнавӣ муаррифӣ мекард. Ассамблеяхо дар чунин мухит офарида ва санчида мешуданд ва баъд рост ба истехсолот гузаштанд. Фаҳмидани чунин система хеле осон буд; он ба ҳар як барномасоз имкон дод, ки коди навиштаашро дар вақти дилхоҳ ҷойгир кунад.

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

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

Методологияи густариши лоиҳа дар Slack истифода мешавад
1. Серверҳои истеҳсолӣ калиди консулро назорат мекунанд. 2. Тағйироти калидӣ, ин ба серверҳо мегӯяд, ки онҳо бояд ба зеркашии рамзи нав шурӯъ кунанд. 3. Серверҳо файлҳои tarballро бо рамзи барнома зеркашӣ мекунанд

▍ Ҷойгиркунии атомӣ

Ҳалли дигаре, ки ба мо барои расидан ба системаи ҷойгиркунии бисёрсатҳа кӯмак кард, ҷойгиркунии атомӣ буд.

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

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

Методологияи густариши лоиҳа дар Slack истифода мешавад
1. Кушодани рамзи барнома ба директорияи "сард". 2. Гузаронидани система ба директорияи «сард», ки «гарм» мешавад (амали атомӣ)

Натиҷаҳо: тағир додани диққат ба эътимоднокӣ

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

Мо бояд раванди ҷойгиркунии релизҳои нави Slack-ро бехатартар кунем. Ин зарурат моро водор кард, ки системаи ҷойгиркунии худро такмил диҳем. Аслан, мо дар бораи ин системаи такмилёфта дар боло муҳокима кардем. Дар умқи система, мо технологияҳои ҷойгиркунии зуд ва атомиро идома медиҳем. Тарзи ҷойгиркунӣ тағйир ёфт. Системаи нави мо барои тадриҷан ҷойгир кардани коди нав дар сатҳҳои гуногун, дар муҳитҳои гуногун тарҳрезӣ шудааст. Ҳоло мо нисбат ба пештара абзорҳои пешрафтаи дастгирӣ ва абзорҳои мониторинги системаро истифода мебарем. Ин ба мо имкон медиҳад, ки хатогиҳоро пеш аз он ки имкони расидан ба корбари ниҳоӣ дошта бошанд, дарёфт ва ислоҳ кунем.

Вале мо дар ин чо бас карданй нестем. Мо ин системаро мунтазам такмил дода, аз асбобхои мукаммалтари ёрирасон ва воситахои автоматикунонии кор истифода мебарем.

Хонандагони азиз! Дар ҷое, ки шумо кор мекунед, раванди ҷобаҷогузории релизҳои нави лоиҳа чӣ гуна кор мекунад?

Методологияи густариши лоиҳа дар Slack истифода мешавад

Манбаъ: will.com

Илова Эзоҳ