PiezÄ«me tulkojums: Å is Weaveworks pÄrskats iepazÄ«stina ar populÄrÄkajÄm lietojumprogrammu izlaiÅ”anas stratÄÄ£ijÄm un parÄda, kÄ vismodernÄkÄs var ieviest, izmantojot operatoru Kubernetes Flagger. Tas ir uzrakstÄ«ts vienkÄrÅ”Ä valodÄ un satur vizuÄlas diagrammas, kas ļauj pat iesÄcÄjiem inženieriem izprast problÄmu.
Diagramma ir Åemta no vÄl viena atsauksme Container Solutions izstrÄdÄtÄs izlaiÅ”anas stratÄÄ£ijas
MÅ«sdienÄs viens no lielÄkajiem izaicinÄjumiem mÄkoÅa lietojumprogrammu izstrÄdÄ ir izvietoÅ”anas paÄtrinÄÅ”ana. Mikropakalpojumu pieejÄ izstrÄdÄtÄji jau strÄdÄ ar un izstrÄdÄ pilnÄ«gi modulÄras lietojumprogrammas, ļaujot dažÄdÄm komandÄm vienlaikus rakstÄ«t kodu un veikt izmaiÅas lietojumprogrammÄ.
ÄŖsÄkai un biežÄkai izvietoÅ”anai ir Å”Ädas priekÅ”rocÄ«bas:
Tiek samazinÄts laiks lÄ«dz tirgum.
JaunÄs funkcijas ÄtrÄk sasniedz lietotÄjus.
LietotÄju atsauksmes ÄtrÄk sasniedz izstrÄdes komandu. Tas nozÄ«mÄ, ka komanda var ÄtrÄk pievienot funkcijas un novÄrst problÄmas.
PaaugstinÄs izstrÄdÄtÄju morÄle: ar vairÄkÄm izstrÄdes funkcijÄm ir daudz patÄ«kamÄk strÄdÄt.
TaÄu, palielinoties izlaiÅ”anas biežumam, palielinÄs arÄ« iespÄja negatÄ«vi ietekmÄt lietojumprogrammas uzticamÄ«bu vai lietotÄja pieredzi. TÄpÄc operÄcijÄm un DevOps komandÄm ir svarÄ«gi veidot procesus un pÄrvaldÄ«t izvietoÅ”anas stratÄÄ£ijas tÄ, lai lÄ«dz minimumam samazinÄtu produkta un lietotÄju risku. (Varat uzzinÄt vairÄk par CI/CD konveijera automatizÄciju Å”eit.)
Å ajÄ ziÅojumÄ mÄs apspriedÄ«sim dažÄdas Kubernetes izvietoÅ”anas stratÄÄ£ijas, tostarp slÄ«doÅ”o izvietoÅ”anu un progresÄ«vÄkas metodes, piemÄram, kanÄrijas izlaiÅ”anu un to variÄcijas.
IzvÄrÅ”anas stratÄÄ£ijas
Ir vairÄki dažÄdi izvietoÅ”anas stratÄÄ£iju veidi, kurus varat izmantot atkarÄ«bÄ no mÄrÄ·a. PiemÄram, jums var bÅ«t nepiecieÅ”ams veikt izmaiÅas noteiktÄ vidÄ, lai veiktu turpmÄku testÄÅ”anu, vai lietotÄju/klientu apakÅ”kopÄ, vai arÄ« pirms funkcijas izveides jÄveic ierobežota lietotÄju pÄrbaude. publiski.
Å Ä« ir standarta izvietoÅ”anas stratÄÄ£ija Kubernetes. Tas pakÄpeniski, pa vienam, aizvieto aplikÄcijas ar veco lietojumprogrammas versiju ar jauno versiju ā bez klastera dÄ«kstÄves.
Kubernetes gaida, lÄ«dz jaunie podi ir gatavi darbam (pÄrbaudiet tos, izmantojot gatavÄ«bas pÄrbaudes), pirms sÄkat ritinÄt vecÄs. Ja rodas problÄma, Å”o ritoÅ”o atjauninÄjumu var pÄrtraukt, neapturot visu klasteru. YAML failÄ, kurÄ aprakstÄ«ts izvietoÅ”anas veids, jaunais attÄls aizstÄj veco attÄlu:
Zili zaÄ¼Ä izvietoÅ”anas stratÄÄ£ija (dažreiz saukta arÄ« par sarkanu/melnu) ietver lietojumprogrammas vecÄs (zaļÄs) un jaunÄs (zilÄs) versijas vienlaicÄ«gu izvietoÅ”anu. PÄc abu versiju publicÄÅ”anas parastajiem lietotÄjiem ir pieejama zaÄ¼Ä versija, savukÄrt zilÄ ir pieejama kvalitÄtes nodroÅ”inÄÅ”anas komandai, lai automatizÄtu testus, izmantojot atseviŔķu pakalpojumu vai tieÅ”u porta pÄradresÄciju:
PÄc zilÄs (jaunÄs) versijas testÄÅ”anas un tÄs izlaiÅ”anas apstiprinÄÅ”anas pakalpojums pÄrslÄdzas uz to, un zaÄ¼Ä (vecÄ) versija tiek salocÄ«ta:
KanÄriju izlaidumi ir lÄ«dzÄ«gi zili zaļiem izlaiÅ”anai, taÄu tiem ir labÄka kontrole un lietoÅ”ana progresÄ«vs soli pa solim pieeja. Å is veids ietver vairÄkas dažÄdas stratÄÄ£ijas, tostarp "slÄpto" palaiÅ”anu un A/B testÄÅ”anu.
Å o stratÄÄ£iju izmanto, ja ir jÄizmÄÄ£ina kÄda jauna funkcionalitÄte, parasti lietojumprogrammas aizmugurÄ. Pieejas bÅ«tÄ«ba ir izveidot divus gandrÄ«z identiskus serverus: viens apkalpo gandrÄ«z visus lietotÄjus, bet otrs ar jaunÄm funkcijÄm apkalpo tikai nelielu lietotÄju apakÅ”grupu, pÄc kura tiek salÄ«dzinÄti viÅu darba rezultÄti. Ja viss norit bez kļūdÄm, jaunÄ versija pakÄpeniski tiek ieviesta visÄ infrastruktÅ«rÄ.
Lai gan Å”o stratÄÄ£iju var Ä«stenot tikai, izmantojot Kubernetes, aizstÄjot vecÄs podi ar jaunÄm, daudz ÄrtÄk un vienkÄrÅ”Äk ir izmantot pakalpojumu tÄ«klu, piemÄram, Istio.
PiemÄram, pakalpojumÄ Git jums var bÅ«t divi dažÄdi manifesti: parastais manifests ar tagu 0.1.0 un kanÄrijputnu manifests ar tagu 0.2.0. Mainot svarus Istio virtuÄlÄs vÄrtejas manifestÄ, varat kontrolÄt trafika sadalÄ«jumu starp Ŕīm divÄm izvietoÅ”anÄm:
DetalizÄtu rokasgrÄmatu par kanÄrijputnu izvietoÅ”anas ievieÅ”anu, izmantojot Istio, skatiet GitOps darbplÅ«smas ar Istio. (PiezÄ«me. tulk.: Istio valodÄ mÄs arÄ« tulkojÄm materiÄlus par kanÄrijputnu izrullÄÅ”anu Å”eit.)
KanÄriju izvietoÅ”ana ar Weaveworks atzÄ«mÄtÄju
AtzÄ«mÄtÄjs automatizÄ darbu ar tiem. Tas izmanto Istio vai AWS App Mesh, lai marÅ”rutÄtu un pÄrslÄgtu satiksmi, un Prometheus metriku, lai analizÄtu rezultÄtus. TurklÄt kanÄrijputnu izvietoÅ”anas analÄ«zi var papildinÄt ar tÄ«mekļa aizÄ·erÄm, lai veiktu pieÅemÅ”anas testus, slodzes testus un jebkura cita veida pÄrbaudes.
Pamatojoties uz Kubernetes izvietoÅ”anu un, ja nepiecieÅ”ams, horizontÄlo apvidu mÄrogoÅ”anu (HPA), Flagger izveido objektu kopas (Kubernetes izvietoÅ”ana, ClusterIP pakalpojumi un Istio vai App Mesh virtuÄlie pakalpojumi), lai analizÄtu un ieviestu kanÄrijas izvietoÅ”anu:
VadÄ«bas cilpas ievieÅ”ana (vadÄ«bas cilpa),Flagger pakÄpeniski pÄrslÄdz trafiku uz Canary serveri, vienlaikus mÄrot galvenos veiktspÄjas rÄdÄ«tÄjus, piemÄram, veiksmÄ«go HTTP pieprasÄ«jumu attiecÄ«bu, vidÄjo pieprasÄ«juma ilgumu un aplikumu stÄvokli. Pamatojoties uz KPI (Key Performance Indicators) analÄ«zi, kanÄrijputniÅÅ” vai nu aug, vai sabrÅ«k, un analÄ«zes rezultÄti tiek publicÄti vietnÄ Slack. Å Ä« procesa apraksts un demonstrÄcija ir atrodama materiÄlÄ ProgresÄ«va App Mesh piegÄde.
TumÅ”i (slÄpti) vai A/B izvietojumi
Stealth izvietoÅ”ana ir vÄl viena KanÄriju stratÄÄ£ijas variÄcija (ar kuru, starp citu, var darboties arÄ« Flagger). AtŔķirÄ«ba starp slepeno un kanÄrijas izvietoÅ”anu ir tÄda, ka slepenie izvietojumi ir saistÄ«ti ar priekÅ”galu, nevis ar aizmuguri, piemÄram, kanÄrijputnu izvietoÅ”anu.
VÄl viens Å”o izvietojumu nosaukums ir A/B testÄÅ”ana. TÄ vietÄ, lai jaunÄ funkcija bÅ«tu pieejama visiem lietotÄjiem, tÄ tiek piedÄvÄta tikai ierobežotai daļai lietotÄju. Parasti Å”ie lietotÄji neapzinÄs, ka ir celmlauži testÄtÄjiem (tÄtad termins "slÄptÄ izvietoÅ”ana").
FunkcionalitÄtes slÄdžu izmantoÅ”ana (funkciju pÄrslÄgÅ”ana) un citiem rÄ«kiem, varat pÄrraudzÄ«t, kÄ lietotÄji mijiedarbojas ar jauno funkciju, vai tÄ viÅus piesaista, vai jaunais lietotÄja interfeiss viÅiem Ŕķiet mulsinoÅ”s, kÄ arÄ« cita veida metriku.
AtzÄ«mÄtÄjs un A/B izvietoÅ”ana
Papildus uz svaru balstÄ«tai marÅ”rutÄÅ”anai, Flagger var arÄ« marÅ”rutÄt trafiku uz kanÄrijputnu serveri, pamatojoties uz HTTP parametriem. A/B testÄÅ”anÄ varat izmantot HTTP galvenes vai sÄ«kfailus, lai atlasÄ«tu konkrÄtu lietotÄju segmentu. Tas ir Ä«paÅ”i efektÄ«vi priekÅ”gala lietojumprogrammÄm, kurÄm nepiecieÅ”ama sesijas saistÄ«Å”ana ar serveri (sesijas radniecÄ«ba). PlaÅ”Äku informÄciju var atrast atzÄ«mÄtÄja dokumentÄcijÄ.
Autore izsaka pateicÄ«bu Stefans Prodans, Weaveworks inženieris (un Flagger veidotÄjs) visiem Å”iem pÄrsteidzoÅ”ajiem izvietoÅ”anas modeļiem.