Battle of Jenkins sy GitLab CI/CD

Tao anatin'ny folo taona lasa, dia nisy fandrosoana lehibe natao tamin'ny fampivoarana ny fampiraisana mitohy (CI) sy ny fitaovana fandefasana mitohy (CD). Ny fampivoarana ny teknolojia amin'ny fampidirana ny fampandrosoana sy ny fampandehanana rindrambaiko (Development Operations, DevOps) dia nitarika fitomboan'ny fangatahana fitaovana CI/CD. Ny vahaolana efa misy dia hatsaraina hatrany, miezaka manaraka ny fotoana, mivoaka ny dikan-teny vaovao, ary vokatra vaovao maro no mipoitra tsy tapaka eo amin'ny tontolon'ny fiantohana ny kalitaon'ny rindrambaiko (QA). Miaraka amin'ny safidy maro toy izany, ny fisafidianana ny fitaovana mety dia tsy asa mora.

Battle of Jenkins sy GitLab CI/CD

Amin'ireo fitaovana CI/CD rehetra misy, dia misy tetikasa roa izay tena mendrika hojerena ho an'ireo izay mitady zavatra amin'ity sehatra ity. Miresaka momba an'i Jenkins sy ny fitaovana GitLab CI/CD izahay, izay ao anatin'ny sehatra GitLab. Jenkins dia manana mihoatra ny 16000 kintana ao amin'ny GitHub. Ny tahiry GitLab ao amin'ny gitlab.com dia nahazo tombony kely kokoa 2000 kintana Raha ampitahaina ny lazan'ny repository, dia hita fa nahazo kintana avo 8 heny noho ny sehatra misy ny GitLab CI/CD i Jenkins. Saingy rehefa misafidy fitaovana CI/CD dia tsy izany no hany famantarana tokony hojerena. Betsaka ny hafa, izay manazava ny antony mahatonga an'i Jenkins sy GitLab CI/CD mifanakaiky amin'ny fampitahana maro.

Raiso, ohatra, ny angona avy amin'ny sehatra G2, izay manangona hevitra momba ny vokatra isan-karazany sy ny naoty omen'ny mpampiasa azy ireo. Ity ny salan'isa antonony Jenkins, azo avy amin'ny hevitra 288, dia kintana 4,3. NY GitLab Misy hevitra 270 eto, ary kintana 4,4 ny salan'isa ho an'ity fitaovana ity. Tsy ho diso isika raha milaza fa mifaninana amin'ny teny mitovy i Jenkins sy GitLab CI/CD. Mahaliana ny manamarika fa ny tetikasa Jenkins dia niseho tamin'ny 2011 ary nanomboka teo dia fitaovana ankafizin'ny mpanandrana. Saingy tamin'izany fotoana izany, ny tetikasa GitLab CI/CD, natomboka tamin'ny 2014, dia naka ny toerany, avo dia avo, noho ny fahaiza-manao avo lenta natolotr'ity sehatra ity.

Raha miresaka momba ny lazan'i Jenkins isika raha ampitahaina amin'ny sehatra hafa mitovy amin'izany, dia manamarika fa taorian'ny famoahana lahatsoratra mampitaha ny sehatra Travis CI sy Jenkins dia nikarakara fanadihadiana izahay. Mpampiasa 85 no nandray anjara tamin'izany. Nasaina nifidy ny fitaovana CI/CD izay tiany indrindra ireo namaly. 79% nisafidy an'i Jenkins, 5% nisafidy Travis CI, ary 16% no nilaza fa aleony fitaovana hafa.

Battle of Jenkins sy GitLab CI/CD
Valin'ny fitsapan-kevitra

Anisan'ireo fitaovana CI/CD hafa, GitLab CI/CD no voatonona matetika.

Raha matotra amin'ny DevOps ianao, dia mila mifidy tsara ireo fitaovana mety ianao, amin'ny fiheverana ny endrik'ilay tetikasa, ny teti-bolany ary ny fepetra hafa. Mba hanampiana anao hanao safidy tsara dia hamakafaka an'i Jenkins sy GitLab CI/CD izahay. Manantena aho fa hanampy anao hanao safidy tsara izany.

Introducing Jenkins

