Pagsulay sa Prod: Canary Deployment

Ang kanaryo maoy gamay nga langgam nga kanunayng mokanta. Kini nga mga langgam sensitibo sa methane ug carbon monoxide. Bisan gikan sa gamay nga konsentrasyon sa sobra nga mga gas sa hangin, sila mawad-an sa panimuot o mamatay. Ang mga digger sa bulawan ug mga minero nagdala sa mga langgam sa minahan: samtang ang mga canaries nag-awit, mahimo ka nga magtrabaho, kung ikaw hilom - adunay gas sa minahan ug panahon na sa pagbiya. Ang mga minero nagsakripisyo ug gamay nga langgam aron makagawas nga buhi sa mga minahan.

Pagsulay sa Prod: Canary Deployment

Ang usa ka susama nga praktis nakit-an sa kaugalingon sa IT. Pananglitan, sa sumbanan nga tahas sa pag-deploy sa usa ka bag-ong bersyon sa usa ka serbisyo o aplikasyon sa produksiyon nga adunay pagsulay sa wala pa kana. Ang palibot sa pagsulay mahimong mahal kaayo, ang mga awtomatikong pagsulay dili masakop ang tanan nga gusto nimo, ug ang dili pagsulay ug pagsakripisyo sa kalidad peligro. Dinhi diin magamit ang pamaagi sa Canary Deployment, diin ang pipila nga tinuud nga trapiko sa produksiyon gitumong sa bag-ong bersyon. Ang pamaagi makatabang luwas susiha ang bag-ong bersyon alang sa produksyon, pagsakripisyo ug gamay para sa dakong kawsa. Ang dugang nga mga detalye kung giunsa ang pamaagi molihok, kung unsa ang mapuslanon ug kung giunsa kini ipatuman, isulti Andrey Markelov (Andrey_V_Markelov), sa panig-ingnan sa pagpatuman sa kompanya Infobip.

Andrey Markelov - Nanguna nga Software Engineer sa Infobip, nagpalambo sa mga aplikasyon sa Java sa natad sa pinansya ug telekomunikasyon sulod sa 11 ka tuig. Nagpalambo sa mga produkto sa Open Source, aktibong miapil sa Atlassian Community ug nagsulat og mga plugins alang sa mga produkto sa Atlassian. Ebanghelista sa Prometheus, Docker ug Redis.

Mahitungod sa Infobip

Kini usa ka global nga plataporma sa telekomunikasyon nga nagtugot sa mga bangko, retailer, online store ug transport company nga magpadala og mga mensahe ngadto sa ilang mga kustomer pinaagi sa SMS, push, letter ug voice messages. Sa ingon nga negosyo, ang kalig-on ug kasaligan hinungdanon aron ang mga kostumer makadawat mga mensahe sa oras.

Infobip IT infrastructure sa mga numero:

  • 15 data centers sa tibuok kalibutan;
  • 500 ka talagsaon nga mga serbisyo nga naglihok;
  • 2500 nga mga higayon sa mga serbisyo, nga labi pa sa mga mando;
  • 4,5 TB nga binuwan nga trapiko;
  • 4,5 bilyon nga numero sa telepono;

Ang negosyo nagtubo, ug uban niini ang gidaghanon sa mga pagpagawas. Naggasto kami sa 60 nga pagpagawas kada adlawtungod kay gusto sa mga kustomer ang daghang mga bahin ug gahum. Apan kini lisud - adunay daghan nga mga serbisyo, apan pipila ka mga sugo. Kinahanglan nimo nga dali nga isulat ang code nga kinahanglan molihok sa produksiyon nga wala’y mga sayup.

Nagpagawas

Ang usa ka tipikal nga pagpagawas ingon niini. Pananglitan, adunay mga serbisyo A, B, C, D ug E, ang matag usa kanila gipalambo sa usa ka bulag nga grupo.

Pagsulay sa Prod: Canary Deployment

Sa usa ka punto, ang grupo sa serbisyo A nakahukom sa pag-deploy sa usa ka bag-ong bersyon, apan ang mga grupo sa mga serbisyo B, C, D ug E wala mahibalo bahin niini. Adunay duha ka kapilian kung unsaon paglihok sa service team A.

Maghupot incremental nga pagpagawas: una nga ilisan ang usa ka bersyon, ug dayon ang ikaduha.

