Шарҳ тарҷума: Ин шарҳи Weaveworks маъмултарин стратегияҳои паҳнкунии барномаҳоро муаррифӣ мекунад ва нишон медиҳад, ки чӣ гуна стратегияҳои пешрафтаро бо истифода аз оператори Kubernetes Flagger амалӣ кардан мумкин аст. Он бо забони содда навишта шудааст ва дорои диаграммаҳои визуалӣ мебошад, ки ҳатто ба муҳандисони навкор имкон медиҳанд, ки масъаларо дарк кунанд.

Диаграмма аз он гирифта шудааст стратегияҳои паҳнкунӣ, ки дар Container Solutions сохта шудаанд
Яке аз бузургтарин мушкилот дар таҳияи барномаҳои абрии имрӯза суръат бахшидан ба густариш аст. Дар равиши микросервисҳо, таҳиягарон аллакай бо барномаҳои комилан модулӣ кор мекунанд ва тарҳрезӣ мекунанд, ки ба гурӯҳҳои гуногун имкон медиҳад, ки ҳамзамон код нависанд ва ба барнома тағирот ворид кунанд.
Ҷойгиркунии кӯтоҳтар ва зуд-зуд бартариҳои зерин дорад:
- Вақт ба бозор кам мешавад.
- Хусусиятҳои нав ба корбарон зудтар мерасад.
- Фикру мулоҳизаҳои корбарон ба дастаи таҳиякунанда зудтар мерасад. Ин маънои онро дорад, ки даста метавонад хусусиятҳоро илова кунад ва мушкилотро зудтар ҳал кунад.
- Ахлоқи таҳиягар баланд мешавад: хусусиятҳои бештари рушд кор кардан бо онҳо шавқовартар аст.
Аммо бо зиёд шудани басомади нашрҳо, эҳтимолияти таъсири манфӣ ба эътимоднокии барнома ё таҷрибаи корбар низ афзоиш меёбад. Аз ин рӯ, барои амалиётҳо ва дастаҳои DevOps муҳим аст, ки равандҳо созанд ва стратегияҳои густаришро тавре идора кунанд, ки хатари маҳсулот ва корбаронро кам кунад. (Шумо метавонед дар бораи автоматизатсияи қубурҳои CI/CD бештар маълумот гиред .)
Дар ин паём, мо стратегияҳои гуногуни густаришро дар Кубернетес, аз ҷумла ҷойгиркунии яклухт ва усулҳои пешрафта, ба монанди релутҳои канарӣ ва вариантҳои онҳоро баррасӣ хоҳем кард.
Стратегияҳои ҷойгиркунӣ
Якчанд намудҳои гуногуни стратегияҳои ҷойгиркунӣ мавҷуданд, ки шумо метавонед вобаста ба ҳадафи худ истифода баред. Масалан, ба шумо лозим меояд, ки ба муҳити муайян барои санҷиши минбаъда ё ба зергурӯҳи корбарон/мизоҷон тағирот ворид кунед ё ба шумо лозим меояд, ки пеш аз сохтани хусусият санҷиши маҳдуди корбарро анҷом диҳед. чамъиятй.
Роллинг (тадриҷан, ҷобаҷогузории "план")
Ин стратегияи стандартии ҷойгиркунӣ дар Kubernetes аст. Он тадриҷан, як ба як, подкҳоро бо версияи кӯҳнаи барнома бо pods бо версияи нав иваз мекунад - бе бекористии кластер.

