Yaƙin Jenkins da GitLab CI / CD

A cikin shekaru goma da suka gabata, an sami ci gaba mai mahimmanci a cikin haɓaka kayan aiki don ci gaba da haɗin kai (Ci gaba da Haɗin kai, CI) da ci gaba da ƙaddamarwa (Ci gaba da Bayarwa, CD). Haɓaka fasaha don haɗawa da haɓaka software da aiki (Ayyukan Ci gaba, DevOps) ya haifar da haɓaka da sauri ga kayan aikin CI / CD. Ana inganta hanyoyin da ake da su akai-akai, suna ƙoƙari su ci gaba da zamani, ana fitar da sababbin nau'ikan su, a cikin duniyar software na tabbatar da inganci (Quality Assurance, QA), yawancin sababbin samfurori suna fitowa kullum. Tare da irin wannan dukiya na zabi, zabar kayan aiki mai kyau ba abu ne mai sauƙi ba.

Yaƙin Jenkins da GitLab CI / CD

Daga cikin duk kayan aikin CI / CD ɗin da ke akwai, akwai ayyuka guda biyu waɗanda tabbas sun cancanci kulawa ga wanda ke neman wani abu daga wannan yanki. Muna magana ne game da Jenkins da kayan aikin GitLab CI / CD, wanda wani ɓangare ne na dandalin GitLab. Jenkins yana da fiye da 16000 Taurari akan GitHub. Wurin ajiya na GitLab akan gitlab.com ya zura kwallaye kadan 2000 taurari. Idan muka kwatanta shaharar ma'ajiyar, sai ya zamana cewa Jenkins ya zira kwallaye 8 fiye da taurari fiye da dandamali, wanda ya hada da GitLab CI / CD. Amma lokacin zabar kayan aikin CI / CD, wannan yayi nisa da kawai alamar da yakamata ku kula. Akwai wasu da yawa, kuma wannan yana bayyana dalilin da yasa a cikin kwatancen da yawa, Jenkins da GitLab CI / CD suna kusa da juna.

Ɗauki, alal misali, bayanai daga dandalin G2, wanda ke tara bita na samfurori iri-iri da ƙimar da masu amfani ke ba su. Anan shine matsakaicin ƙimar Jenkins, bisa 288 reviews, shi ne 4,3 taurari. Oh GitLab akwai 270 reviews, matsakaicin rating na wannan kayan aiki ne 4,4 taurari. Ba za mu yi kuskure ba da faɗin cewa Jenkins da GitLab CI / CD suna gasa da juna akan sharuɗɗa daidai. Yana da ban sha'awa a lura cewa aikin Jenkins ya bayyana a cikin 2011 kuma tun daga lokacin ya kasance kayan aiki da aka fi so ga masu gwadawa. Amma a lokaci guda, aikin GitLab CI / CD, wanda aka ƙaddamar a cikin 2014, ya ɗauki matsayinsa, mai girma sosai, godiya ga abubuwan ci gaba da wannan dandamali ke bayarwa.

Idan muka yi magana game da shaharar Jenkins idan aka kwatanta da sauran dandamali iri ɗaya, mun lura cewa mun buga labarin kwatanta dandamali na Travis CI da Jenkins, mun shirya wani bincike. Masu amfani da 85 sun shiga ciki. An tambayi masu amsa su zaɓi kayan aikin CI/CD da suka fi so. 79% ya zaɓi Jenkins, 5% ya zaɓi Travis CI, kuma 16% ya nuna cewa sun fi son sauran kayan aikin.

Yaƙin Jenkins da GitLab CI / CD
Sakamakon zabe

Daga cikin sauran kayan aikin CI/CD, GitLab CI/CD an ambace shi sau da yawa.

Idan kuna da gaske game da DevOps, to kuna buƙatar zaɓar kayan aikin da suka dace a hankali, la'akari da ƙayyadaddun aikin, kasafin kuɗi, da sauran buƙatun. Don taimaka muku yin zaɓin da ya dace, za mu sake duba Jenkins da GitLab CI/CD. Wannan da fatan zai taimake ku yin zaɓin da ya dace.