Pagsulay sa Prod: Canary Deployment

Apan adunay ikaduha nga kapilian: ang mando makakita og dugang nga mga kapasidad ug mga makina, i-deploy ang bag-ong bersyon, ug dayon ibalhin ang router, ug ang bersyon magsugod sa pagtrabaho alang sa produksiyon.

Pagsulay sa Prod: Canary Deployment

Sa bisan unsang kaso, hapit kanunay adunay mga problema pagkahuman sa pag-deploy, bisan kung gisulayan ang bersyon. Mahimo nimong sulayan nga mano-mano, mahimo nimo kini awtomatiko, dili nimo masulayan - ang mga problema motungha sa bisan unsang kaso. Ang labing kadali ug labing husto nga paagi aron masulbad kini mao ang pag-roll balik sa nagtrabaho nga bersyon. Lamang unya nga imong mahimo sa pag-atubang sa mga kadaot, uban sa mga hinungdan ug sa pagtul-id kanila.

Busa unsa ang atong gusto?

Wala mi magkinahanglan ug mga problema. Kung makit-an sila sa mga kostumer nga mas paspas kaysa kanamo, makadaot kini sa ilang dungog. Busa kita kinahanglan pagpangita og mga problema nga mas paspas kay sa mga kustomer. Ang aktibo nga pagtrabaho, gipamenos namo ang kadaot.

Sa samang higayon, gusto namo pagpadali sa deploymentaron kini mahitabo sa madali, sayon, natural ug walay pressure gikan sa team. Ang mga inhenyero, mga inhenyero sa DevOps ug mga programmer kinahanglan mapanalipdan - ang pagpagawas sa usa ka bag-ong bersyon makapaguol. Ang team dili magasto, naningkamot kami rational nga paggamit sa human resources.

Mga problema sa deployment

Ang trapiko sa kliyente dili matag-an. Imposible nga matagna kung kanus-a ang trapiko sa kliyente anaa sa labing ubos. Wala kami kahibalo kung asa o kanus-a magsugod ang mga kliyente sa ilang mga kampanya - tingali karong gabii sa India, ugma sa Hong Kong. Tungod sa dako nga kalainan sa oras, ang pag-deploy bisan sa 2 am dili garantiya nga ang mga kustomer dili maapektuhan.

Mga problema sa tighatag. Ang mga mensahero ug tighatag mao ang among mga kauban. Usahay sila adunay mga pag-crash nga hinungdan sa mga sayup sa panahon sa pag-deploy sa mga bag-ong bersyon.

Gipanagtag nga mga team. Ang mga team nga nagpalambo sa bahin sa kliyente ug ang backend naa sa lainlaing mga time zone. Tungod niini, sila sa kasagaran dili magkauyon sa ilang kaugalingon.

Ang mga sentro sa datos dili mahimong balikon sa entablado. Adunay 200 ka racks sa usa ka data center - dili na nimo masubli kini sa usa ka sandbox.

Mga downtimedili madawat! Kita adunay usa ka Error Budget sa diha nga kita nagtrabaho sa 99,99% sa panahon, pananglitan, ug ang nahabilin nga porsyento mao ang "error margin". Imposible ang pagkab-ot sa 100% nga kasaligan, apan hinungdanon nga kanunay nga bantayan ang mga pagtulo ug downtime.

Mga klasiko nga solusyon

Pagsulat code nga walay mga bug. Sa bata pa ako nga developer, ang mga manedyer miduol kanako uban ang usa ka hangyo nga buhian nga walay mga bug, apan kini dili kanunay posible.

Pagsulat og mga pagsulay. Ang mga pagsulay nagtrabaho, apan usahay dili sa paagi nga gusto sa negosyo. Ang pagpangita og kwarta dili trabaho sa mga pagsulay.

Pagsulay sa entablado. Sulod sa 3,5 ka tuig sa akong trabaho sa Infobip, wala pa nako makita nga ang kahimtang sa entablado labing menos partially coincides sa produksyon.

Pagsulay sa Prod: Canary Deployment

Gisulayan pa gani namo ang pagpalambo niini nga ideya: una kami adunay entablado, dayon pre-production, ug dayon pre-production. Apan wala usab kini makatabang - wala gani sila magtugma sa gahum. Uban sa entablado, mahimo namon nga garantiya ang sukaranan nga pagpaandar, apan wala kami nahibal-an kung giunsa kini molihok ubos sa mga karga.

