Sida Aan Deploy-yada Ugu Gaarnay 502 Eber
Mar kasta oo aan deploy ku samaynay backend-ka Mythex, codsiyo yar oo ku fashilmay 502 Bad Gateway. Ma aha badan — laakiin 502 intii deploy-ka socday waxay micnaheedu tahay in gujintii qof uusan waxba sameyn, ama dhismo uu daawanayay uu nabad-gelyo ka joogsaday. Waxaan u raacnay laba dhibaato oo kala duwan: watchdog is-bogsiiya oo isku dhaca deploy-yada, iyo farqiga u dhexeeya marka server joogsado dhegeysashada iyo marka load balancer-ku joogsado inuu taraafik u diro. Saddex deploy oo production oo isku xigay kadib hagaajinta, tirada waxay ka hoos degtay 10 ilaa 6 ilaa 0.
Nidaamka
API-ga iyo orchestrator-keenu waxay ku socdaan containers oo ku yaal koox server yar oo ka dambeysa Application Load Balancer (ALB) ee AWS. Deploy wuxuu cusboonaysiiyaa hal server markiiba: wuxuu ka dhoofiyaa containers-ka hore, bilaabayaa kuwa cusub, kadibna wuxuu u gudbaa kan xiga. Watchdog ayaa server kasta ku jira oo hubiya in containers-ka ay kor u kacaan, wuxuuna dib u bilaabaa wax kasta oo aan socon — waxaa loo sameeyay in process ku dhacay saacadda 3-ta subaxnimo uu dib u soo noqdo iyadoon qof soo kicin.
Labadaba si gaar ah waa macquul; laakiin wada jirkooda ma aha.
Dhibaatada 1: watchdog-ku wuu la tartamay deploy-ka
Watchdog-ku wuxuu shaqeeyay hal daqiiqo kasta, wuxuuna "caafimaad-celinayay" marka health check hal uu fashilmo. Deploy-ku wuxuu si ula kac ah u dhoofiyaa adeegyada ilaa 150 ilbiriqsi — intaas muddo health check-ku waa inuu fashilmo. Sidaas darteed watchdog-ku deploy kasta oo keliya ayuu shaqeynayay.
Badanaa wuu lumin jiray tartankii si aan waxyeelo lahayn. Hal mar ayuu guuleystay: wuxuu dib u qoray compose file-ka (sharaxa containers-ka ay socon lahaayeen) intii deploy-ka socday, server-kana wuxuu ku tegay iyadoo aan lahayn container gateway ah — markaasna deploy job-ku wuxuu sheegay guul.
Hagaajinta:
- Hal lock. Deploy-ku hadda wuxuu qaadaa isla file lock-ka ay bootstrap script-ka server-ku qaadato, sidaas darteed watchdog-ka iyo deploy-ku mar mid ma shaqayn karaan.
- Afar gar, ma aha hal. Watchdog-ku wuxuu u baahan yahay afar health check oo isku xigta oo fashilmay ka hor inta aanu wax qaban. Adeeg dhoofaya hadda ma eka mid dhintay.
- Hal qeexid. Compose file-ka hadda wuxuu leeyahay hal isha oo keliya, oo loo daabacay server-yada, halkii ay ka ahaan lahaayeen nuqullo kala duwanaan kara.
- Hubi, ha isku halayn. Deploy job-ku hadda ma guulaysan karo sababtoo ah amar soo celiyay. Wuxuu hubiyaa API, orchestrator, gateway iyo publish worker ee server kasta ka hor inta aanu guuleysan karin.
Dhibaatada 2: server-ku wuu ka baxay ka hor taraafikada
Dhibaatada labaad way ka qarsoonayd. Markii deploy uu server dhoofiyo, server-ku wuxuu bilaabaa inuu health endpoint-kiisa ku jawaabo 503 si load balancer-ku u saaro rotation-ka. Server-keenu sidaas wuxuu sameynayay 5 ilbiriqsi, kadibna wuu damayay.
Laakiin ALB-ku wuxuu hubinayay caafimaadka waqti-waqti, wuxuuna u baahnaa dhowr fashil oo isku xigta ka hor inta uusan joojin taraafikada target-ka — ilaa qiyaastii 60 ilbiriqsi oo dhammaystiran. Sidaas darteed 55 ilbiriqsi qiyaastii, load balancer-ku wuxuu sii diri jiray codsiyada dhabta ah server-ka aan horey u joogsan dhegeysashada. Kuwaasi waxay ahaayeen 502-yadayada.
Xalka waxay ahayd in labada jadwal is waafajiyaan:
- Target group-ku hadda wuxuu hubiyaa 5 ilbiriqsi kasta wuxuuna target-ka ku calaamadiyaa caafimaad darro markii 2 fashil. Qiyaastii 10 ilbiriqsi ayuu ku ogaanayaa.
- Dhoofinta wuxuu sii adeegayaa taraafikada dhabta ah 15 ilbiriqsi kadib markii uu bilaabo inuu fashilmo health checks, si ay had iyo jeer u jiro isku-dhafka.
- Settings-kaasi waxay ku jiraan script-ka bixiya infrastructure-ka, ma aha console ay mid qof mar riixay.
In lambarada is-taageeraan
Waqtiyada noocan oo kale waxay isku xirnaan. Dhoofintu waa inay ka dheeraataa waqtiga uu balance-ku u baahan yahay si uu u ogaado; dhoofinta iyo joogsashada waa inay ka dhammaadaan ka hor inta container-ka lagu dilo. Way fudud tahay in qof, lix bilood kadib, mid ka mid ah lambarada beddelo oo uu si aamusan dib ugu soo celiyo cilladda.
Sidaas darteed xiriirrada waxaan ku qornay tijaabooyin: dhoofintu waa inay ka dheeraataa intervalka health check-ka oo lagu dhufto tirada fashilka; dib u helidda caafimaadka waa inay gaaban tahay; dhoofinta oo dhan waa inay ku dhex mahadhnaataa muddada grace ee container-ka. Hal lambar oo la beddelo oo kale oo aan la beddelin, CI wuu fashilmaa. Waxaan sidoo kale tijaabinnay tijaabooyinka laftooda — lambar kasta waxaan u beddelnay qiime khaldan oo aan eegnay in test kasta oo qabsaday.
Cabbiridda deploy waa wax sahlan in lagu khaldo
Cabbirkayagii ugu horeeyay wuxuu sheegay in deploy nadiif ah qiyaastii 3% jabsan. Ma ahayn. Waxaan tirinnay jawaab kasta oo aan ahayn 200, oo 503 oo health endpoint ka timid intii dhoofinta socotay ma aha fashil — waa dhoofinta oo shaqadeeda sameyneysa, u sheegaysa load balancer-ka inaanu mishiinkaas doorashin intuu wali codsiyada dhabta ah u adeegayo.
Waxa isticmaaleyaashu dareemaan waa 502: codsigu wuxuu gaari waayay wax kasta. Kaliya tirinta tan waxay siisay sawirka sax ah — 10, kadibna 6, kadibna 0, saddex deploy oo production ah.
Waxa aan ka barannay
- Dib-u-habaynta is-bogsiisa waa inay ogaato waqtiga shaqada la qorsheeyay. Watchdog-ka aan ogaan karin deploy iyo kraash waa uu ugu dambeyntii la dagaallami doonaa deploy-ka.
- Dhoofintu waa gacan-qaad. Server-ku waa inuu sii adeegaa ilaa load balancer-ku si caddaynta leh u joojiyo taraafikada, waqtigaas wuxuu dejiyaa balance-ka, ma aha server-ka.
- Qeex xaqiiqooyinka tijaabo ahaan. Lambarada hawlgalka way is beddelaan; tijaabooyinka ku xidha midba midka kale ma beddelaan.
- Ka hor inta aadan cabbirin, go'aan ka qaad waxa aad cabbirayso. "Khaladaad" waxay ahayd cabbirka khaldan; "codsiyo aan waxba gaarin" waxay ahayd midka sax ah.
Haddii aad daabacdo app Mythex, midkan midna kuma muuqdo adiga — taasna waa ujeeddada. Wax la xiriira: sida app-kaaga daabacan u sii joogo intaad dib u daabacayso.