Battle of Jenkins sy GitLab CI/CD
Jenkins dia fitaovana CI/CD fanta-daza sy mora mora natao handrindrana asa maro mifandraika amin'ny tetikasa rindrambaiko. Jenkins dia nosoratana manontolo tamin'ny Java ary navoaka teo ambanin'ny fahazoan-dΓ lana MIT. Izy io dia manana fahaiza-manao mahery vaika mikendry ny fanaovana automatique ny asa mifandraika amin'ny fananganana, fitsapana, fametrahana, fampidirana ary famoahana rindrambaiko. Ity fitaovana ity dia azo ampiasaina amin'ny rafitra fiasa isan-karazany. Anisan'izany ny macOS, Windows ary fizarana Linux maro, ohatra OpenSUSE, Ubuntu ary Red Hat. Misy fonosana fametrahana Jenkins natao ho an'ny OS isan-karazany, ity fitaovana ity dia azo apetraka amin'ny Docker sy amin'ny rafitra rehetra manana JRE (Java Runtime Environment).

Ny mpamorona Jenkins dia namorona tetikasa hafa, Jenkins X, izay natao hiasa ao amin'ny tontolo Kubernetes. Jenkins X dia mampiditra Helm, Jenkins CI/CD Server, Kubernetes, ary fitaovana hafa natao hananganana fantsona CI/CD izay manaraka ny fanao tsara indrindra DevOps. Ohatra, GitOps no ampiasaina eto.

Ny iray amin'ireo tombony azon'i Jenkins dia azo ampiana amin'ny hoe ny soratra ao aminy dia tena voarafitra tsara, azo takarina ary mora vakina. Ny ekipa Jenkins dia namorona plugins manodidina ny 1000 izay mikendry ny handamina ny fifandraisan'i Jenkins amin'ny teknolojia isan-karazany. Ao amin'ny script dia azonao atao ny mampiasa rafitra fanamarinana, izay, ohatra, dia ahafahanao mifandray amin'ny rafitra mihidy isan-karazany.

Mandritra ny fampandehanana ny fantsona Jenkins dia azonao jerena ny zava-mitranga isaky ny dingana, na vita soa aman-tsara ny dingana sasany na tsia. Azonao atao ny mijery izany rehetra izany, na izany aza, tsy mampiasa karazana interface tsara, fa mampiasa ny fahaizan'ny terminal.

Toetran'i Jenkins

Anisan'ireo endri-javatra fanta-daza an'i Jenkins ny fanamorana ny fanamafisana, ny automatique avo lenta amin'ny asa isan-karazany ary ny antontan-taratasy tena tsara. Raha miresaka momba ny famahana ny olan'ny DevOps isika, dia heverina ho fitaovana tena azo itokisana i Jenkins, izay, amin'ny ankapobeny, dia tsy misy dikany ny fanaraha-maso akaiky ny fizotran'ny tetikasa manontolo. Tsy toy izany ny fitaovana CI/CD hafa. Andeha isika hiresaka momba ny sasany amin'ireo singa manan-danja indrindra amin'ny Jenkins.

▍1. Maimaim-poana, loharano misokatra, tohana sehatra maro

Jenkins dia afaka mandeha amin'ny sehatra macOS, Windows ary Linux. Afaka mihazakazaka ao amin'ny tontolo Docker ihany koa izy io, izay ahafahanao mandamina asa mandeha ho azy amin'ny fomba fanamiana sy haingana. Ny fitaovana dia afaka mandeha toy ny servlet amin'ny kaontenera misy Java toy ny Apache Tomcat sy GlassFish. Mametraka Jenkins amin'ny fomba mahomby voarakitra.

▍2. Ecosystem plugin novolavolaina

Ny ecosystem plugin Jenkins dia toa matotra kokoa raha oharina amin'ny ecosystems plugin an'ny fitaovana CI/CD hafa. Misy plugins 1500 mahery amin'izao fotoana izao ho an'i Jenkins. Ireo plugins ireo dia mikendry ny famahana olana isan-karazany; miaraka amin'ny fanampiany dia azonao atao ny manamboatra tetikasa isan-karazany. Ny harenan'ny plugins maimaim-poana azo isafidianana dia midika fa izay rehetra mampiasa Jenkins dia tsy mila mividy plugins lafo vidy. Misy ny mety fampidirana Jenkins miaraka amin'ny fitaovana DevOps maro.