Ang pagpagawas gihimo sa usa nga nagpalambo niini. Kini usa ka maayong praktis: bisan kung adunay usbon ang ngalan sa komento, idugang dayon nila kini sa produksiyon. Makatabang kini sa pagpalambo sa responsibilidad ug dili makalimot sa mga pagbag-o nga gihimo.

Adunay dugang nga mga komplikasyon usab. Makapabug-at alang sa usa ka developer nga mogugol ug daghang oras nga mano-mano nga susihon ang tanan.

Gikasabutan nga mga pagpagawas. Kini nga opsyon kasagarang gitanyag sa management: "Atong magkasinabot nga kada adlaw imong sulayan ug idugang ang mga bag-ong bersyon." Dili kini molihok: kanunay adunay usa ka mando nga naghulat alang sa tanan, o vice versa.

Mga pagsulay sa aso

Laing paagi aron masulbad ang among mga problema sa pag-deploy. Hunahunaa kung giunsa paglihok ang mga pagsulay sa aso sa miaging pananglitan, kung gusto sa team A nga mag-deploy og bag-ong bersyon.

Una, ang team nag-deploy og usa ka pananglitan sa produksyon. Mga mensahe sa pananglitan gikan sa mga pagbugal-bugal nagsundog sa tinuod nga trapikoaron mohaum sa normal nga adlaw-adlaw nga trapiko. Kung maayo ang tanan, gibalhin sa team ang bag-ong bersyon sa trapiko sa gumagamit.

Pagsulay sa Prod: Canary Deployment

Ang ikaduha nga kapilian mao ang pag-deploy nga adunay dugang nga puthaw. Gisulayan kini sa team alang sa produksiyon, dayon gibalhin, ug ang tanan molihok.

Pagsulay sa Prod: Canary Deployment

Mga disbentaha sa mga pagsulay sa aso:

  • Ang mga pagsulay dili kasaligan. Asa makuha ang parehas nga trapiko sa produksiyon? Mahimo nimong gamiton kagahapon o usa ka semana ang milabay, apan dili kini kanunay nga katumbas sa karon.
  • Lisod atimanon. Kinahanglan nimo nga ipadayon ang mga account sa pagsulay, kanunay nga i-reset kini sa wala pa ang matag pag-deploy, kung ang mga aktibo nga rekord ipadala sa repositoryo. Mas lisud kini kaysa pagsulat sa usa ka pagsulay sa imong kaugalingon nga sandbox.

Ang bugtong bonus dinhi mao mahimong masusi ang performance.

Gipagawas ang Canary

Tungod sa mga kakulangan sa mga pagsulay sa aso, nagsugod kami sa paggamit sa mga pagpagawas sa kanaryo.

Usa ka praktis nga susama sa kung giunsa paggamit sa mga minero ang mga canary aron ipakita ang lebel sa mga gas nga nakit-an sa IT. Gipasagdan namo pipila ka tinuod nga trapiko sa produksiyon sa bag-ong bersyonsamtang naningkamot nga makab-ot ang Service Level Agreement (SLA). Ang SLA mao ang among "katungod sa paghimo og usa ka sayup", nga magamit namon kausa sa usa ka tuig (o sa uban pang yugto sa panahon). Kung maayo ang tanan, dugangan namon ang daghang trapiko. Kung dili, among ibalik ang naunang mga bersyon.

Pagsulay sa Prod: Canary Deployment

Pagpatuman ug mga nuances

Giunsa namo pagpatuman ang mga pagpagawas sa canary? Pananglitan, usa ka grupo sa mga kliyente nagpadala mga mensahe pinaagi sa among serbisyo.

Pagsulay sa Prod: Canary Deployment

Ang pag-deploy sama niini: atong tangtangon ang usa ka node gikan sa ilawom sa balancer (1), usbon ang bersyon (2) ug tugotan ang pipila ka trapiko nga gilain (3).

Pagsulay sa Prod: Canary Deployment

Sa kinatibuk-an, ang tanan sa grupo malipay, bisan kung ang usa ka tiggamit dili malipayon. Kung maayo ang tanan, usbon namon ang tanan nga mga bersyon.

