Dailymotion siv Kubernetes li cas: Daim ntawv thov xa tawm
Peb ntawm Dailymotion pib siv Kubernetes hauv kev tsim khoom 3 xyoo dhau los. Tab sis kev xa cov ntawv thov thoob plaws ntau pawg yog kev lom zem, yog li ob peb xyoos dhau los peb tau sim txhim kho peb cov cuab yeej thiab kev ua haujlwm.
Nws pib qhov twg
Ntawm no peb yuav hais txog yuav ua li cas peb xa peb cov ntawv thov hla ntau lub Kubernetes pawg thoob ntiaj teb.
Txhawm rau xa ntau yam khoom Kubernetes ib zaug, peb siv Helm, thiab tag nrho peb cov kab kos tau muab khaws cia rau hauv ib qho chaw cia khoom git. Txhawm rau xa ib daim ntawv thov tag nrho los ntawm ntau qhov kev pabcuam, peb siv daim ntawv teev lus sau tseg. Qhov tseem ceeb, qhov no yog daim ntawv qhia uas tshaj tawm kev vam khom thiab tso cai rau koj los pib API thiab nws cov kev pabcuam nrog ib qho lus txib.
Peb kuj tau sau ib tsab ntawv me me Python rau saum Helm los ua cov tshev, tsim cov kab kos, ntxiv cov lus zais, thiab xa cov ntawv thov. Tag nrho cov haujlwm no tau ua nyob rau hauv nruab nrab CI platform siv cov duab docker.
Wb mus txog qhov twg.
Nco tseg. Raws li koj nyeem qhov no, thawj tus neeg sib tw tso tawm rau Helm 3 twb tau tshaj tawm lawm. Lub ntsiab version muaj tag nrho cov tswv cuab ntawm kev txhim kho los daws qee qhov teeb meem uas peb tau ntsib yav dhau los.
Tam sim no peb cais txoj kev loj hlob ntawm kab kos thiab daim ntawv thov. Qhov no txhais tau hais tias cov neeg tsim khoom yuav tsum ua haujlwm hauv ob qhov chaw khaws cia git: ib qho rau daim ntawv thov, thiab ib qho rau kev txhais nws cov kev xa mus rau Kubernetes. 2 git repositories txhais tau tias 2 workflows, thiab nws yooj yim rau tus neeg tshiab kom tsis meej pem.
Tswj cov kab kos generalized yog ib qho hassle
Raws li peb twb tau hais lawm, cov kab kos dav dav muaj txiaj ntsig zoo rau kev txheeb xyuas qhov kev vam khom thiab siv sai sai rau ntau daim ntawv thov. Tab sis peb siv --reuse-valueskom tsis txhob dhau tag nrho cov txiaj ntsig txhua zaus peb xa ib daim ntawv thov uas yog ib feem ntawm daim ntawv qhia dav dav no.
Hauv kev ua haujlwm tas mus li, peb tsuas muaj ob qhov tseem ceeb uas hloov tsis tu ncua: tus naj npawb ntawm replicas thiab daim duab tag (version). Lwm yam, cov nqi ruaj khov dua yog hloov manually, thiab qhov no yog qhov nyuaj heev. Tsis tas li ntawd, ib qho yuam kev hauv kev siv daim ntawv qhia dav dav tuaj yeem ua rau muaj kev ua tsis tiav loj, raws li peb tau pom los ntawm peb tus kheej kev paub.
Hloov kho ntau cov ntaub ntawv teeb tsa
Thaum tus tsim tawm ntxiv ib daim ntawv thov tshiab, nws yuav tsum tau hloov ntau cov ntaub ntawv: daim ntawv thov tshaj tawm, daim ntawv teev npe zais cia, ntxiv daim ntawv thov raws li kev vam khom yog tias nws suav nrog hauv daim ntawv qhia dav dav.
Kev tso cai Jenkins tau txuas ntxiv hauv Vault
Tam sim no peb muaj ib qho AppRole, uas nyeem tag nrho cov secrets los ntawm Vault.
Cov txheej txheem rollback tsis yog automated
Txhawm rau rollback, koj yuav tsum khiav cov lus txib ntawm ob peb pawg, thiab qhov no yog fraught nrog yuam kev. Peb ua qhov haujlwm no manually kom paub meej tias qhov tseeb version ID raug teev tseg.
Peb tab tom mus rau GitOps
Peb lub hom phiaj
Peb xav xa daim ntawv rov qab mus rau qhov chaw cia ntawm daim ntawv thov nws xa mus.
Kev ua haujlwm yuav zoo ib yam li kev txhim kho. Piv txwv li, thaum ib ceg raug thawb mus rau tus tswv, qhov kev xa tawm yuav raug ua tiav. Qhov sib txawv tseem ceeb ntawm txoj hauv kev no thiab kev ua haujlwm tam sim no yuav yog qhov ntawd txhua yam yuav raug tswj hauv git (daim ntawv thov nws tus kheej thiab txoj hauv kev uas nws siv hauv Kubernetes).
Muaj ntau qhov zoo:
Ntau meej dua rau tus tsim tawm. Nws yooj yim dua kom kawm paub siv cov kev hloov pauv hauv daim ntawv qhia hauv zos.
Cov kev pab cuam deployment txhais tau hais tias tib qhov chaw raws li txoj cai kev pabcuam.
Tswj kev tshem tawm cov kab kos dav dav. Cov kev pabcuam yuav muaj nws tus kheej Helm tso tawm. Qhov no yuav tso cai rau koj los tswj lub neej ntawm daim ntawv thov (rollback, upgrade) ntawm qhov tsawg tshaj plaws, thiaj li tsis cuam tshuam rau lwm yam kev pabcuam.
Cov txiaj ntsig ntawm git rau kev tswj daim ntawv qhia: undo hloov pauv, audit log, thiab lwm yam Yog hais tias koj yuav tsum undo ib tug hloov rau ib daim ntawv, koj yuav ua tau qhov no siv git. Kev xa tawm pib cia li pib.
Peb cov neeg tsim khoom tau siv qhov kev ua haujlwm no tau 2 xyoos tam sim no, yog li peb xav kom kev tsiv teb tsaws chaw tsis muaj mob li sai tau. Yog li ntawd, peb tau txiav txim siab ntxiv cov kauj ruam nruab nrab ntawm txoj kev mus rau lub hom phiaj.
Thawj theem yog yooj yim:
Peb khaws cov qauv zoo sib xws rau kev teeb tsa daim ntawv thov xa tawm, tab sis hauv ib qho khoom hu ua DailymotionRelease.
Peb tau tham nrog txhua tus tsim tawm, yog li cov txheej txheem tsiv teb tsaws tau pib lawm. Thawj theem tseem tswj tau siv CI platform. Kuv mam li sau lwm tsab xov xwm sai sai txog theem ob: yuav ua li cas peb tsiv mus rau GitOps workflow nrog ntws. Kuv mam li qhia koj seb peb teeb txhua yam li cas thiab qhov teeb meem uas peb ntsib (ntau qhov chaw khaws cia, zais cia, thiab lwm yam). Ua raws li xov xwm.
Ntawm no peb tau sim piav qhia peb qhov kev nce qib hauv daim ntawv thov xa mus ua haujlwm nyob rau xyoo dhau los, uas ua rau muaj kev xav txog GitOps mus kom ze. Peb tseem tsis tau mus txog lub hom phiaj thiab yuav qhia txog cov txiaj ntsig, tab sis tam sim no peb ntseeg tias peb tau ua qhov yog thaum peb txiav txim siab ua kom yooj yim txhua yam thiab coj los ze zog rau cov cwj pwm ntawm cov neeg tsim khoom.