▍3. Fametrahana sy fametrahana mora

Jenkins dia mora ny mametraka sy manitsy. Mandritra izany fotoana izany, ny fizotry ny fanavaozana ny rafitra dia tena mety ihany koa. Eto indray dia ilaina ny manonona ny kalitaon'ny antontan-taratasy, satria afaka mamaly fanontaniana isan-karazany mifandraika amin'ny fametrahana sy ny fanamboarana an'i Jenkins.

▍4. Fiaraha-monina sariaka

Araka ny efa voalaza, Jenkins dia tetik'asa loharano misokatra izay ahitana plugins marobe ny tontolo iainana. Misy vondrom-piarahamonina lehibe mpampiasa sy mpamorona manodidina an'i Jenkins izay manampy amin'ny fampandrosoana ny tetikasa. Ny fiaraha-monina dia iray amin'ireo antony manosika ny fampandrosoana an'i Jenkins.

▍5. Ny fisian'ny REST API

Rehefa miara-miasa amin'i Jenkins ianao dia afaka mampiasa ny REST API, izay manitatra ny fahaizan'ny rafitra. Ny API ho an'ny fidirana lavitra amin'ny rafitra dia aseho amin'ny dikan-teny telo: XML, JSON miaraka amin'ny fanohanana JSONP, Python. eto pejin'ny antontan-taratasy mirakitra ny antsipiriany momba ny fiaraha-miasa amin'ny Jenkins REST API.

▍6. Fanohanana asa parallΓ¨le

Jenkins dia manohana ny fampitoviana ny asa DevOps. Azo ampifandraisina mora amin'ny fitaovana mifandraika izy io ary mahazo fampahafantarana momba ny valin'ny asa. Ny fitsapana kaody dia azo ahafaingana amin'ny alΓ lan'ny fandaminana ny fananganana tetikasa mifanitsy amin'ny fampiasana milina virtoaly samihafa.

▍7. Fanohanana hiasa amin'ny tontolo zaraina

Jenkins dia mamela anao handamina fananganana zaraina amin'ny fampiasana solosaina marobe. Ity endri-javatra ity dia azo ampiharina amin'ny tetikasa lehibe ary mampiasa tetik'asa izay misy mpizara Jenkins iray lehibe sy milina andevo maromaro. Ny milina andevo dia azo ampiasaina amin'ny toe-javatra izay ilaina ny mandamina ny fitsapana ny tetikasa amin'ny tontolo samihafa. Ireo endri-javatra ireo dia mampiavaka an'i Jenkins amin'ny tetikasa hafa mitovy.

Fampidirana ny GitLab

Battle of Jenkins sy GitLab CI/CD
GitLab CI/CD dia azo antsoina hoe iray amin'ireo fitaovana vaovao sy tian'ny injeniera DevOps. Ity fitaovana loharano misokatra malalaka ity dia natsangana ao amin'ny rafitra fanaraha-maso ny dikan-teny GitLab. Ny sehatra GitLab dia manana dikan-teny ho an'ny vondrom-piarahamonina, manohana ny fitantanana fitahirizana, fitaovana amin'ny fanaraha-maso ny olana, fandaminana famerenana ny kaody, ary mekanika mifantoka amin'ny famoronana antontan-taratasy. Afaka mametraka GitLab eo an-toerana ny orinasa, mampifandray izany amin'ny mpizara Active Directory sy LDAP ho an'ny fahazoan-dΓ lana azo antoka sy fanamarinana ny mpampiasa.

eto Lahatsary fampianarana hanampy anao hianatra ny fomba fananganana fantsona CI/CD amin'ny fampiasana ny fahaiza-manao GitLab CI/CD.

GitLab CI/CD dia navoaka ho tetikasa tokana, saingy tamin'ny taona 2015 dia nampidirina tao amin'ny GitLab 8.0 ny fitaovana. Ny mpizara GitLab CI/CD tokana dia afaka manohana mpampiasa mihoatra ny 25000. Miorina amin'ny serivisy toy izany, afaka mamorona rafitra azo alaina be ianao.