Кубернетес мунтазири он аст, ки қуттиҳои нав ба кор омода шаванд (бо истифода аз онҳо тафтиш мекунанд ), пеш аз он ки шумо ба печонидани кӯҳна шурӯъ кунед. Агар ягон мушкилот ба вуқӯъ ояд, ин навсозии чархиш метавонад бидуни қатъи тамоми кластер қатъ карда шавад. Дар файли YAML, ки намуди паҳнкуниро тавсиф мекунад, тасвири нав тасвири кӯҳнаро иваз мекунад:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp
spec:
replicas: 3
template:
metadata:
labels:
app: awesomeapp
spec:
containers:
- name: awesomeapp
image: imagerepo-user/awesomeapp:new
ports:
- containerPort: 8080Параметрҳои навсозии rollover метавонанд дар файли манифест муайян карда шаванд:
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
...
Аз нав эҷод кунед
Дар ин соддатарин намуди ҷобаҷогузорӣ, қубурҳои кӯҳна якбора кушта мешаванд ва ба нав иваз карда мешаванд:

Манифести мувофиқ чунин менамояд:
spec:
replicas: 3
strategy:
type: Recreate
template:
...Кабуд/Сабз (ҷойгиркунии кабуд-сабз)
Стратегияи густариши кабуд-сабз (баъзан онро сурх/сиёҳ низ меноманд) ҷойгиркунии ҳамзамон версияҳои кӯҳна (сабз) ва нави (кабуд)-и барномаро дар бар мегирад. Пас аз интишори ҳарду версия, корбарони муқаррарӣ ба версияи сабз дастрасӣ доранд, дар ҳоле ки ранги кабуд барои гурӯҳи QA барои автоматикунонии санҷишҳо тавассути хидмати алоҳида ё интиқоли мустақими порт дастрас аст:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp-02
spec:
template:
metadata:
labels:
app: awesomeapp
version: "02"Пас аз санҷида шудани версияи кабуд (нав) ва тасдиқи нашри он, хидмат ба он мегузарад ва версияи сабз (кӯҳна) печонида мешавад:
apiVersion: v1
kind: Service
metadata:
name: awesomeapp
spec:
selector:
app: awesomeapp
version: "02"
...Канария (ҷойгиркунии канареяҳо)
Намоишҳои канарӣ ба гардиши кабуд-сабз монанданд, аммо назорат ва истифодаи беҳтар доранд кадам ба кадам муносибат кардан. Ин намуд якчанд стратегияҳои гуногунро дар бар мегирад, аз ҷумла оғози "пинҳон" ва санҷиши A/B.
Ин стратегия вақте истифода мешавад, ки зарурати озмоиши баъзе функсияҳои нав, одатан дар паси барнома вуҷуд дорад. Моҳияти равиш аз он иборат аст, ки ду сервери тақрибан якхела эҷод карда шавад: яке тақрибан ба ҳама корбарон хизмат мерасонад ва дигаре бо функсияҳои нав танҳо ба зергурӯҳи хурди корбарон хизмат мерасонад, ки баъд аз он натиҷаҳои кори онҳо муқоиса карда мешаванд. Агар ҳама чиз бе хатогӣ сурат гирад, версияи нав тадриҷан ба тамоми инфрасохтор паҳн карда мешавад.
Гарчанде ки ин стратегияро танҳо бо истифода аз Kubernetes, иваз кардани қуттиҳои кӯҳна бо навҳои нав амалӣ кардан мумкин аст, истифодаи шабакаи хидматрасонӣ ба монанди Istio хеле қулайтар ва соддатар аст.
Масалан, шумо метавонед дар Git ду манифести гуногун дошта бошед: манифести муқаррарӣ бо теги 0.1.0 ва манифести канарӣ бо теги 0.2.0. Бо тағир додани вазнҳо дар манифести дарвозаи виртуалии Istio, шумо метавонед тақсимоти трафикро байни ин ду ҷойгиркунӣ назорат кунед:

Барои роҳнамоии зина ба зина барои татбиқи ҷойгиркунии канария бо истифода аз Istio, нигаред . (Шарҳ. тарҷума.: Мо инчунин маводро дар бораи паҳншавии канарияҳо ба Истио тарҷума кардем .)
Ҷойгиркунии Canary бо Weaveworks Flagger
ба шумо имкон медиҳад, ки ба осонӣ ва самаранок идора кардани канарияҳо.
Автоматҳои Flagger бо онҳо кор мекунанд. Он Istio ё AWS App Mesh-ро барои масир ва иваз кардани трафик ва ченакҳои Prometheus барои таҳлили натиҷаҳо истифода мебарад. Илова бар ин, таҳлили ҷойгиркунии канарҳоро бо вебхукҳо барои гузаронидани санҷишҳои қабул, санҷишҳои сарборӣ ва дигар намудҳои санҷишҳо пурра кардан мумкин аст.
Дар асоси ҷойгиркунии Kubernetes ва дар ҳолати зарурӣ, миқёси уфуқии pods (HPA), Flagger маҷмӯи объектҳоро (таҳлилҳои Kubernetes, хидматҳои ClusterIP ва хидматҳои виртуалии Istio ё App Mesh) барои таҳлил ва татбиқи ҷойгиркунии канарӣ эҷод мекунад:

Татбиқи ҳалқаи назорат (давраи назорат),Flagger оҳиста-оҳиста трафикро ба сервери канарӣ иваз мекунад ва ҳамзамон ченакҳои калидии иҷроиш ба монанди фоизи дархостҳои бомуваффақияти HTTP, давомнокии миёнаи дархост ва саломатии поддонҳоро чен мекунад. Бар асоси таҳлили KPI (Нишондиҳандаҳои асосии иҷроиш), канария калон мешавад ё фурӯ меравад ва натиҷаҳои таҳлил дар Slack нашр мешаванд. Тавсиф ва намоиши ин равандро дар мавод пайдо кардан мумкин аст .

Ҷойгиркунии торик (пинҳон) ё A/B
Ҷойгиркунии пинҳонӣ як варианти дигари стратегияи канарӣ мебошад (дар омади гап, Flagger низ метавонад бо он кор кунад). Тафовут байни ҷойгиркунии пинҳонӣ ва канарӣ дар он аст, ки ҷойгиркунии пинҳонӣ на бо пештара кор мекунад, на ба ақибмонда ба монанди ҷойгиркунии канар.
Номи дигари ин ҷойгиркунӣ санҷиши A/B мебошад. Ба ҷои он ки хусусияти нав барои ҳама корбарон дастрас бошад, он танҳо ба як қисми маҳдуди онҳо пешниҳод карда мешавад. Одатан, ин корбарон намедонанд, ки онҳо озмоишгарони пешрав мебошанд (аз ин рӯ истилоҳи "таҳлили пинҳонӣ").
Истифодаи коммутаторҳои функсионалӣ (гузариши хусусият) ва дигар асбобҳо, шумо метавонед назорат кунед, ки корбарон бо хусусияти нав чӣ гуна муомила мекунанд, оё онҳо бо он машғуланд ё интерфейси нави корбарро печида меҳисобанд ва дигар намудҳои ченакҳо.

Ҷойгиркунии Flagger ва A/B
Илова ба масир дар асоси вазн, Flagger инчунин метавонад трафикро ба сервери канарӣ дар асоси параметрҳои HTTP равона кунад. Дар санҷиши A/B, шумо метавонед сарлавҳаҳои HTTP ё кукиҳоро барои ҳадафи як сегменти мушаххаси корбарон истифода баред. Ин махсусан дар мавриди барномаҳои фронталӣ, ки ҳатмии сессияро ба сервер талаб мекунанд, самаранок аст (ҳамбастагии сессия). Маълумоти бештарро дар ҳуҷҷатҳои Flagger пайдо кардан мумкин аст.
Муаллиф миннатдорй баён мекунад , Муҳандиси Weaveworks (ва созандаи Flagger), барои ҳамаи ин намунаҳои аҷиби ҷойгиркунӣ.
PS аз тарҷумон
Инчунин дар блоги мо хонед:
- «»;
- «»;
- «»;
- «".
Манбаъ: will.com
