O matou i le True Engineering ua fa'atulagaina se faiga mo le fa'aauauina o fa'afouga i 'au'aunaga fa'atau ma mana'o e fa'asoa lenei poto masani.
I le amataga, na matou fausia se faiga i luga ole laiga mo le tagata faʻatau ma faʻapipiʻi i totonu o la tatou lava vaega Kubernetes. O lea la ua siitia atu le matou fofo maualuga i luga o le tulaga o le tagata faatau, lea ua matou setiina ai se faiga otometi atoatoa Faʻaauau Faʻaauau. Faʻafetai i lenei mea, matou faʻavaveina le taimi-i-maketi - le tuʻuina atu o suiga i le siosiomaga o oloa.
I totonu o lenei tusiga o le a tatou talanoa e uiga i laʻasaga uma o le Faʻaauau Faʻasalalauga (CD) faʻagasologa poʻo le tuʻuina atu o faʻafouga i luga o le tulaga o le tagata faʻatau:
- E faapefea ona amata lenei faiga?
- fa'atasi ma le faleoloa Git a le tagata fa'atau,
- faʻapotopotoga o tua ma pito i luma,
- fa'apipi'iina otometi i totonu o se si'osi'omaga su'ega,
- fa'apipi'i otometi i le Prod.
O le a matou faʻasoa faʻamatalaga faʻatulagaina i le ala.
1. Amata CD
Fa'aauau le Fa'atinoina e amata i le fa'atupuina o lo'o tuleia suiga i le lala fa'asa'oloto o le matou fale teu oloa Git.
O la matou talosaga e fa'aoga i luga o le microservice architecture ma o ona vaega uma o lo'o teuina i totonu o le fale e tasi. Faʻafetai i lenei mea, o microservices uma e aoina ma faʻapipiʻi, e tusa lava pe ua suia se tasi.
Na matou faʻatulagaina galuega e ala i le tasi fale teu oloa mo le tele o mafuaʻaga:
- Faigofie o le atinaʻe - o loʻo galue malosi le talosaga, o lea e mafai ai ona e galue ma tulafono uma i le taimi e tasi.
- O se paipa CI / CD e tasi e faʻamaonia ai o le talosaga o se faiga e tasi e pasia uma suʻega ma tuʻuina atu i le siosiomaga gaosiga a le tagata faʻatau.
- Matou te fa'ate'aina le fenumia'i i fa'aliliuga - matou te le tau teuina se fa'afanua o lomiga microservice ma fa'amatala lona fa'atulagaina mo microservice ta'itasi i tusitusiga Helm.
2. Fa'atasi ma le faleteuoloa Git o le fa'ailoga puna'oa a le tagata fa'atau
O suiga e faia e otometi lava ona faʻamaopoopoina ma le faleoloa Git a le tagata faʻatau. O iina o loʻo faʻapipiʻiina ai le faʻapotopotoga talosaga, lea e faʻalauiloa pe a uma ona faʻafouina le lala, ma faʻapipiʻiina i le faʻaauau. O faiga uma e lua e afua mai i lo latou siosiomaga mai se fale teu oloa Git.
E le mafai ona matou galulue sa'o ma le faleoloa a le tagata fa'atau ona matou te mana'omia a matou lava si'osi'omaga mo le atina'e ma su'ega. Matou te faʻaogaina le matou Git repository mo nei faʻamoemoega - o loʻo tuʻufaʻatasia ma latou Git repository. O le taimi lava e sui ai e le tagata faʻapipiʻi suiga i le lala talafeagai o la matou fale teu oloa, GitLab vave tuleia nei suiga i le tagata faʻatau.
A maeʻa lenei mea e tatau ona e faia le faʻapotopotoga. E aofia ai le tele o laʻasaga: backend ma frontend faʻapotopotoga, suʻega ma tuʻuina atu i le gaosiga.
3. Faʻapipiʻiina le pito i tua ma le pito i luma
Fausia le pito i tua ma le pito i luma o ni galuega tutusa e lua o loʻo faia i le GitLab Runner system. O lona fa'aputuga fa'apotopotoga muamua o lo'o i totonu o le faleteuoloa lava e tasi.
GitLab Runner e ave le code mai le fale teu oloa manaʻomia, faʻapipiʻi i le Java application build command ma auina atu i le Docker registry. O iinei matou te faʻapotopotoina ai le pito i tua ma le pito i luma, maua ata Docker, matou te tuʻuina i totonu o se fale teu oloa i le itu a le tagata faʻatau. E pulea ata Docker matou te faʻaaogaina
Matou te faʻamaopoopoina faʻasologa o a matou ata ma le faʻasalalauga faʻasalalau o le a faʻasalalau i Docker. Mo le fa'agaioiga lelei ua matou faia ni nai fetuunaiga:
1. O koneteina e le toe fausia i le va o le siosiomaga o suʻega ma le gaosiga o le siosiomaga. Na matou faia ni fa'ata'ita'iga ina ia mafai e le atigipusa e tasi ona galue ma fa'atulagaga uma, suiga o le si'osi'omaga ma auaunaga uma i totonu o le si'osi'omaga su'ega ma le gaosiga e aunoa ma le toe fauina.
2. Ina ia fa'afouina se talosaga e ala i le Helm, e tatau ona e fa'ama'oti lona fa'asologa. Matou te fausia le pito i tua, pito i luma ma faʻafouina le talosaga - o galuega eseese nei e tolu, o lea e taua ai le faʻaogaina o le faʻaoga tutusa i soʻo se mea. Mo lenei galuega, matou te faʻaogaina faʻamatalaga mai le talafaasolopito o Git, talu ai o la matou K8S faʻapipiʻi faʻapipiʻi ma faʻaoga o loʻo i totonu o le faleoloa Git tutusa.
Matou te maua le tusi talosaga mai i'uga o le fa'atonuga
git describe --tags --abbrev=7
.
4. Fa'apipi'i fa'apitoa o suiga uma i le siosiomaga o su'ega (UAT)
O le isi la'asaga i lenei fa'asologa o le fa'afou otometi le fa'aputu K8S. E tupu lenei mea pe a uma ona fausia le talosaga atoa ma faʻasalalau uma mea taua i le Docker Registry. A maeʻa lenei mea, e amata le faʻafouga o le siosiomaga o suʻega.
Ua amata ona fa'aoga le fa'afouga fa'aopoopo
Matou te tuʻuina atu le K8S faʻapipiʻi faʻapipiʻi faʻatasi ma le faʻapotopotoga. O le mea lea, o le isi laasaga o le faʻafouina lea: configMaps, faʻapipiʻi, tautua, mealilo ma soʻo se isi faʻasalalauga K8S ua matou suia.
Ona fa'atautaia lea e Helm se fa'afouga RollOut o le talosaga lava ia i totonu o le siosiomaga o su'ega. Aʻo leʻi tuʻuina atu le talosaga i le gaosiga. E faia lenei mea ina ia mafai e tagata faʻaoga ona faʻataʻitaʻiina ma le lima foliga pisinisi tatou te tuʻuina i totonu ole siosiomaga suʻega.
5. Fa'apipi'iina otometi o suiga uma ile Prod
Ina ia faʻapipiʻi se faʻafouga i le gaosiga o le siosiomaga, e tatau lava ona e kiliki le tasi ki i GitLab - ma o pusa e vave ona tuʻuina atu i le siosiomaga gaosiga.
O le talosaga lava e tasi e mafai ona galue i siosiomaga eseese-suʻega ma gaosiga-e aunoa ma le toe fausia. Matou te faʻaogaina mea tutusa e aunoa ma le suia o soʻo se mea i totonu o le talosaga, ma matou setiina faʻamau i fafo.
Fa'atatauga fetu'una'i o fa'atonuga o talosaga e fa'alagolago i le si'osi'omaga o le a fa'atino ai le talosaga. Ua matou siitia uma tulaga siosiomaga i fafo: o mea uma e faʻavasegaina e ala i le K8S faʻatulagaina ma faʻasologa o Helm. A faʻapipiʻi e Helm se faʻapotopotoga i le siosiomaga o suʻega, o faʻataʻitaʻiga faʻataʻitaʻiga e faʻaoga i ai, ma faʻaoga oloa i le gaosiga o le siosiomaga.
O le mea pito sili ona faigata o le faʻavasegaina uma o auaunaga faʻaaogaina ma fesuiaiga e faʻalagolago i le siosiomaga, ma faʻaliliu i latou i suiga o le siʻosiʻomaga ma faʻamatalaga-faʻatulagaina o faʻasologa o le siosiomaga mo Helm.
Fa'atonuga fa'aoga e fa'aoga ai suiga si'osi'omaga. O latou tau o loʻo tuʻuina i totonu o pusa e faʻaaoga ai le K8S configmap, lea e faʻataʻitaʻiina e faʻaaoga ai Go templates. Mo se faʻataʻitaʻiga, o le setiina o se siosiomaga fesuiaiga i le igoa ole igoa e mafai ona faia e pei o lenei:
APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}
.Values.global.env - o lenei fesuiaiga e teuina le igoa o le siosiomaga (prod, stage, UAT).
.Values.app.properties.app_external_domain - i lenei fesuiaiga matou te setiina le vaega manaʻomia i le faila .Values.yaml
Pe a fa'afouina se talosaga, e faia e Helm se faila configmap.yaml mai fa'ata'ita'iga ma fa'atumu le tau APP_EXTERNAL_DOMAIN i le tau mana'omia e fa'atatau i le si'osi'omaga e amata ai le fa'afouga o talosaga. O lenei fesuiaiga ua uma ona seti i totonu o le koneteina. E mafai ona maua mai le talosaga, o lea o le a iai i le siosiomaga faʻaoga taʻitasi se tau eseese mo lenei fesuiaiga.
Talu ai nei lava, na faʻaalia ai le lagolago a K8S i le Spring Cloud, e aofia ai le galue ma configMaps:
Aofaʻi
O lea la, Faʻaauau le Faʻatonuina o loʻo faʻatulagaina ma galue. O fa'afouga uma e tupu ile tasi ki. Tuuina atu o suiga i le siosiomaga oloa e otometi. Ma, o le mea taua, o faʻafouga e le taofia ai le faiga.
Fuafuaga i le lumana'i: otometi femalaga'iga fa'amaumauga
Na matou mafaufau e uiga i le faʻaleleia o faʻamaumauga ma le avanoa e toe faʻafoʻi ai nei suiga. A uma mea uma, e lua ituaiga eseese o le talosaga o loʻo taʻavale i le taimi e tasi: o le mea tuai o loʻo taʻavale, ma le mea fou o loʻo i luga. Ma o le a matou tapeina le mea tuai pe a matou mautinoa o loʻo galue le lomiga fou. E tatau ona fa'atagaina oe e le femalaga'iga o fa'amaumauga e te galue i fa'asologa e lua o le talosaga.
O le mea lea, e le mafai ona tatou suia le igoa koluma poʻo isi faʻamatalaga. Ae e mafai ona tatou fatuina se koluma fou, kopi faʻamaumauga mai le koluma tuai i totonu ma tusi faʻaoso, pe a faʻafouina faʻamaumauga, o le a kopiina ma faʻafouina i le isi koluma. Ma a maeʻa le faʻatulagaina manuia o le lomiga fou o le talosaga, pe a maeʻa le taimi o le faʻalauiloaina o le lagolago, o le a mafai ona matou tapeina le koluma tuai ma le faʻaoso lea ua le manaʻomia.
Afai o le lomiga fou o le talosaga e le lelei le galue, e mafai ona matou toe foʻi i tua i le lomiga muamua, e aofia ai le faʻamatalaga muamua o le database. I se faapuupuuga, o matou suiga o le a mafai ai ona e galue faʻatasi ma le tele o faʻasologa o le talosaga.
Matou te fuafua e fa'autometi le femalaga'iga fa'amaumauga e ala i le galuega K8S, fa'apipi'i i totonu o le fa'agasologa o le CD. Ma o le a matou faʻasoaina atu lenei mea i luga o Habré.
puna: www.habr.com