GitLab CI/CD sy ny tetikasa GitLab lehibe dia voasoratra ao amin'ny Ruby sy Go. Navoaka teo ambanin'ny lisansa MIT izy ireo. GitLab CI/CD, ankoatry ny fahaiza-manao mahazatra amin'ny fitaovana CI/CD, dia manohana ihany koa ireo fahaiza-manao fanampiny mifandraika, ohatra, amin'ny fandrindrana ny asa.

Ny fampidirana GitLab CI/CD amin'ny tetikasanao dia tena mora. Rehefa mampiasa GitLab CI/CD, dia mizara ho dingana ny fizotran'ny fanodinana ny kaody tetikasa, izay mety ahitana asa maromaro atao amin'ny filaharana iray. Azo atao tsara ny asa.

Ny asa dia azo tanterahina miaraka. Aorian'ny fametrahana ny filaharan'ny dingana sy ny asa dia vonona ny handeha ny fantsona CI/CD. Azonao atao ny manara-maso ny fivoarany amin'ny alΓ lan'ny fanaraha-maso ny satan'ny asa. Vokatr'izany, ny fampiasana GitLab CI/CD dia tena mety, angamba mety kokoa noho ny fitaovana hafa mitovy aminy.

Toetran'ny GitLab CI/CD sy GitLab

GitLab CI/CD dia iray amin'ireo fitaovana DevOps malaza indrindra. Ny tetikasa dia miavaka amin'ny antontan-taratasy avo lenta, ny fahaizany dia mora sy mora ampiasaina. Raha vaovao amin'ny GitLab CI/CD ianao, ity lisitr'ireo endri-javatra ity dia hanome anao hevitra ankapobeny momba izay azonao antenaina amin'izany. Marihina fa maro amin'ireo endri-javatra ireo no mifandray amin'ny sehatra GitLab mihitsy, izay ampidirana ny GitLab CI/CD.

▍1. laza

GitLab CI/CD dia fitaovana vaovao izay nahitana fampiasa betsaka. GitLab CI/CD dia lasa fitaovana CI/CD tena malaza ampiasaina amin'ny fitiliana sy fametrahana rindrambaiko mandeha ho azy. Mora ny mametraka. Izy io koa dia fitaovana CI/CD maimaim-poana natsangana ao amin'ny sehatra GitLab.

▍2. Fanohanana ny GitLab Pages sy Jekyll

Jekyll dia mpamorona tranokala static izay azo ampiasaina ao anatin'ny rafitra GitLab Pages mba hamoronana tranokala mifototra amin'ny tahiry GitLab. Ny rafitra dia maka ny loharanon-karena ary mamorona tranokala static efa vita mifototra amin'izy ireo. Azonao atao ny mifehy ny fisehoana sy ny fahafahan'ny tranokala toy izany amin'ny alΓ lan'ny fanitsiana ny rakitra _config.yml, ampiasain'i Jekyll.

▍3. Ny fahaiza-manao drafitra

Noho ny fahaiza-manomana ny dingan'ny tetikasa dia mitombo ny fahafaha-manara-maso ny olana sy ny vondrona misy azy ireo. Izany dia ahafahanao mitantana ny fandaminana ny asa amin'ny tetikasa ary manomana ny fampiharana azy ireo amin'ny daty voafaritra.

▍4. Fanamafisana mandeha ho azy ny mpihazakazaka CI

Noho ny fanamafisam-peo mandeha ho azy ireo mpihazakazaka tompon'andraikitra amin'ny fanatanterahana asa manokana, azonao atao ny mitsitsy mafy ny vidin'ny fanofana ny fahafahan'ny mpizara. Tena zava-dehibe izany, indrindra raha ny momba ny tontolo iainan'ny tetikasa mifanandrify. Fanampin'izany, zava-dehibe izany ho an'ny tetikasa lehibe ahitana tahiry maromaro.

▍5. Fitaovana fanaraha-maso ny olana

Ny fahaiza-manara-maso olana matanjaka an'ny GitLab dia nitarika tetikasa loharano misokatra maro mampiasa ny sehatra. GitLab CI/CD dia ahafahanao mitsapa sampana kaody samihafa mifanitsy. Ny valim-panadinana dia azo dinihina amin'ny fomba mety ao amin'ny interface interface. Izany dia mametraka ny GitLab CI/CD ankoatra an'i Jenkins.

