GitLab ичинде программалык тактарды кантип чыгарабыз

GitLab ичинде программалык тактарды кантип чыгарабыз

GitLab'те биз программалык камсыздоону оңдоону эки жол менен иштетебиз: кол менен жана автоматтык түрдө. gitlab.com сайтында автоматташтырылган жайгаштыруу аркылуу маанилүү жаңыртууларды түзүү жана жеткирүү боюнча релиз менеджеринин жумушу, ошондой эле колдонуучулардын өз орнотууларында иштеши үчүн патчтар тууралуу билүү үчүн окууну улантыңыз.

Мен акылдуу саатыңызга эстеткич коюуну сунуштайм: ай сайын 22-де GitLab менен өз мекемелеринде иштеген колдонуучулар биздин продукттун учурдагы версиясынын жаңыртууларын көрө алышат. Ай сайын чыгуучу релиз жаңы функцияларды, учурдагылардын иштеп чыгууларын камтыйт жана көбүнчө жамааттын инструменттерди же бириктирүү өтүнүчтөрүнүн акыркы натыйжасын көрсөтөт.

Бирок, практика көрсөткөндөй, программалык камсыздоону иштеп чыгуу сейрек кемчиликсиз болот. Мүчүлүштүк же коопсуздуктун алсыздыгы табылганда, жеткирүү тобунун релиз менеджери биздин колдонуучулар үчүн алардын орнотуулары менен жамаачы түзөт. Gitlab.com CD процессинде жаңыртылып турат. Бул CD процессин GitLab ичиндеги CD функциясы менен чаташтырбоо үчүн автоматтык түрдө жайылтуу деп атайбыз. Бул процесс колдонуучулар, кардарлар жана биздин ички өнүктүрүү тобу тарабынан берилген тартуу өтүнүчтөрүнүн сунуштарын камтышы мүмкүн, андыктан патчтарды чыгаруунун кызыксыз көйгөйүн чечүү эки башка жол менен чечилет.

«Биз иштеп чыгуучулар жасаган нерселердин бардыгын GitLab.com сайтына чыгарардан мурун күн сайын бардык чөйрөлөргө жайгаштырылышын камсыз кылабыз.", түшүндүрөт Марин Янковки, Инфраструктура бөлүмүнүн улук техникалык менеджери. "Орнотууларыңыз үчүн релиздерди gitlab.com жайылтууларынын көз ирмемдик сүрөттөрү деп ойлоңуз, алар үчүн биз пакетти түзүү үчүн өзүнчө кадамдарды коштук, андыктан биздин колдонуучулар аны орнотууларына орнотуу үчүн колдоно алышат.«.

Мүчүлүштүк же аялуулугуна карабастан, gitlab.com кардарлары оңдоп-түзөөлөрдү алар жарыялангандан көп өтпөй алышат, бул автоматташтырылган CD процессинин артыкчылыгы. Өзүнүн орнотуулары бар колдонуучулар үчүн патчтарды чыгаруу менеджери өзүнчө даярдоону талап кылат.

Жеткирүү командасы кыскартуу үчүн релиздерди түзүүгө катышкан процесстердин көбүн автоматташтыруу үчүн катуу иштеп жатат MTTP (өндүрүшкө чейинки орточо убакыт, б.а. өндүрүшкө сарпталган убакыт), иштеп чыгуучунун бириктирүү өтүнүчүн иштеп чыгуудан gitlab.com сайтында жайылтууга чейинки убакыт аралыгы.

«Жеткирүү тобунун максаты - биз компания катары тезирээк жыла аларыбызды же жок дегенде жеткирүүчүлөрдүн тезирээк иштешин камсыз кылуу.?, - дейт Марин.

gitlab.com кардарлары да, алардын орнотууларынын колдонуучулары да жеткирүү тобунун цикл убакыттарын кыскартуу жана жайылтууларды тездетүү аракеттеринен пайда көрүшөт. Бул макалада биз бул эки ыкманын ортосундагы окшоштуктарды жана айырмачылыктарды түшүндүрүп берет. маселелер, жана биз ошондой эле жеткирүү тобубуз алардын объектилеринде иштеген колдонуучулар үчүн патчтарды кантип даярдаарын, ошондой эле gitlab.com автоматташтырылган жайгаштыруу аркылуу жаңыртылганына кантип кепилдик берерин сүрөттөп беребиз.

Чыгаруу менеджери эмне кылат?

