O la matou fa'atinoga o le Fa'aauauina Fa'aauau i luga o le fa'avae a le tagata fa'atau

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:

  1. E faapefea ona amata lenei faiga?
  2. fa'atasi ma le faleoloa Git a le tagata fa'atau,
  3. faʻapotopotoga o tua ma pito i luma,
  4. fa'apipi'iina otometi i totonu o se si'osi'omaga su'ega,
  5. fa'apipi'i otometi i le Prod.

O le a matou faʻasoa faʻamatalaga faʻatulagaina i le ala.

O la matou fa'atinoga o le Fa'aauauina Fa'aauau i luga o le fa'avae a le tagata fa'atau

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.

O la matou fa'atinoga o le Fa'aauauina Fa'aauau i luga o le fa'avae a 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.

Aʻoaʻoga mo le tusiaina o se tusitusiga YAML mo le fausiaina i GitLab.

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 Gradle plugin.

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 Fa'afouga foeuli. Afai, o le iʻuga, e leʻi alu se mea e tusa ai ma le fuafuaga, o le a otometi lava ma tutoʻatasi le Helm i tua o ana suiga uma. E le tau pulea lana galuega.

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: Spring Cloud Kubernetes. E ui o le poloketi o loʻo faʻaleleia ma suia faʻamalosi, e le mafai ona tatou faʻaaogaina i le gaosiga. Ae matou te mataʻituina lelei lona tulaga ma faʻaaogaina i faʻalapotopotoga DEV. O le taimi lava e faʻamautu ai, o le a tatou fesuiaʻi mai le faʻaaogaina o fesuiaiga o le siosiomaga i ai.

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.

O la matou fa'atinoga o le Fa'aauauina Fa'aauau i luga o le fa'avae a le tagata fa'atau

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

Faaopoopo i ai se faamatalaga