Pagsulay sa Prod: Canary Deployment

Akong ipakita sa eskematiko kung giunsa kini pagpangita sa mga microservice sa kadaghanan nga mga kaso.

Adunay Service Discovery ug duha pa ka serbisyo: S1N1 ug S2. Ang una nga serbisyo (S1N1) nagpahibalo sa Pagdiskobre sa Serbisyo kung kini magsugod, ug ang Pagdiskobre sa Serbisyo nahinumdom niini. Ang ikaduhang serbisyo nga adunay duha ka node (S2N1 ug S2N2) nagpahibalo usab sa Service Discovery kung kini magsugod.

Pagsulay sa Prod: Canary Deployment

Ang ikaduha nga serbisyo alang sa una nagtrabaho isip usa ka server. Ang una nangutana sa Service Discovery alang sa kasayuran bahin sa mga server niini, ug kung nadawat kini, gipangita ug gisusi sila ("pagsusi sa kahimsog"). Sa iyang pagsusi, padad-an niya silag mga mensahe.

Kung adunay gusto nga mag-deploy og bag-ong bersyon sa ikaduhang serbisyo, gisultihan niya ang Service Discovery nga ang ikaduhang node mahimong canary node: gamay ra ang trapiko nga ipadala niini, tungod kay ang pag-deploy mahitabo karon. Gikuha namon ang canary node gikan sa ilawom sa balancer ug ang una nga serbisyo wala magpadala sa trapiko niini.

Pagsulay sa Prod: Canary Deployment

Gibag-o namon ang bersyon ug nahibal-an sa Service Discovery nga ang ikaduha nga node karon canary - mahimo nimo kini hatagan gamay nga load (5%). Kung maayo ang tanan, usbon namon ang bersyon, ibalik ang mga karga ug pagtrabaho.

Aron ipatuman kining tanan, kinahanglan nato:

  • pagbalanse;
  • pagmonitortungod kay importante nga mahibal-an kung unsa ang gipaabut sa matag tiggamit ug kung giunsa ang among mga serbisyo nagtrabaho sa detalye;
  • pagtuki sa bersyonaron masabtan kung unsa ka maayo ang bag-ong bersyon nga molihok sa produksiyon;
  • automation - among gisulat ang deployment sequence (deployment pipeline).

Pagsulay sa Prod: Canary Deployment

Pagbalanse

Kini ang unang butang nga angay natong hunahunaon. Adunay duha ka mga estratehiya sa pagbalanse.

Ang pinakasimple nga kapilian kung ang usa ka node kanunay nga canary. Kini nga node kanunay makadawat og gamay nga trapiko ug magsugod kami sa pag-deploy gikan niini. Sa kaso sa mga problema, atong itandi ang trabaho niini sa wala pa ang deployment ug sa panahon niini. Pananglitan, kung adunay 2 ka beses nga daghang mga sayup, nan ang kadaot nagdugang 2 ka beses.

Ang canary node gitakda sa panahon sa proseso sa pag-deploy. Kung matapos na ang deployment ug atong tangtangon ang status sa canary node gikan niini, ibalik ang balanse sa trapiko. Uban sa gamay nga mga sakyanan, kita makakuha og patas nga pag-apod-apod.

Pagbantay

Ang batong pamag-ang sa mga pagpagawas sa kanaryo. Kinahanglan nga masabtan gyud nato kung nganong gibuhat nato kini ug unsa nga mga sukatan ang gusto natong kolektahon.

Mga pananglitan sa mga sukatan nga among gikolekta gikan sa among mga serbisyo.

  • Gidaghanon sa mga sayop, nga gisulat sa mga troso. Kini usa ka tin-aw nga timailhan nga ang tanan nagtrabaho ingon nga kini kinahanglan. Sa kinatibuk-an, kini usa ka maayo nga sukatan.
  • Oras sa Pagpatuman sa Pangutana (latency). Gibantayan sa tanan kini nga sukatan tungod kay gusto sa tanan nga molihok dayon.
  • Gidak-on sa pila (throughput).
  • Gidaghanon sa malampuson nga mga tubag matag segundo.
  • Panahon sa pagpatuman sa 95% sa tanan nga mga hangyo.
  • Mga sukdanan sa negosyo: pila ka salapi ang nahimo sa usa ka negosyo sa usa ka gihatag nga oras o pag-churn sa tiggamit. Kini nga mga sukatan alang sa among bag-ong bersyon mahimong mas hinungdanon kaysa sa gidugang sa mga inhenyero.