Gabatarwa ga Jenkins

Yaƙin Jenkins da GitLab CI / CD
Jenkins sanannen kayan aikin CI/CD ne mai sassauƙa wanda aka ƙera don sarrafa ayyuka da yawa masu alaƙa da ayyukan software. An rubuta Jenkins gabaɗaya a cikin Java kuma an sake shi ƙarƙashin lasisin MIT. Yana da fasalin fasali mai ƙarfi da nufin sarrafa ayyukan da ke da alaƙa da gini, gwaji, turawa, haɗawa, da sakin software. Ana iya amfani da wannan kayan aiki akan tsarin aiki daban-daban. Waɗannan sun haɗa da macOS, Windows, da yawancin rarrabawar Linux kamar OpenSUSE, Ubuntu, da Red Hat. Akwai fakitin shigarwa don Jenkins da aka tsara don OS daban-daban, ana iya shigar da wannan kayan aiki akan Docker kuma akan kowane tsarin da ke da JRE (Java Runtime Environment).

Masu haɓaka Jenkins sun ƙirƙiri wani aikin, Jenkins X, wanda aka tsara don yin aiki a cikin yanayin Kubernetes. Jenkins X ya haɗa Helm, uwar garken Jenkins CI / CD, Kubernetes, da sauran kayan aiki don gina bututun CI / CD waɗanda ke bin mafi kyawun ayyuka na DevOps. Misali, ana amfani da GitOps anan.

Mutum na iya ƙara wa baitulmalin fa'idar Jenkins gaskiyar cewa rubutun sa suna da tsari sosai, ana iya fahimta, da sauƙin karantawa. Ƙungiyar Jenkins ta ƙirƙiri kusan plugins 1000 waɗanda ke da nufin tsara hulɗar Jenkins tare da fasaha iri-iri. Rubutun na iya amfani da tsarin tantancewa, wanda, alal misali, yana ba ku damar haɗawa zuwa rufaffiyar rufaffiyar rufaffiyar tsarin.

Yayin aikin bututun Jenkins, zaku iya lura da abin da ke faruwa a kowane mataki, ko an kammala wasu matakan aiki cikin nasara ko a'a. Kuna iya kallon duk wannan, duk da haka, ba tare da yin amfani da takamaiman ƙirar hoto ba, amma ta amfani da damar tashar.

Features na Jenkins

Daga cikin sanannun fasalulluka na Jenkins akwai sauƙi na saiti, babban matakin sarrafa kansa na ayyuka daban-daban, da kyawawan takardu. Idan muka yi magana game da warware ayyukan DevOps, to a nan Jenkins ana ɗaukarsa a matsayin kayan aiki mai dogaro sosai, ta amfani da wanda, a matsayin mai mulkin, ba shi da ma'ana don saka idanu sosai kan duk aikin sarrafa aikin. Wannan ba haka yake ba da sauran kayan aikin CI/CD. Bari mu yi magana game da wasu muhimman abubuwan da Jenkins ke da shi.

▍ 1. Kyauta, tushen buɗewa, tallafin dandamali da yawa

Jenkins na iya aiki akan dandamali na macOS, Windows da Linux. Hakanan yana iya aiki a cikin yanayin Docker, wanda ke ba ku damar tsara uniform da saurin aiwatar da ayyuka na atomatik. Hakanan wannan kayan aikin na iya aiki azaman servlet a cikin kwantena masu kunna Java kamar Apache Tomcat da GlassFish. Shigar da Jenkins da inganci rubuce.

▍2. Haɓaka yanayin yanayin plugin

