I le sefulu tausaga ua tuanaʻi, ua faʻateleina le alualu i luma i le atinaʻeina o mea faigaluega mo le faʻaauauina o le tuʻufaʻatasia (Continuous Integration, CI) ma le faʻaauauina o le faʻaogaina (Continuous Delivery, CD). O le atinaʻeina o tekonolosi mo le tuʻufaʻatasia o le atinaʻeina o polokalama ma le faʻaogaina (Development Operations, DevOps) ua taʻitaʻia ai le televave o le manaʻoga mo meafaigaluega CI / CD. O fofo o loʻo i ai nei o loʻo faʻaleleia i taimi uma, taumafai e faʻafetaui taimi, o latou lomiga fou ua faʻasaʻolotoina, i le lalolagi o polokalama faʻamautinoaga lelei (Quality Assurance, QA), o loʻo faʻaalia pea le tele o oloa fou. Faatasi ai ma se tamaoaiga tele o filifiliga, o le filifilia o le meafaigaluega saʻo e le o se galuega faigofie.
Faatasi ai ma meafaigaluega uma CI / CD o loʻo i ai nei, e lua galuega faatino e matua aoga lava le gauai atu i se tasi o loʻo sailia se mea mai lenei vaega. O loʻo matou talanoa e uiga ia Jenkins ma le GitLab CI / CD meafaigaluega, o se vaega o le GitLab platform. Jenkins e sili atu nai lo
Ave, mo se faʻataʻitaʻiga, faʻamatalaga mai le G2 platform, lea e faʻaputuina iloiloga o le tele o ituaiga o oloa ma faʻailoga e tuʻuina atu e tagata faʻaoga ia i latou. O le fua faatatau lea
Afai tatou te talanoa e uiga i le taʻutaʻua o Jenkins pe a faʻatusatusa i isi faʻavae tutusa, matou te maitauina o matou, i le lolomiina o se tusiga faʻatusatusa le Travis CI ma Jenkins platforms, faʻatulagaina se suʻesuʻega. 85 tagata fa'aoga na auai i ai. Sa talosagaina le au tali e filifili le meafaigaluega CI/CD e sili ona latou fiafia i ai. 79% na filifilia Jenkins, 5% na filifilia Travis CI, ma 16% na faʻaalia latou te fiafia i isi meafaigaluega.
I'uga palota
Faatasi ai ma isi meafaigaluega CI / CD, GitLab CI / CD sa masani ona taʻua.
Afai e te faʻamaoni e uiga i DevOps, ona e manaʻomia lea ona e filifilia ma le faʻaeteete meafaigaluega talafeagai, faʻatatau i mea patino o le poloketi, lana paketi, ma isi manaʻoga. Ina ia fesoasoani ia te oe e fai le filifiliga saʻo, o le a matou iloiloina Jenkins ma GitLab CI/CD. O lenei fa'amoemoe o le a fesoasoani ia te oe e fai le filifiliga sa'o.
Folasaga ia Jenkins
Ua faia e le au atinaʻe Jenkins se isi poloketi, Jenkins X, lea ua fuafuaina e galue i se siosiomaga Kubernetes. Jenkins X tu'ufa'atasia Helm, Jenkins CI/CD Server, Kubernetes, ma isi mea faigaluega e fau ai paipa CI/CD e mulimulita'i faiga sili a DevOps. Mo se faʻataʻitaʻiga, GitOps faʻaaogaina iinei.
E mafai e se tasi ona faʻaopoopo i le faleteuoloa o le lelei o Jenkins le mea moni o ana tusitusiga e matua lelei le faʻatulagaina, malamalama, ma faigofie ona faitau. Ua fatuina e le au Jenkins e uiga i 1000 plugins e faʻatatau i le faʻatulagaina o fegalegaleaiga a Jenkins ma le tele o ituaiga tekinolosi. E mafai e tusitusiga ona faʻaogaina faiga faʻamaonia, lea, mo se faʻataʻitaʻiga, e mafai ai ona e faʻafesoʻotaʻi i faiga tapuni eseese.
I le taimi o le faʻagaioiina o le paipa Jenkins, e mafai ona e matauina le mea e tupu i laasaga taʻitasi, pe o nisi vaega o galuega ua maeʻa manuia pe leai. E mafai ona e matamata i nei mea uma, peitaʻi, e aunoa ma le faʻaogaina o se faʻataʻitaʻiga faʻataʻitaʻi, ae faʻaaoga le gafatia o le laina.
Vaega o Jenkins
Faatasi ai ma foliga taʻutaʻua o Jenkins o le faigofie o le faʻatulagaina, o le maualuga o le masini o gaioiga eseese, ma faʻamaumauga sili ona lelei. Afai tatou te talanoa e uiga i le foia o galuega a DevOps, o le mea lea ua manatu Jenkins o se meafaigaluega sili ona faatuatuaina, e faʻaaoga ai, o se tulafono, e leai se uiga e mataʻituina lelei le faagasologa atoa o galuega faatino. E le o le tulaga lea i isi meafaigaluega CI/CD. Sei o tatou talanoa e uiga i nisi o vaega sili ona taua o Jenkins.
▍1. E leai se totogi, puna tatala, lagolago tele-platform
Jenkins e mafai ona tamoe i luga o macOS, Windows ma Linux platforms. E mafai foi ona galue i totonu o se Docker siosiomaga, lea e mafai ai ona e faʻatulagaina toniga ma le faʻatinoina vave o galuega faʻapitoa. O lenei meafaigaluega e mafai foi ona tamomoe o se servlet i Java-mafai koneteina e pei o Apache Tomcat ma GlassFish. Fa'atulagaina o Jenkins fa'apitoa
▍2. Atina'e le fa'apipi'i fa'anatura fa'anatura
O le Jenkins plugin ecosystem e foliga mai e sili atu le matua nai lo le plugin ecosystem o isi meafaigaluega CI/CD. O loʻo i ai nei le silia ma le 1500 plugins mo Jenkins. O nei plugins e faʻamoemoe e foia le tele o galuega, faatasi ai ma la latou fesoasoani e mafai ai ona e faʻaogaina le tele o galuega faatino. O le tamaoaiga o plugins saoloto e filifili mai ai o lona uiga afai o loʻo e faʻaaogaina Jenkins, e te le tau faʻatauina ni faʻapipiʻi taugata totogi. E iai se avanoa
▍3. Faʻapipiʻi faigofie ma faʻatulagaina
Jenkins e faigofie lava ona faʻapipiʻi ma faʻapipiʻi. I le taimi lava e tasi, o le faagasologa o le faʻafouina o le faiga e faigofie tele. O iinei, toe, e taua le taʻua o le tulaga lelei o le pepa, talu ai e mafai ona e mauaina tali i fesili eseese e fesoʻotaʻi ma le faʻapipiʻiina ma le faʻatulagaina o Jenkins.
▍4. nuu faauo
E pei ona uma ona taʻua, o Jenkins o se poloketi tatala, o lona faʻalapotopotoga e aofia ai le tele o plugini. O se fa'alapotopotoga tele o tagata fa'aoga ma atina'e ua atina'e i Jenkins e fesoasoani i le atina'eina o le poloketi. O le afio'aga o se tasi lea o mea e una'ia ai le atina'e o Jenkins.
▍5. Avanoa ole REST API
Aʻo e galue faʻatasi ma Jenkins, e mafai ona e faʻaogaina le REST API, lea e faʻalauteleina ai le gafatia o le faiga. API mo avanoa mamao i le faiga o loʻo tuʻuina atu i ni faʻaaliga se tolu: XML, JSON ma le lagolago a JSONP, Python.
▍6. Lagolago mo le fa'atinoina tutusa o galuega
E lagolagoina e Jenkins le tutusa o galuega a DevOps. E mafai ona faigofie ona tuʻufaʻatasia ma meafaigaluega talafeagai ma maua faʻamatalaga e uiga i taunuʻuga o galuega. E mafai ona fa'avavevave le su'ega fa'ailoga e ala i le fa'atulagaina o se fau tutusa o le poloketi e fa'aaoga ai masini fa'apitoa eseese.
▍7. Lagolago mo galuega i siosiomaga tufatufaina
Jenkins fa'atagaina oe e fa'atulaga fa'asoa fa'asoa e fa'aaoga ai le tele o komepiuta. O lenei vaega e faʻaaogaina i galuega tetele ma faʻaaogaina se fuafuaga o galuega, e tusa ai ma le tasi le matai Jenkins server ma le tele o masini pologa. E mafai foi ona faʻaogaina masini pologa i tulaga e manaʻomia ai le faʻatulagaina o suʻega o se poloketi i siosiomaga eseese. O nei foliga e tu'u ese ai Jenkins mai isi galuega fa'apena.
Folasaga ile GitLab
GitLab CI / CD na faʻasaʻoloto muamua e avea o se poloketi tutoʻatasi, ae i le 2015 na tuʻufaʻatasia lenei seti o meafaigaluega i le GitLab 8.0. E mafai e se tasi GitLab CI/CD server ona lagolago i luga ole 25000 tagata fa'aoga. Faʻavae i luga o ia 'auʻaunaga, e mafai ona e fatuina faiga e sili ona avanoa.
GitLab CI / CD ma le galuega autu GitLab o loʻo tusia i Ruby ma Go. Ua tatalaina i latou i lalo o le laisene MIT. GitLab CI / CD, faʻaopoopo i foliga masani o meafaigaluega CI / CD, e lagolagoina foʻi faʻaopoopoga faʻapitoa e fesoʻotaʻi, mo se faʻataʻitaʻiga, i le faʻatulagaina o galuega.
O le tuʻufaʻatasia o GitLab CI/CD i totonu o se poloketi e matua faigofie lava. Pe a faʻaaogaina GitLab CI / CD, o le faʻagasologa o le faʻasologa o tulafono e vaevaeina i laʻasaga, o ia mea taʻitasi e mafai ona aofia ai le tele o galuega e faia i se faʻatonuga. E mafai ona fa'atulaga lelei galuega.
E mafai ona fa'atutusa galuega. A maeʻa ona faʻatulagaina le faʻasologa o laasaga ma galuega, ua sauni le paipa CI / CD e alu. E mafai ona e mataʻituina lona alualu i luma e ala i le mataʻituina o le tulaga o galuega. O se taunuuga, o le faʻaaogaina o le GitLab CI / CD e faigofie tele, atonu e sili atu le faigofie nai lo isi mea faigaluega tutusa.
Vaega o GitLab CI/CD ma GitLab
GitLab CI / CD o se tasi o mea sili ona lauiloa DevOps. O le poloketi e iloga i tusitusiga maualuga, o ona foliga e faigofie ma faigofie ona faʻaoga. Afai e te leʻi masani i le GitLab CI / CD, o le lisi o loʻo i lalo o foliga o lenei meafaigaluega o le a tuʻuina atu ia te oe se manatu lautele o mea e te faʻamoemoeina mai ai. E tatau ona maitauina o le tele o nei foliga e fesoʻotaʻi ma le GitLab platform lava ia, lea e tuʻufaʻatasia ai GitLab CI / CD.
▍1. Ta'uta'ua
GitLab CI/CD ose meafaigaluega fou ua maua fa'aoga lautele. GitLab CI/CD ua faasolosolo malie ona avea ma meafaigaluega CI/CD e sili ona ta'uta'ua e fa'aaogaina mo su'ega otometi ma le fa'aogaina o polokalame. E faigofie ona seti. O se mea faigaluega a le CI/CD e leai se totogi e fausia i totonu o le GitLab platform.
▍2. Lagolago mo GitLab Pages ma Jekyll
O le Jekyll o se fa'atūlaga fa'aola e mafai ona fa'aoga i totonu ole GitLab Pages system e fatu ai nofoaga e fa'atatau ile GitLab repositories. O lo'o fa'aogaina e le faiga mea fa'ameamea ma fa'atupuina se 'upega tafa'ilagi e fa'atatau i ai. E mafai ona e pulea foliga vaaia ma foliga o ia nofoaga e ala i le teuteuina o le faila _config.yml
, fa'aaogaina e Jekyll.
▍3. Gafatia fuafuaina o poloketi
Faʻafetai i le mafai ona fuafua laʻasaga o poloketi, o le faʻaogaina o faʻafitauli faʻafitauli ma a latou vaega faʻateleina. O lenei mea e mafai ai e oe ona pulea le faʻatulagaina o galuega i galuega faatino, fuafua lo latou faʻatinoga i se aso patino.
▍4. Otometi le fuaina o tagata tamo'e CI
Faʻafetai i le faʻaogaina otometi o tagata tamoʻe e nafa ma le faʻatinoina o galuega faʻapitoa, e mafai ona e faʻasaoina tele i luga o le tau o le mautotogi o mea faigaluega. E taua tele lenei mea, aemaise lava pe a oʻo mai i siosiomaga e faʻataʻitaʻi tutusa ai poloketi. E le gata i lea, e taua tele mo galuega tetele e aofia ai le tele o fale teu oloa.
▍5. Meafaigaluega su'esu'e lomiga
GitLab's mamana mata'ituina fa'afitauli e mafai ona ta'ita'ia ai le tele o fa'apogai puna'oa e fa'aoga ai le tulaga. GitLab CI/CD fa'atagaina su'ega tutusa o lala fa'ailoga eseese. O fa'ai'uga o su'ega e su'esu'eina lelei i le fa'aogaina o le faiga. E tu'u ese ai GitLab CI/CD mai Jenkins.
▍6. Faatapula'a le avanoa i fale teu oloa
E lagolagoina e le GitLab platform le faʻatapulaʻaina o avanoa i fale teu oloa. Mo se faʻataʻitaʻiga, oi latou e galulue faʻatasi i se poloketi i totonu o se fale teu oloa e mafai ona tuʻuina atu faʻatagaga talafeagai ma a latou matafaioi. E moni lava lenei mea mo galuega faʻapisinisi.
▍7. Lagolago malosi a nuu
O se fa'alapotopotoga malosi ua atina'e i GitLab, lea e saofagā i le atina'eina o lenei fa'avae ma ana meafaigaluega, aemaise lava, GitLab CI / CD. O le tuʻufaʻatasia loloto o le GitLab CI/CD ma le GitLab, faatasi ai ma isi mea, e faigofie ai ona maua tali i fesili e tulaʻi mai pe a galulue ma GitLab CI/CD.
▍8. Lagolago mo faiga fa'atonuga eseese
GitLab CI/CD o se faiga e mafai ona galue ma sili atu nai lo na o le code faʻapipiʻi i GitLab repositories. Mo se faʻataʻitaʻiga, o le code e mafai ona teuina i totonu o le GitHub repository, ma le CI / CD pipeline e mafai ona faʻatulagaina i luga o le faʻavae o GitLab faʻaaoga GitLab CI / CD.
Fa'atusatusaga o Jenkins ma GitLab CI/CD
Jenkins ma GitLab CI / CD o ni meafaigaluega lelei tele, o ia mea uma e mafai ona faʻaogaina lelei le paipa CI / CD. Ae afai e te faʻatusatusa i latou, e foliga mai, e ui lava e tutusa i latou i le tele o auala, e ese mai le tasi i le isi i nisi o auala.
Uiga
Jenkins
GitLab CI/CD
Punavai tatala po'o puna tapuni
puna tatala
puna tatala
faatulagaga
Manaomia.
E le manaʻomia ona o se mea faʻapipiʻiina lea o le GitLab platform.
Tulaga Tulaga
Lagolago fa'apipi'i.
Tu'ufa'atasiga loloto i faiga fa'atonuga.
lagolago
Ua toesea.
Avanoa.
Faʻapipiʻiina ma faʻatulagaina
E le tupu ni faigata
E le tupu ni faigata
Fa'atonuina e le tagata lava ia o le faiga
E na'o le pau lea o le auala e fa'aoga ai le faiga.
Lagolagoina.
Fausia CI/CD Pipelines
Lagolagoina, fa'aaoga Jenkins Pipeline.
Lagolagoina.
Mata'ituina le faatinoga o le talosaga
Ua toesea.
Avanoa.
Ecosystem
E silia ma le 1000 plugins.
O loʻo atiaʻe le faiga ile GitLab.
API
Lagolagoina se faiga API maualuga.
Tuuina atu se API mo le faʻapipiʻiina loloto i galuega.
lagolago JavaScript
Avanoa.
Avanoa.
Faʻatasi ma isi meafaigaluega
Faʻatasi ma isi meafaigaluega ma faʻavae e lagolagoina (Slack, GitHub).
Tele meafaigaluega mo le tuʻufaʻatasia ma faiga faʻapitoa, aemaise lava - ma GitHub ma Kubernetes.
Pulea lelei code
Lagolago - faʻaaogaina le SonarQube plugin ma isi plugins.
Lagolagoina.
Eseesega i le va o Jenkins ma GitLab CI/CD
I le faʻamatalaina ma faʻatusatusa Jenkins ma GitLab CI / CD, seʻi o tatou taulaʻi i le eseesega i le va o nei meafaigaluega DevOps. O le iloaina o nei eseesega o le a fesoasoani e te malamalama ai ia i latou e sili atu i se tasi o nei meafaigaluega nai lo le isi.
- GitLab CI/CD e mafai ona pulea atoatoa faleoloa Git. O loʻo matou talanoa e uiga i le puleaina o lala fale teu oloa ma isi vaega. Ae o Jenkins, e ui lava e mafai ona galue i fale teu oloa, e le tuʻuina atu le tulaga tutusa o le puleaina ia i latou e pei o GitLab CI / CD.
- O Jenkins ose galuega fa'alauiloa e leai se totogi. O le tagata na te filifilia e fa'apipi'iina lava e ia. Ma GitLab CI / CD o loʻo aofia i totonu o le GitLab platform, o se tali faʻaoga lea.
- E lagolagoina e GitLab CI/CD meafaigaluega fa'apitoa mo le puleaina o galuega e galue i le tulaga o galuega. O lenei itu o Jenkins e tau le atinaʻeina.
Jenkins ma GitLab CI/CD: malosi ma vaivaiga
O lea ua iai sou manatu e uiga ia Jenkins ma GitLab CI/CD. Ia, ina ia e faamasani atili i nei meafaigaluega, seʻi o tatou tilotilo i o latou malosi ma vaivaiga. Matou te manatu ua uma ona e filifili po o fea meafaigaluega e te manaʻomia. E faʻamoemoe, o lenei vaega o le a faʻatagaina oe e suʻe oe lava.
▍ Malosi o Jenkins
- Se numera tele o plugini.
- Pulea atoatoa ile fa'apipi'iina o meafaigaluega.
- Fa'aliga faigofie o tagata tamo'e.
- Fa'apena faigofie node.
- Faigofie le fa'aogaina o le code.
- Lelei tele faiga fa'atonu.
- Fetuuna'i ma fegalegaleai.
- Lagolago mo gagana eseese polokalame.
- O le faiga e malamalama i luga o se tulaga faʻaogaina.
▍ Vaivaiga o Jenkins
- E mafai ona faigata ona fa'aoga plugini.
- A faʻaaogaina Jenkins i galuega laiti, o le taimi e manaʻomia e faʻapipiʻi ai oe lava ia e mafai ona matua le talafeagai.
- Leai o fa'amatalaga au'ili'ili lautele i filifili CI/CD.
▍ Malosiaga o GitLab CI/CD
- Lelei faʻatasi ma Docker.
- Fa'atauva'a faigofie o tagata tamo'e.
- Fa'atino tutusa o galuega o se vaega o la'asaga o le paipa CI/CD.
- Fa'aaogā le fa'ata'ita'iga o le kalafi fa'atonu acyclic pe a fa'atulaga so'otaga o galuega.
- Tulaga maualuga o scalability ona o le avanoa o le faatinoga tutusa o tagata tamo'e.
- Faigofie o le fa'aopoopoina o galuega.
- Fa'afaigofie ona fo'ia fete'ena'iga.
- Faiga fa'alagolago.
▍ Vaivai ole GitLab CI/CD
- Mo galuega ta'itasi, e mana'omia ona e fa'amatala ma fa'apipi'i / la'u mai mea fa'apitoa.
- E le mafai ona e su'eina iuga o le tu'ufa'atasia o lala a'o le'i tu'ufa'atasia moni.
- Pe a faʻamatalaina laʻasaga o le CI / CD pipeline, e leʻi mafai ona tuʻufaʻatasia vaega taʻitasi i totonu.
O taunuʻuga
O Jenkins ma GitLab CI/CD e iai malosiaga ma vaivaiga. O le tali i le fesili pe o le a le mea e filifili e faʻalagolago i manaʻoga ma uiga o se galuega faʻapitoa. O meafaigaluega taʻitasi a le CI / CD o loʻo toe iloiloina i aso nei o loʻo i ai ni vaega patino, e ui lava o nei meafaigaluega na faia e foia ai le faafitauli lava e tasi. I le taimi lava e tasi, Jenkins o se meafaigaluega tutoʻatasi, ma GitLab CI / CD o se vaega o se faʻavae ua fuafuaina mo le galulue faʻatasi i luga o le code.
Pe a filifilia se faiga CI / CD, faʻaopopo atu i ona gafatia, e taua le amanaʻia o tau e mafai ona fesoʻotaʻi ma ia, ma pe o le a tonu le inisinia DevOps o loʻo lagolagoina le poloketi e masani ona galulue ai.
O a meafaigaluega CI/CD e te fa'aogaina?
puna: www.habr.com