Mga pananglitan sa mga sukatan sa labing inila nga mga sistema sa pagmonitor.

Kontra Kini usa ka pagtaas sa kantidad, pananglitan, ang gidaghanon sa mga sayup. Kini nga sukatan dali nga i-interpolate ug tun-an ang tsart: kagahapon adunay 2 nga mga sayup, ug karon 500, nga nagpasabut nga adunay sayup.

Ang gidaghanon sa mga kasaypanan matag minuto o matag segundo mao ang labing hinungdanon nga timailhan nga mahimong kalkulado gamit ang Counter. Kini nga datos naghatag usa ka tin-aw nga litrato kung giunsa ang sistema molihok sa layo. Tagda ang pananglitan sa usa ka graph sa gidaghanon sa mga sayop matag segundo alang sa duha ka bersyon sa sistema sa produksyon.

Pagsulay sa Prod: Canary Deployment

Adunay pipila ka mga sayup sa unang bersyon, tingali ang pag-audit wala molihok. Sa ikaduha nga bersyon, ang tanan mas grabe. Makaingon kita nga sigurado nga adunay mga problema, mao nga kinahanglan naton ibalik kini nga bersyon.

Pagsukod. Ang mga sukatan parehas sa Counter, apan among girekord ang mga kantidad nga mahimo’g motaas o mokunhod. Pananglitan, oras sa pagpatuman sa pangutana o gidak-on sa pila.

Ang graph nagpakita sa usa ka pananglitan sa latency. Gipakita sa graph nga parehas ang mga bersyon, mahimo ka nga magtrabaho kauban nila. Apan kung imong tan-awon pag-ayo, imong makita kung giunsa ang pagbag-o sa kantidad. Kung ang oras sa pagpatuman sa pangutana nagdugang kung gidugang ang mga tiggamit, nan klaro dayon nga adunay mga problema - dili kini ang kaso kaniadto.

Pagsulay sa Prod: Canary Deployment

Sumaryo. Usa sa labing hinungdanon nga mga timailhan alang sa negosyo mao ang mga porsyento. Ang metric nagpakita niana 95% sa mga kaso ang among sistema nagtrabaho sa paagi nga gusto namon. Mahimo natong dawaton kung adunay mga problema sa usa ka dapit, tungod kay nasabtan nato ang kinatibuk-ang uso, unsa ka maayo o dili maayo ang tanan.

Mga himan

ELK Stack. Mahimo nimong ipatuman ang canary gamit ang Elasticsearch - gisulat namon ang mga sayup niini kung adunay mga panghitabo. Uban sa pinakasimple nga tawag sa API, mahimo nimong makuha ang gidaghanon sa mga sayup sa bisan unsang oras ug itandi sa nangaging mga bahin: GET /applg/_cunt?q=level:errr.

Prometheus. Gipakita niya ang iyang kaugalingon nga maayo sa Infobip. Gitugotan ka niini nga ipatuman ang mga sukatan nga multidimensional tungod kay gigamit ang mga label.

Mahimo naton gamiton level, instance, service, isagol sila sa usa ka sistema. Uban sa tabang offset imong makita, pananglitan, ang bili sa usa ka bili usa ka semana ang milabay sa usa lang ka sugo GET /api/v1/query?query={query}diin {query}:

rate(logback_appender_total{ 
    level="error",  
    instance=~"$instance" 
}[5m] offset $offset_value)

Pagtuki sa Bersyon

Adunay daghang mga estratehiya sa pag-bersyon.

Tan-awa lang ang metrics sa canary nodes. Usa sa pinakasimple nga mga kapilian: pag-deploy og bag-ong bersyon ug pagtuon lang sa trabaho. Apan kung ang inhenyero niining panahona nagsugod sa pagtuon sa mga troso, kanunay nga gikulbaan nga nag-reload sa mga panid, nan kini nga solusyon dili lahi sa uban.