Tsarin muhallin plugin na Jenkins ya bayyana ya fi girma fiye da kayan aikin plugin na sauran kayan aikin CI/CD. A halin yanzu akwai sama da 1500 plugins don Jenkins. Waɗannan plugins suna da nufin warware ayyuka da yawa, tare da taimakonsu zaku iya sarrafa ayyuka iri-iri. Dukiyar plugins kyauta don zaɓar daga tana nufin cewa idan kuna amfani da Jenkins, ba lallai ne ku sayi plugins masu tsada masu tsada ba. Akwai yiwuwar hadewa Jenkins tare da kayan aikin DevOps da yawa.

▍3. Sauƙi shigarwa da saitin

Jenkins yana da sauƙin shigarwa da daidaitawa. A lokaci guda kuma, tsarin sabunta tsarin yana da matukar dacewa. A nan, kuma, yana da daraja ambaton ingancin takardun, tun da yake a ciki za ku iya samun amsoshin tambayoyi da dama da suka shafi shigarwa da daidaitawa Jenkins.

▍4. Jama'a masu aminci

Kamar yadda aka riga aka ambata, Jenkins aikin buɗaɗɗen tushe ne, yanayin yanayin wanda ya haɗa da adadi mai yawa na plugins. Babban al'umma na masu amfani da masu haɓakawa sun haɓaka a kusa da Jenkins don taimakawa haɓaka aikin. Al'umma na ɗaya daga cikin abubuwan da ke haifar da ci gaban Jenkins.

▍5. Samuwar REST API

Yayin aiki tare da Jenkins, zaku iya amfani da REST API, wanda ke faɗaɗa ƙarfin tsarin. API don samun nisa zuwa tsarin an gabatar dashi a cikin nau'ikan guda uku: XML, JSON tare da tallafin JSONP, Python. a nan Shafi na takaddun da ke rufe cikakkun bayanai kan aiki tare da Jenkins REST API.

▍ 6. Taimako don aiwatar da ayyuka a layi daya

Jenkins yana goyan bayan daidaita ayyukan DevOps. Ana iya haɗa shi cikin sauƙi tare da kayan aikin da suka dace kuma karɓar sanarwa game da sakamakon ayyuka. Ana iya hanzarta gwajin lamba ta hanyar tsara tsarin ginin layi daya na aikin ta amfani da injunan kama-da-wane.

▍7. Taimako don aiki a cikin wurare masu rarraba

Jenkins yana ba ku damar tsara ginin da aka rarraba ta amfani da kwamfutoci da yawa. Wannan fasalin yana aiki ne a cikin manyan ayyuka kuma yana amfani da tsarin aiki, bisa ga abin da akwai uwar garken Jenkins guda ɗaya da na'urorin bayi da yawa. Hakanan za'a iya amfani da injinan bayi a cikin yanayi inda ya zama dole don tsara gwajin aikin a wurare daban-daban. Waɗannan fasalulluka sun sa Jenkins ban da sauran ayyukan makamantansu.

Gabatarwa zuwa GitLab

Yaƙin Jenkins da GitLab CI / CD
GitLab CI/CD ana iya kiransa ɗayan sabbin kuma mafi ƙaunataccen kayan aikin DevOps. An gina wannan kayan aikin buɗe tushen kyauta a cikin tsarin sarrafa nau'in GitLab. Dandalin GitLab yana da sigar al'umma, yana goyan bayan sarrafa ma'aji, kayan aikin bin diddigi, ƙungiyar bitar lambar, hanyoyin da suka dace da takardu. Kamfanoni na iya shigar da GitLab a cikin gida, suna haɗa shi zuwa Active Directory da sabar LDAP don amintaccen izinin mai amfani da ingantaccen aiki.

a nan Koyarwar bidiyo don taimaka muku koyon yadda ake ƙirƙirar bututun CI/CD ta amfani da damar GitLab CI/CD.

GitLab CI/CD an fito da shi a matsayin aiki na tsaye, amma a cikin 2015 an haɗa wannan saitin kayan aikin cikin GitLab 8.0. Sabar GitLab CI/CD guda ɗaya na iya tallafawa masu amfani sama da 25000. Dangane da irin waɗannan sabobin, zaku iya ƙirƙirar tsarin da suke da yawa.