Команда мүчөлөрү ай сайын релиз менеджеринин ролун өткөрүп берүү биздин релиздерди колдонуучуларга алардын объектилеринде, анын ичинде релиздердин ортосунда пайда болушу мүмкүн болгон патчтарды жана коопсуздук релиздерин. Алар ошондой эле компаниянын автоматташтырылган, үзгүлтүксүз жайылтууга өтүүсүнө жетекчилик кылуу үчүн жооптуу.

Өзүн-өзү орнотуу релиздери жана gitlab.com релиздери окшош иш процесстерин колдонушат, бирок ар кандай убакта иштейт, Марин түшүндүрөт.

Биринчи кезекте, релиз менеджери, релиз түрүнө карабастан, GitLab тиркеме gitlab.com сайтында ишке киргизилген учурдан тартып жеткиликтүү жана коопсуз болушун камсыздайт, анын ичинде кардарлардын инфраструктурасында ошол эле маселелер келип чыкпасын камсыздайт. өз мүмкүнчүлүктөрү.

GitLab'да ката же аялуу оңдолгондон кийин, релиз менеджери анын орнотуулары менен колдонуучулар үчүн патчтарга же коопсуздук жаңыртууларына камтылаарына баа бериши керек. Эгер ал ката же алсыздык жаңыртууга татыктуу деп чечсе, даярдык иштери башталат.

Чыгаруу менеджери оңдоону даярдоону же аны качан колдонууну чечиши керек - бул кырдаалдын контекстинен көз каранды ",ошол эле учурда, машиналар контекстти башкарууда адамдар сыяктуу жакшы эмес"дейт Марин.

Мунун баары оңдоолор жөнүндө

Патчтар деген эмне жана алар бизге эмне үчүн керек?

Релиз менеджери мүчүлүштүктүн олуттуулугуна жараша оңдоону чыгарууну чечет.

Каталар алардын оордугуна жараша өзгөрөт. Ошентип, S4 же S3 каталары стилистикалык болушу мүмкүн, мисалы, пикселдин же сөлөкөтүн жылышуусу. Бул анча маанилүү эмес, бирок эч кимдин иш процессине олуттуу таасир тийгизбейт, демек, мындай S3 же S4 каталары үчүн оңдоо түзүлүү ыктымалдыгы аз, деп түшүндүрөт Марин.

Бирок, S1 же S2 алсыздыктары колдонуучу акыркы версияга жаңыртпаш керек дегенди билдирет, же колдонуучунун иш процессине таасир этүүчү олуттуу ката бар. Эгерде алар трекерге киргизилсе, көптөгөн колдонуучулар аларга туш болушкан, ошондуктан релиз менеджери дароо оңдоону даярдай баштайт.

S1 же S2 алсыздыктары үчүн патч даяр болгондон кийин, релиз менеджери патчты чыгара баштайт.

Мисалы, GitLab 12.10.1 жамаачы бир нече бөгөттөө маселелери аныкталгандан кийин түзүлгөн жана иштеп чыгуучулар аларды пайда кылган негизги маселени чечкен. Релиз менеджери дайындалган оордук даражаларынын тууралыгын баалады жана ырасталгандан кийин, бөгөттөө көйгөйлөрү табылгандан кийин XNUMX сааттын ичинде даяр болгон оңдоону чыгаруу процесси башталды.

Көптөгөн S4, S3 жана S2 топтолгондо, релиз менеджери оңдоону чыгаруунун шашылыштыгын аныктоо үчүн контекстти карайт жана алардын белгилүү бир санына жеткенде, алардын бардыгы бириктирилип, чыгарылат. Чыгарылгандан кийинки оңдоолор же коопсуздук жаңыртуулары блог постторунда жалпыланган.

Чыгуу менеджери тактарды кантип түзөт

Биз тактарды түзүү үчүн GitLab CI жана ChatOps сыяктуу башка функцияларды колдонобуз. Релиз менеджери биздин ички каналыбыздагы ChatOps командасын активдештирүү менен оңдоонун чыгарылышын баштайт #releases Slack ичинде.

/chatops run release prepare 12.10.1

ChatOps ар кандай окуяларды баштоо үчүн Slack ичинде иштейт, алар GitLab тарабынан иштетилет жана аткарылат. Мисалы, жеткирүү тобу патчтарды чыгаруу үчүн ар кандай нерселерди автоматташтыруу үчүн ChatOps түздү.

Чыгаруу менеджери ChatOps командасын Slack'те баштагандан кийин, калган иш CICD аркылуу GitLab ичинде автоматтык түрдө ишке ашат. Чыгаруу процессинде ChatOps in Slack менен GitLab ортосунда эки тараптуу байланыш бар, анткени релиз менеджери процесстин кээ бир негизги кадамдарын иштетет.