▍6. Famerana ny fidirana amin'ny tahiry

Ny sehatra GitLab dia manohana ny famerana ny fidirana amin'ny tahiry. Ohatra, ireo izay miara-miasa amin'ny tetikasa iray ao anaty tahiry dia azo omena zo mifanaraka amin'ny andraikiny. Marina indrindra izany ho an'ny tetikasa orinasa.

▍7. Fanohanana fiaraha-monina mavitrika

Nisy vondrom-piarahamonina mavitrika nivoatra manodidina ny GitLab, izay mandray anjara amin'ny fampandrosoana ity sehatra ity sy ny fitaovany, indrindra ny GitLab CI/CD. Ny fampidirana lalina eo amin'ny GitLab CI/CD sy ny GitLab, ankoatry ny zavatra hafa, dia manamora ny fitadiavana valiny amin'ireo fanontaniana mipoitra rehefa miara-miasa amin'ny GitLab CI/CD.

▍8. Fanohanana hiasa amin'ny rafitra fanaraha-maso dikan-teny isan-karazany

GitLab CI/CD dia rafitra afaka miasa tsy amin'ny kaody nampiantranoana ao amin'ny tahiry GitLab ihany. Ohatra, ny kaody dia azo tehirizina ao amin'ny tahiry GitHub, ary ny fantsona CI/CD dia azo alamina mifototra amin'ny GitLab mampiasa GitLab CI/CD.

Fampitahana an'i Jenkins sy GitLab CI/CD

Jenkins sy GitLab CI/CD dia fitaovana tena tsara, izay samy afaka miantoka ny fampandehanana ara-dalΓ na ny fantsona CI/CD. Saingy, raha ampitahainao izy ireo, dia hita fa, na dia mitovy aza izy ireo amin'ny lafiny maro, dia samy hafa izy ireo amin'ny lafiny sasany.

endri-javatra
Jenkins
GitLab CI/CD

Loharano misokatra na mihidy
Loharano misokatra
Loharano misokatra

fametrahana
Takina.
Tsy ilaina, satria ity dia endri-javatra natsangana amin'ny sehatra GitLab.

endri-javatra miavaka
Fanohanana plugin.
Fampidirana lalina amin'ny rafitra fanaraha-maso ny dikan-teny.

fanohanana
Tsy hita.
Misy.

Fametrahana sy fikirakirana
Tsy miteraka fahasahiranana
Tsy miteraka fahasahiranana

Self-deployment ny rafitra
Io no hany safidy amin'ny fampiasana ny rafitra.
Nanohana.

Mamorona fantsona CI/CD
Tohanana sy ampiasain'ny Jenkins Pipeline.
Nanohana.

Fanaraha-maso ny fahombiazan'ny fampiharana
Tsy hita.
Misy.

tontolo iainana
Misy plugins 1000 mahery.
Ny rafitra dia novolavolaina ao anatin'ny GitLab.

API
Manohana rafitra API mandroso.
Manolotra API ho fampidirana lalindalina kokoa amin'ny tetikasa.

Fanohanana JavaScript
Misy.
Misy.

Fifandraisana amin'ny fitaovana hafa
Ny fampidirana amin'ny fitaovana sy sehatra hafa (Slack, GitHub) dia tohana.
Fitaovana maro ho an'ny fampidirana amin'ny rafitra antoko fahatelo, indrindra amin'ny GitHub sy Kubernetes.

Fanaraha-maso ny kalitaon'ny kaody
Tohanana - mampiasa ny SonarQube plugin sy plugins hafa.
Nanohana.

Ny fahasamihafana eo amin'i Jenkins sy GitLab CI/CD

Rehefa avy namaritra sy nampitaha an'i Jenkins sy GitLab CI/CD isika, andao hifantoka amin'ny fahasamihafana misy eo amin'ireo fitaovana DevOps ireo. Ny fahafantarana ireo fahasamihafana ireo dia hanome fahatakarana ireo izay tia ny iray amin'ireo fitaovana ireo noho ny iray hafa.

  • GitLab CI/CD dia afaka mifehy tanteraka ny tahiry Git. Miresaka momba ny fitantanana ny sampana repository sy ny endri-javatra hafa. Saingy i Jenkins, na dia afaka miara-miasa amin'ny repository aza, dia tsy manome ny haavon'ny fanaraha-maso azy ireo amin'ny GitLab CI/CD.
  • Jenkins dia tetikasa maimaim-poana, loharano misokatra. Izay mifidy azy no mamelabelatra azy. Ary ny GitLab CI/CD dia tafiditra ao amin'ny sehatra GitLab, vahaolana efa vita izany.
  • GitLab CI/CD dia manohana fitaovana fitantanana olana mandroso izay miasa eo amin'ny sehatry ny tetikasa. Ity lafiny an'i Jenkins ity dia tsy dia mandroso loatra.