Ang canary node gitandi sa bisan unsang ubang node. Kini usa ka pagtandi sa ubang mga higayon nga nagdagan sa tibuuk nga trapiko. Pananglitan, kung ang mga butang mas grabe sa gamay nga trapiko, o dili mas maayo kaysa sa tinuod nga mga higayon, nan adunay sayup.

Ang Canary node gitandi sa iyang kaugalingon kaniadto. Ang mga node nga gigahin sa canary mahimong itandi sa makasaysayan nga datos. Pananglitan, kung maayo ang tanan usa ka semana ang milabay, mahimo naton ipunting kini nga datos aron masabtan ang karon nga kahimtang.

Automation

Gusto namon nga buhian ang mga inhenyero gikan sa manual nga pagtandi, busa hinungdanon nga ipatuman ang automation. Ang deployment pipeline kasagarang ingon niini:

  • magsugod kita;
  • kuhaa ang node gikan sa ilawom sa balancer;
  • pagbutang ug canary node;
  • i-on ang balancer nga adunay limitado nga gidaghanon sa trapiko;
  • itandi.

Pagsulay sa Prod: Canary Deployment

Niini nga yugto, atong ipatuman awtomatik nga pagtandi. Giunsa kini hitsura ug ngano nga kini mas maayo kaysa pag-verify pagkahuman sa pag-deploy, tan-awon naton ang usa ka pananglitan gikan sa Jenkins.

Kini ang pipeline sa Groovy.

while (System.currentTimeMillis() < endCanaryTs) {
    def isOk = compare(srv, canary, time, base, offset, metrics)
    if (isOk) {
        sleep DEFAULT SLEEP
    }   else {
        echo "Canary failed, need to revert"  
        return false
    }
}

Dinhi sa loop atong gibutang nga atong itandi ang bag-ong node sulod sa usa ka oras. Kung ang proseso sa canary wala pa matapos ang proseso, gitawag namon ang function. Siya nagtaho nga ang tanan maayo o dili: def isOk = compare(srv, canary, time, base, offset, metrics).

Kung ang tanan maayo - sleep DEFAULT SLEEP, pananglitan, sa usa ka segundo, ug magpadayon. Kung dili, exit - napakyas ang pag-deploy.

Deskripsyon sa metric. Atong tan-awon kung unsa ang hitsura sa function compare sa pananglitan sa DSL.

metric(
    'errorCounts',
    'rate(errorCounts{node=~"$canaryInst"}[5m] offset $offset)',
    {   baseValue, canaryValue ->
        if (canaryValue > baseValue * 1.3) return false 
        return true
    }
)

Ingnon ta nga atong gitandi ang gidaghanon sa mga sayop ug gusto namong mahibaloan ang gidaghanon sa mga sayop kada segundo sa katapusang 5 ka minuto.

Kami adunay duha ka mga kantidad: base ug canary nodes. Ang bili sa canary node mao ang kasamtangan. Basic - baseValue mao ang bili sa bisan unsa nga lain nga non-canary node. Gikumpara namon ang mga kantidad sa usag usa sumala sa pormula, nga among gitakda base sa among kasinatian ug obserbasyon. Kung ang bili canaryValue dili maayo, unya ang deployment napakyas, ug mibalik kami.

Nganong gikinahanglan kining tanan?

Ang usa ka tawo dili makasusi sa gatusan ug liboan nga mga sukatanilabi na sa pagbuhat niini sa madali. Ang awtomatikong pagtandi makatabang sa pagsusi sa tanan nga mga sukatan ug dali nga ipahibalo kanimo ang mga problema. Ang timing sa alert mao ang kritikal: kung adunay nahitabo sa katapusan nga 2 segundos, ang kadaot dili ingon kadako kung kini nahitabo 15 minuto ang milabay. Hangtud nga adunay makamatikod sa usa ka problema, magsulat aron suportahan, ug suportahan kami aron mabalik, mahimo ka mawad-an sa mga kustomer.

Kung nahuman ang proseso ug maayo ang tanan, awtomatiko namon nga i-deploy ang tanan nga ubang mga node. Niining panahona, wala’y mahimo ang mga inhenyero. Sa diha lamang nga ilang ilunsad ang kanaryo nga sila makahukom kon unsa nga mga sukdanan ang pagakuhaon, unsa ka dugay buhaton ang pagtandi, unsa nga estratehiya ang gamiton.

Pagsulay sa Prod: Canary Deployment