Төмөндөгү видеодо GitLab үчүн патчты даярдоонун техникалык процесси көрсөтүлгөн.

gitlab.com сайтында автоматтык жайгаштыруу кантип иштейт

gitlab.com жаңыртуу үчүн колдонулган процесс жана инструменттер тактарды түзүүдө колдонулганга окшош. gitlab.com жаңыртуу релиз менеджеринин көз карашы боюнча азыраак кол менен иштөөнү талап кылат.

ChatOps аркылуу жайылтууларды иштетүүнүн ордуна, биз CI функцияларын колдонобуз, мисалы. пландаштырылган куурлар, анын жардамы менен чыгаруу менеджери керектүү убакта аткарыла турган белгилүү иш-аракеттерди пландаштыра алат. Кол менен жасалган процесстин ордуна, GitLab долбоорлоруна киргизилген жаңы өзгөртүүлөрдү жүктөө, аларды пакеттөө жана жайылтууну пландаштыруу жана автоматтык түрдө тестирлөө, QA жана башка зарыл кадамдарды аткарган саатына бир жолу иштеген түтүк бар.

"Ошентип, бизде gitlab.com сайтына чейин ар кандай чөйрөлөрдө иштеп жаткан көптөгөн жайгаштыруулар бар жана ал чөйрөлөр жакшы абалда болуп, тестирлөө жакшы натыйжаларды көрсөткөндөн кийин, релиз менеджери gitlab.com жайылтуу аракеттерин баштайт" дейт Марин.

gitlab.com жаңыртууларын колдоо үчүн CICD технологиясы релиз менеджери gitlab.com үчүн өндүрүш чөйрөсүн жайылтууну кол менен ишке киргизүүгө чейин бүт процессти автоматташтырат.

Марин төмөндөгү видеодо gitlab.com жаңыртуу процесси жөнүндө кеңири айтып берет.

Жеткирүү тобу дагы эмне кылат?

gitlab.com жаңыртуу процесстери менен кардарларга патчтарды чыгаруунун негизги айырмасы, акыркы процесс релиз менеджеринен көбүрөөк убакытты жана көбүрөөк кол менен иштөөнү талап кылат.

"Биз кээде кардарларга орнотуулары менен патчтарды чыгарууну кийинкиге калтырабыз, анткени билдирилген көйгөйлөрдөн, шаймандык көйгөйлөрдөн жана бир патчты чыгарууда эске алынышы керек болгон көптөгөн нюанстар бар", - дейт Марин.

Жеткирүү тобунун кыска мөөнөттүү максаттарынын бири чыгарууну тездетүү үчүн релиз менеджеринин кол эмгегинин көлөмүн кыскартуу болуп саналат. Команда релиз процессин жөнөкөйлөтүү, иретке келтирүү жана автоматташтыруу үчүн иштеп жатат, бул азыраак олуттуу көйгөйлөрдү оңдоого жардам берет (S3 жана S4, болжол менен котормочу). Ылдамдыкка көңүл буруу - бул аткаруунун негизги көрсөткүчү: MTTPти - бириктирүү өтүнүчүн алгандан баштап, натыйжаны gitlab.com сайтына жайылтууга чейинки убакытты - учурдагы 50 сааттан 8 саатка чейин кыскартуу керек.

Жеткирүү тобу ошондой эле gitlab.com сайтын Kubernetes негизиндеги инфраструктурага көчүрүү үстүндө иштеп жатат.

Редактордун НБ: Эгер сиз Kubernetes технологиясы жөнүндө уккан болсоңуз (жана сизде бар экенине эч күмөнүм жок), бирок ага колуңуз менен тийе элек болсоңуз, мен онлайн интенсивдүү курстарга катышууну сунуштайм Kubernetes базасы, 28-30-сентябрда боло турган жана Kubernetes Mega14-16-октябрда өтөт. Бул технология менен ишенимдүү багыттоого жана иштөөгө мүмкүндүк берет.

Бул бир эле максатты көздөгөн эки ыкма: gitlab.com үчүн да, алардын объекттериндеги кардарлар үчүн да жаңыртууларды тез жеткирүү.

Биз үчүн кандайдыр бир идеялар же сунуштар?

Ар бир адам GitLabга өз салымын кошсо болот жана биз окурмандарыбыздын пикирлерин кабыл алабыз. Биздин жеткирүү командасы үчүн кандайдыр бир идеяларыңыз болсо, тартынбаңыз Болумушту билеттер эскертүү менен team: Delivery.

Source: www.habr.com

Комментарий кошуу