Jenkins sy GitLab CI/CD: tanjaka sy fahalemena

Manana hevitra momba an'i Jenkins sy GitLab CI/CD ianao izao. Ankehitriny, mba hahalalanao bebe kokoa ireo fitaovana ireo, andeha hojerentsika ny tanjany sy ny fahalemeny. Mino izahay fa efa nandray fanapahan-kevitra momba ny fitaovana ilainao ianao. Manantena aho fa ity fizarana ity dia hamela anao hitsapa ny tenanao.

▍Jenkins hery

  • Betsaka ny plugins.
  • Fanaraha-maso tanteraka ny fametrahana fitaovana.
  • Debug mora amin'ny mpihazakazaka.
  • Fametrahana node mora.
  • Fametrahana kaody mora.
  • Rafitra fitantanana fahazoan-dΓ lana tena tsara.
  • Flexibility sy versatility.
  • Fanohanana fiteny fandaharana isan-karazany.
  • Ny rafitra dia azo takarina amin'ny ambaratonga intuitive.

▍Jenkins fahalemena

  • Mety hisy fahasahiranana rehefa mampiasa plugins.
  • Rehefa mampiasa an'i Jenkins amin'ny tetikasa madinika ianao, dia mety ho lehibe tsy mitombina ny fotoana takiana amin'ny fananganana azy.
  • Tsy fahampian'ny fampahalalana famakafakana ankapobeny momba ny rojo CI/CD.

▍ Ny tanjaky ny GitLab CI/CD

  • Fampidirana tsara amin'ny Docker.
  • Fanamafisana mora ny mpihazakazaka.
  • Fanatanterahana ny asa mifanaraka amin'ny dingan'ny fantsona CI/CD.
  • Mampiasa ny maodely kisary acyclic mivantana rehefa manangana fifandraisana amin'ny asa.
  • Avo lenta ny scalability noho ny mety hisian'ny parallΓ¨le famonoana mpihazakazaka.
  • Mora ny manampy asa.
  • Famahana fifandirana tsotra.
  • Rafitra fiarovana azo antoka.

▍Ny fahalemen'ny GitLab CI/CD

  • Ho an'ny asa tsirairay dia mila mamaritra sy mampakatra/manala ireo artifacts ianao.
  • Tsy azonao atao ny manandrana ny vokatry ny fanakambanana sampana alohan'ny hanambadiana azy ireo.
  • Rehefa mamaritra ny dingan'ny fantsona CI/CD dia tsy mbola azo atao ny manavaka ny dingana tsirairay.

vokatra

Samy manana tanjaka sy fahalemena ny Jenkins sy GitLab CI/CD. Ny valin'ny fanontaniana hoe inona no hofidiana dia miankina amin'ny filana sy ny toetran'ny tetikasa manokana. Ny tsirairay amin'ireo fitaovana CI/CD resahina androany dia samy hafa amin'ny endri-javatra sasany, na dia noforonina hamahana olana iray ihany aza ireo fitaovana ireo. Mandritra izany fotoana izany, Jenkins dia fitaovana tokana, ary ny GitLab CI/CD dia ampahany amin'ny sehatra natao ho an'ny fiaraha-miasa amin'ny code.

Rehefa misafidy rafitra CI/CD, ankoatra ny fahaiza-manaony, dia ilaina ny mandinika ny fandaniana mety ho mifandray aminy, ary inona marina no zatra miasa amin'ny injeniera DevOps manohana ny tetikasa.

Inona no fitaovana CI/CD ampiasainao?

Battle of Jenkins sy GitLab CI/CD

Battle of Jenkins sy GitLab CI/CD

Source: www.habr.com

Add a comment