Kung adunay mga problema, awtomatiko namon nga ibalik ang canary node, pagtrabaho sa miaging mga bersyon ug ayohon ang mga sayup nga among nakit-an. Pinaagi sa metrics, dali ra silang makit-an ug makita ang kadaot gikan sa bag-ong bersyon.

Babag

Siyempre, dili kini sayon ​​nga ipatuman. Una sa tanan, kinahanglan nimo kinatibuk-ang sistema sa pagmonitor. Ang mga inhenyero adunay kaugalingon nga sukatan, suporta ug analista adunay lainlaing mga sukatan, ug ang mga negosyo adunay ikatulo. Ang komon nga sistema mao ang komon nga pinulongan nga gisulti sa negosyo ug kalamboan.

Kinahanglan nga sulayan sa praktis metric nga kalig-on. Ang pagsusi makatabang kanimo nga masabtan unsa ang minimum nga set sa metrics nga gikinahanglan aron masiguro ang kalidad.

Unsaon pagkab-ot niini? Paggamit sa canary-service dili sa panahon sa pag-deploy. Nagdugang kami usa ka piho nga serbisyo sa daan nga bersyon, nga sa bisan unsang oras mahimo’g makuha ang bisan unsang gipahinungod nga node, pagpakunhod sa trapiko nga wala’y pag-deploy. Human nato itandi: atong tun-an ang mga sayop ug pangitaon ang linya kung atong makab-ot ang kalidad.

Pagsulay sa Prod: Canary Deployment

Sa unsang paagi kita nakabenepisyo sa mga kanaryo?

Gipamub-an ang porsyento sa kadaot gikan sa mga bug. Kadaghanan sa mga kasaypanan sa pag-deploy kay tungod sa mga pagkasumpaki sa pipila ka datos o prayoridad. Adunay mas gamay nga mga sayup, tungod kay mahimo naton masulbad ang problema sa unang mga segundo.

Na-optimize nga trabaho sa team. Ang mga nagsugod adunay "katungod sa paghimo sa usa ka sayup": mahimo silang i-deploy sa produksiyon nga dili mahadlok nga masayop, adunay dugang nga inisyatiba, usa ka insentibo sa pagtrabaho. Kung mabuak nila ang usa ka butang, nan dili kini kritikal, ug ang nasayop dili matangtang sa trabaho.

Awtomatiko nga pag-deploy. Dili na kini usa ka manual nga proseso, sama kaniadto, apan usa ka tinuud nga awtomatiko. Pero mas dugay pa.

Gipasiugda ang hinungdanon nga mga sukatan. Ang tibuuk nga kompanya, sugod sa negosyo ug mga inhenyero, nakasabut kung unsa gyud ang hinungdanon sa among produkto, kung unsang mga sukatan, pananglitan, ang pag-agos ug pag-agos sa mga tiggamit. Gikontrol namo ang proseso: gisulayan namo ang mga sukatan, gipaila ang mga bag-o, tan-awa kung unsa ang mga daan nga nagtrabaho aron makatukod og sistema nga makakwarta nga mas produktibo.

Daghan mig cool practices ug system nga makatabang namo. Bisan pa niini, naningkamot kami nga mahimong propesyonal ug maayo ang among trabaho, bisan kung kami adunay sistema nga makatabang kanamo o wala.

Mga pamaagi ug praktis sa engineering - nag-unang focus sa TechLead Conf. Kung nakab-ot nimo ang kalampusan sa dalan padulong sa kahusayan sa teknikal ug andam nga isulti kanimo kung unsa ang nakatabang kanimo niini, - pag-aplay alang sa usa ka report.

Nagplano mi Tech Lead Conf Hunyo 8. Nasabtan namo nga lisud ang paghimog mga desisyon bahin sa pag-apil sa komperensya karon. Apan sa samang higayon, kami nagtuo nga ang quarantine dili usa ka rason aron mahunong ang propesyonal nga komunikasyon ug kalamboan. Busa, sa bisan unsang kaso, mangita kami usa ka paagi aron mahisgutan ang mga buluhaton sa usa ka teknikal nga tingga ug mga pamaagi sa pagsulbad niini - kung kinahanglan, mag-online kami ug mag-set up sa networking didto!

Source: www.habr.com

Idugang sa usa ka comment