GitLab CI/CD da babban aikin GitLab an rubuta su cikin Ruby da Go. Ana sake su ƙarƙashin lasisin MIT. GitLab CI/CD, ban da abubuwan da aka saba na kayan aikin CI/CD, kuma suna goyan bayan ƙarin fasalulluka masu alaƙa, misali, don tsara tsarin aiki.

Haɗa GitLab CI/CD cikin aiki abu ne mai sauƙi. Lokacin amfani da GitLab CI/CD, ana rarraba tsarin sarrafa lambar aikin zuwa matakai, kowannensu na iya ƙunshi ayyuka da yawa da aka yi a cikin wani tsari. Ana iya daidaita ayyuka da kyau.

Ayyuka na iya gudana a layi daya. Bayan kafa jerin matakai da ayyuka, bututun CI/CD yana shirye don tafiya. Kuna iya lura da ci gabanta ta hanyar lura da matsayin ayyuka. Sakamakon haka, amfani da GitLab CI / CD ya dace sosai, wataƙila ya fi dacewa fiye da sauran kayan aikin makamancin haka.

Siffofin GitLab CI/CD da GitLab

GitLab CI/CD shine ɗayan shahararrun kayan aikin DevOps. An bambanta aikin da takardun inganci, siffofinsa suna da sauƙi da dacewa don amfani. Idan har yanzu ba ku saba da GitLab CI/CD ba, jerin abubuwan fasalin wannan kayan aikin za su ba ku cikakken ra'ayi game da abin da zaku iya tsammani daga gare ta. Ya kamata a lura cewa yawancin waɗannan abubuwan suna da alaƙa da dandalin GitLab da kansa, wanda GitLab CI / CD ya haɗa.

▍ 1. Shahararren

GitLab CI/CD sabon kayan aiki ne wanda ya sami amfani mai yawa. GitLab CI/CD sannu a hankali ya zama babban mashahurin kayan aikin CI/CD da ake amfani da shi don gwaji ta atomatik da tura software. Yana da sauƙi don saitawa. Hakanan kayan aikin CI/CD ne na kyauta wanda aka gina a cikin dandalin GitLab.

▍2. Taimako don Shafukan GitLab da Jekyll

Jekyll babban janareta ne na rukunin yanar gizo wanda za'a iya amfani dashi a cikin tsarin GitLab Pages don ƙirƙirar rukunin yanar gizo dangane da ma'ajin GitLab. Tsarin yana ɗaukar kayan tushe kuma yana haifar da ingantaccen wurin da aka ƙera akan su. Kuna iya sarrafa bayyanar da fasalulluka na irin waɗannan rukunin yanar gizon ta hanyar gyara fayil ɗin _config.yml, wanda Jekyll yayi amfani dashi.

▍3. Ƙarfin tsara aikin

Godiya ga ikon tsara matakan ayyukan, dacewa da matsalolin bin diddigin da ƙungiyoyin su yana ƙaruwa. Wannan yana ba ku damar sarrafa ƙungiyar ayyukan akan ayyukan, tsara aiwatar da su akan takamaiman kwanan wata.

▍4. Sikelin atomatik na masu gudu CI

Godiya ga sikelin atomatik na masu gudu da ke da alhakin aiwatar da takamaiman ayyuka, zaku iya adana da yawa akan farashin hayar damar uwar garken. Wannan yana da matukar mahimmanci, musamman idan ya zo ga wuraren da ake gwada ayyukan a layi daya. Bugu da ƙari, wannan yana da mahimmanci ga manyan ayyuka da ke kunshe da ɗakunan ajiya da yawa.

▍5. Ba da kayan aikin sa ido

GitLab mai ƙarfi ikon bin diddigin batu ya haifar da yawancin ayyukan buɗaɗɗe don amfani da dandamali. GitLab CI/CD yana ba da damar gwaji iri ɗaya na rassan lamba daban-daban. Ana nazarin sakamakon gwaji cikin dacewa a cikin tsarin dubawa. Wannan yana saita GitLab CI/CD ban da Jenkins.

▍ 6. Ƙuntata samun dama ga wuraren ajiya

Dandalin GitLab yana goyan bayan ƙuntata damar shiga wuraren ajiya. Misali, wadanda suka hada kai kan wani aiki a cikin ma'ajiyar kaya ana iya ba su izini daidai da ayyukansu. Wannan gaskiya ne musamman ga ayyukan kamfanoni.

▍7. Tallafin al'umma mai aiki

Al'umma mai aiki sun haɓaka a kusa da GitLab, wanda ke ba da gudummawa ga haɓaka wannan dandamali da kayan aikin sa, musamman, GitLab CI / CD. Haɗin kai mai zurfi na GitLab CI / CD da GitLab, a tsakanin sauran abubuwa, yana sauƙaƙa samun amsoshin tambayoyin da suka taso lokacin aiki tare da GitLab CI/CD.

▍8. Taimako don tsarin sarrafa sigar daban-daban

GitLab CI/CD tsarin ne wanda zai iya aiki da fiye da kawai lambar da aka shirya a ma'ajiyar GitLab. Misali, ana iya adana lambar a cikin ma'ajiyar GitHub, kuma ana iya tsara bututun CI / CD akan GitLab ta amfani da GitLab CI / CD.

Kwatanta Jenkins da GitLab CI/CD

Jenkins da GitLab CI/CD kayan aiki ne masu kyau, duka biyun suna iya sa bututun CI/CD ya gudana cikin kwanciyar hankali. Amma idan muka kwatanta su, zai zama cewa, ko da yake sun yi kama da juna ta hanyoyi da yawa, sun bambanta da juna ta wasu hanyoyi.

Характеристика
Jenkins
GitLab CI/CD

Buɗe tushen ko rufaffiyar tushe
bude tushen
bude tushen

saitin
Da ake bukata
Ba a buƙata ba saboda wannan fasalin ginannen tsarin dandalin GitLab ne.

Musamman fasali
Tallafin plugin.
Zurfafa haɗin kai cikin tsarin sarrafa sigar.

goyon bayan
An rasa.
Akwai

Shigarwa da daidaitawa
Wahala ba sa haifarwa
Wahala ba sa haifarwa

Aiwatar da kai na tsarin
Wannan ita ce kawai hanyar amfani da tsarin.
Tallafawa.

Ƙirƙirar bututun CI/CD
Goyan baya, ta amfani da Jenkins Pipeline.
Tallafawa.

Kulawar aikin aikace-aikacen
An rasa.
Akwai

Tsarin yanayi
Akwai fiye da 1000 plugins.
Ana haɓaka tsarin a cikin GitLab.

API
Yana goyan bayan tsarin API na ci gaba.
Yana ba da API don zurfafa haɗin kai cikin ayyuka.

Goyan bayan JavaScript
Akwai
Akwai

Haɗin kai tare da wasu kayan aikin
Ana tallafawa haɗin kai tare da wasu kayan aiki da dandamali (Slack, GitHub).
Yawancin kayan aiki don haɗawa tare da tsarin ɓangare na uku, musamman - tare da GitHub da Kubernetes.

Kula da ingancin lambar
Goyon baya - ta amfani da plugin ɗin SonarQube da sauran plugins.
Tallafawa.

Bambance-bambance tsakanin Jenkins da GitLab CI/CD

Bayan an kwatanta da kwatanta Jenkins da GitLab CI/CD, bari mu mai da hankali kan bambance-bambance tsakanin waɗannan kayan aikin DevOps. Sanin waɗannan bambance-bambancen zai taimaka maka fahimtar waɗanda suka fi son ɗayan waɗannan kayan aikin akan ɗayan.

  • GitLab CI/CD na iya sarrafa cikakken ma'ajiyar Git. Muna magana ne game da sarrafa rassan ma'ajiya da wasu fasaloli. Amma Jenkins, ko da yake yana iya aiki tare da ma'ajiyar ajiya, baya ba da iko iri ɗaya a kansu kamar GitLab CI / CD.
  • Jenkins shiri ne na buɗe tushen kyauta. Wanda ya zaba ya tura shi da kansa. Kuma GitLab CI / CD an haɗa shi a cikin dandalin GitLab, wannan shine mafita na maɓalli.
  • GitLab CI/CD yana goyan bayan kayan aikin sarrafa ayyuka na ci gaba waɗanda ke aiki a matakin aikin. Wannan gefen Jenkins bai fi girma ba.

Jenkins da GitLab CI/CD: ƙarfi da rauni

Yanzu kuna da wasu ra'ayi game da Jenkins da GitLab CI/CD. Yanzu, don fahimtar da ku da waɗannan kayan aikin, bari mu dubi ƙarfinsu da rauninsu. Muna ɗauka cewa kun riga kun yanke shawarar wane kayan aiki kuke buƙata. Da fatan, wannan sashe zai ba ku damar gwada kanku.

▍ Ƙarfin Jenkins

  • Babban adadin plugins.
  • Cikakken iko akan shigarwa kayan aiki.
  • Sauƙaƙan gyara kurakurai na masu gudu.
  • Sauƙi saitin kumburi.
  • Sauƙaƙan tura lambar.
  • Kyakkyawan tsarin gudanarwa na takaddun shaida.
  • Sassauci da juzu'i.
  • Taimako don harsunan shirye-shirye daban-daban.
  • Ana iya fahimtar tsarin akan matakin fahimta.

▍Rauni na Jenkins

  • Plugins na iya zama da wahala don amfani.
  • Lokacin amfani da Jenkins a cikin ƙananan ayyuka, lokacin da ake buƙata don saita shi da kanku na iya zama babba mara dalili.
  • Rashin cikakken bayanan nazari akan sarƙoƙin CI/CD.

▍ Ƙarfin GitLab CI/CD

  • Kyakkyawan haɗin kai tare da Docker.
  • Sauƙaƙan sikelin masu gudu.
  • Daidaitawar aiwatar da ayyuka waɗanda ke cikin matakai na bututun CI/CD.
  • Yin amfani da samfurin acyclic jadawali lokacin kafa alaƙar ɗawainiya.
  • Babban matakin haɓaka saboda yuwuwar aiwatar da kisa na daidaici na masu gudu.
  • Sauƙin ƙara ayyuka.
  • Sauƙaƙan warware rikici.
  • Amintaccen tsarin tsaro.

▍Rauni na GitLab CI/CD

  • Ga kowane ɗawainiya, kuna buƙatar bayyanawa da loda / zazzage kayan tarihi.
  • Ba za ku iya gwada sakamakon haɗewar rassan ba kafin a haƙiƙance su.
  • Lokacin da aka kwatanta matakan bututun CI / CD, har yanzu ba zai yiwu a ware matakan kowane mutum a cikinsu ba.

Sakamakon

Dukansu Jenkins da GitLab CI/CD suna da ƙarfi da rauni. Amsar tambayar abin da za a zaɓa ya dogara da bukatun da halaye na wani aikin. Kowane kayan aikin CI/CD da aka sake dubawa a yau yana da wasu siffofi, kodayake an ƙirƙiri waɗannan kayan aikin don magance wannan matsala. A lokaci guda, Jenkins kayan aiki ne na tsaye, kuma GitLab CI / CD wani ɓangare ne na dandalin da aka ƙera don haɗin gwiwa akan lambar.

Lokacin zabar tsarin CI / CD, baya ga iyawar sa, yana da daraja la'akari da farashin da za a iya danganta shi da shi, da kuma menene ainihin injiniyoyin DevOps waɗanda ke tallafawa aikin suna amfani da su.

Wadanne kayan aikin CI/CD kuke amfani da su?

Yaƙin Jenkins da GitLab CI / CD

Yaƙin Jenkins da GitLab CI / CD

source: www.habr.com

Add a comment