Lilemong tse leshome tse fetileng, ho entsoe tsoelo-pele e kholo ho nts'etsopele ea "continuous integration" (CI) le lisebelisoa tsa "continuous deployment" (CD). Nts'etsopele ea mahlale a ho kopanya nts'etsopele ea software le ts'ebetso (Ts'ebetso ea Nts'etsopele, DevOps) e lebisitse ho keketseho e potlakileng ea tlhokahalo ea lisebelisoa tsa CI / CD. Litharollo tse teng li lula li ntlafatsoa, ho leka ho tsamaisana le linako, liphetolelo tse ncha li ntse li lokolloa, 'me lihlahisoa tse ngata tse ncha li lula li hlaha lefatšeng la software quality assurance (QA). Ka leruo le joalo la khetho, ho khetha lisebelisoa tse nepahetseng ha se mosebetsi o bonolo.
Har'a lisebelisoa tsohle tse teng tsa CI / CD, ho na le merero e 'meli eo ka sebele e lokelang ho ela hloko ho ba batlang ho hong sebakeng sena. Re bua ka Jenkins le sesebelisoa sa GitLab CI/CD, seo e leng karolo ea sethala sa GitLab. Jenkins o na le ho feta
Ka mohlala, nka lintlha tse tsoang sethaleng sa G2, se bokellang maikutlo a mefuta e mengata ea lihlahisoa le litekanyetso tseo basebelisi ba li fang tsona. Lintlha tse tloaelehileng ke tsena
Haeba re bua ka ho tsebahala ha Jenkins ha ho bapisoa le liforomo tse ling tse tšoanang, rea hlokomela hore ka mor'a ho hatisa sehlooho se bapisang liforomo tsa Travis CI le Jenkins, re ile ra hlophisa lipatlisiso. Basebelisi ba 85 ba nkile karolo ho eona. Ba arabelang ba ile ba botsoa ho khetha sesebelisoa sa CI/CD seo ba se ratang haholo. 79% e khethile Jenkins, 5% e khethile Travis CI, 'me 16% e bontšitse hore e rata lisebelisoa tse ling.
Liphetho tsa lipatlisiso
Har'a lisebelisoa tse ling tsa CI/CD, GitLab CI/CD e ne e boleloa hangata.
Haeba u na le maikutlo a tebileng ka DevOps, joale u lokela ho khetha ka hloko lisebelisoa tse nepahetseng, u nahane ka likarolo tsa morero, tekanyetso ea eona le litlhoko tse ling. Ho u thusa ho etsa khetho e nepahetseng, re tla sekaseka Jenkins le GitLab CI/CD. Ke tšepa hore sena se tla u thusa ho etsa khetho e nepahetseng.
Ho hlahisa Jenkins
Bahlahisi ba Jenkins ba thehile morero o mong, Jenkins X, o etselitsoeng ho sebetsa tikolohong ea Kubernetes. Jenkins X e kopanya Helm, Jenkins CI/CD Server, Kubernetes, le lisebelisoa tse ling tse etselitsoeng ho haha liphaephe tsa CI/CD tse latelang mekhoa e metle ea DevOps. Ka mohlala, GitOps e sebelisoa mona.
E 'ngoe ea melemo ea Jenkins e ka eketsoa tabeng ea hore mangolo a eona a hlophisitsoe hantle, a utloisisoa ebile a bonolo ho bala. Sehlopha sa Jenkins se thehile li-plugins tse ka bang 1000 tse reretsoeng ho hlophisa tšebelisano ea Jenkins ka mefuta e fapaneng ea theknoloji. Lingoliloeng u ka sebelisa litsamaiso tsa netefatso, tseo, mohlala, li u lumellang hore u hokahane le lits'ebetso tse fapaneng tse koetsoeng.
Nakong ea ts'ebetso ea lipeipi tsa Jenkins, u ka bona se etsahalang mohatong o mong le o mong, hore na mekhahlelo e itseng ea mosebetsi e phethiloe ka katleho kapa che. U ka bona tsena tsohle, leha ho le joalo, u sa sebelise mofuta o itseng oa sebopeho sa graphical, empa u sebelisa bokhoni ba terminal.
Litšobotsi tsa Jenkins
Har'a likarolo tse tsebahalang tsa Jenkins ke boiketlo ba tlhophiso, boemo bo phahameng ba boits'oaro ba ts'ebetso e fapaneng le litokomane tse ntle haholo. Haeba re bua ka ho rarolla mathata a DevOps, joale Jenkins e nkoa e le sesebelisoa se ka tšeptjoang haholo, se sebelisang seo, ka molao, ho se nang thuso ea ho shebella ka hloko ts'ebetso eohle ea ts'ebetso ea morero. Sena ha se joalo ka lisebelisoa tse ling tsa CI/CD. Ha re bue ka tse ling tsa likarolo tsa bohlokoa tsa Jenkins.
▍1. Mohloli oa mahala, o bulehileng, o tšehetsoeng ke li-platform tse ngata
Jenkins e ka sebetsa ho li-platform tsa macOS, Windows le Linux. E ka sebetsa le tikolohong ea Docker, e u lumellang hore u hlophise mesebetsi e ikemetseng ka mokhoa o ts'oanang le o potlakileng. Sesebelisoa se ka sebetsa hape joalo ka servlet ka har'a lijana tse lumelletsoeng ke Java joalo ka Apache Tomcat le GlassFish. Kenya Jenkins hantle
▍2. E ntlafalitse plugin ecosystem
Jenkins plugin ecosystem e bonahala e holile ho feta ha e bapisoa le plugin ecosystems ea lisebelisoa tse ling tsa CI/CD. Hajoale ho na le li-plugins tse fetang 1500 tsa Jenkins. Li-plugins tsena li reretsoe ho rarolla mathata a mangata a fapaneng; ka thuso ea bona o ka iketsetsa merero e mengata e fapaneng. Leruo la li-plugins tsa mahala tseo u ka khethang ho tsona li bolela hore mang kapa mang ea sebelisang Jenkins ha a na tlhoko e matla ea ho reka li-plugins tse lefelloang tse turang. Ho na le monyetla
▍3. Ho kenya habonolo le ho seta
Jenkins e bonolo haholo ho e kenya le ho e hlophisa. Ka nako e ts'oanang, ts'ebetso ea ntlafatso ea sistimi e boetse e bonolo haholo. Mona, hape, ho bohlokoa ho bua ka boleng ba litokomane, kaha e ka araba lipotso tse fapaneng tse amanang le ho kenya le ho hlophisa Jenkins.
▍4. Sechaba sa Metsoalle
Joalokaha ho se ho boletsoe, Jenkins ke projeke ea mohloli o bulehileng oo tikoloho ea eona e kenyelletsang palo e kholo ea li-plugins. Ho na le sechaba se seholo sa basebelisi le ba ntlafatsang ho potoloha Jenkins ba thusang ho nts'etsapele morero. Sechaba ke e 'ngoe ea lintlha tse susumetsang nts'etsopele ea Jenkins.
▍5. Ho fumaneha ha REST API
Ha u sebetsa le Jenkins, u ka sebelisa REST API, e eketsang bokhoni ba tsamaiso. API bakeng sa ho fihlella hole ho sistimi e hlahisoa ka mefuta e meraro: XML, JSON e nang le tšehetso ea JSONP, Python.
▍6. Tšehetso ea mosebetsi o tšoanang
Jenkins e tšehetsa ho tšoana ha mesebetsi ea DevOps. E ka kopanngoa habonolo le lisebelisoa tse amanang le ho fumana litsebiso mabapi le liphello tsa mosebetsi. Teko ea likhoutu e ka potlakisoa ka ho hlophisa meaho ea projeke e tšoanang ho sebelisa metjhini e fapaneng ea nnete.
▍7. Tšehetso ea ho sebetsa libakeng tse ajoang
Jenkins e u lumella ho hlophisa meaho e abuoang u sebelisa likhomphutha tse ngata. Tšobotsi ena e sebetsa mererong e meholo mme e sebelisa leano la mosebetsi leo ho lona ho nang le seva se le seng se seholo sa Jenkins le mechine e mengata ea makhoba. Mechini ea makhoba e ka boela ea sebelisoa maemong ao ho hlokahalang ho hlophisa tlhahlobo ea morero libakeng tse fapaneng. Likarolo tsena li beha Jenkins ka thoko ho merero e meng e tšoanang.
Ho hlahisa GitLab
GitLab CI/CD e ile ea lokolloa qalong e le projeke e ikemetseng, empa ka 2015 sesebelisoa sa lisebelisoa se ile sa kopanngoa ho GitLab 8.0. Seva e le 'ngoe ea GitLab CI/CD e ka tšehetsa basebelisi ba fetang 25000. Ho ipapisitsoe le li-server tse joalo, u ka etsa litsamaiso tse fumanehang haholo.
GitLab CI/CD le morero oa mantlha oa GitLab li ngotsoe ka Ruby and Go. Li lokolloa tlas'a laesense ea MIT. GitLab CI / CD, ho phaella ho bokhoni bo tloaelehileng ba lisebelisoa tsa CI / CD, e boetse e tšehetsa bokhoni bo eketsehileng bo amanang, mohlala, ho rera mosebetsi.
Ho kopanya GitLab CI/CD morerong oa hau ho bonolo haholo. Ha u sebelisa GitLab CI/CD, mokhoa oa ho sebetsa khoutu ea morero o arotsoe ka mekhahlelo, e 'ngoe le e' ngoe e ka ba le mesebetsi e mengata e etsoang ka tatellano e itseng. Mesebetsi e ka hlophisoa hantle.
Mesebetsi e ka etsoa ka tatellano. Kamora ho theha tatellano ea mekhahlelo le mesebetsi, phala ea CI / CD e se e loketse ho tsamaea. U ka hlokomela tsoelo-pele ea eona ka ho latela boemo ba mesebetsi. Ka lebaka leo, ho sebelisa GitLab CI/CD ho bonolo haholo, mohlomong ho bonolo ho feta lisebelisoa tse ling tse tšoanang.
Likarolo tsa GitLab CI/CD le GitLab
GitLab CI/CD ke e 'ngoe ea lisebelisoa tse tsebahalang haholo tsa DevOps. Morero o khetholloa ka litokomane tsa boleng bo holimo, bokhoni ba eona bo bonolo ebile bo bonolo ho bo sebelisa. Haeba u ncha ho GitLab CI/CD, lenane le latelang la likarolo tsa sesebelisoa le tla u fa mohopolo o akaretsang oa seo u ka se lebellang ho eona. Ho lokela ho hlokomeloa hore boholo ba likarolo tsena li amana le sethala sa GitLab ka boeona, moo GitLab CI/CD e kopantsoeng teng.
▍1. Ho tuma
GitLab CI/CD ke sesebelisoa se batlang se secha se fumaneng tšebeliso e atileng. GitLab CI/CD butle-butle e fetohile sesebelisoa se tsebahalang haholo sa CI/CD se sebelisetsoang tlhahlobo ea software e ikemetseng le ho e tsamaisa. Ho bonolo ho theha. Hape ke sesebelisoa sa mahala sa CI/CD se hahiloeng sethaleng sa GitLab.
▍2. Maqephe a GitLab le tšehetso ea Jekyll
Jekyll ke jenereithara ea sebaka sa static e ka sebelisoang ka har'a sistimi ea GitLab Pages ho theha libaka tse thehiloeng ho polokelo ea GitLab. Sistimi e nka lisebelisoa tsa mohloli mme e hlahisa sebaka sa marang-rang se itokiselitseng se thehiloeng ho tsona. O ka laola ponahalo le bokhoni ba libaka tse joalo ka ho hlophisa faele _config.yml
, e sebelisoang ke Jekyll.
▍3. Bokhoni ba ho rera merero
Ka lebaka la bokhoni ba ho rera mekhahlelo ea morero, boiketlo ba mathata a ho latela le lihlopha tsa bona boa eketseha. Sena se o nolofalletsa ho laola mokhatlo oa mosebetsi mererong le ho rera ts'ebetsong ea bona bakeng sa letsatsi le itseng.
▍4. Ho lekanya ka bohona ha limathi tsa CI
Ka lebaka la ho eketsa lebelo la limathi tse ikarabellang bakeng sa ho etsa mesebetsi e itseng, o ka boloka litšenyehelo tsa ho hira seva. Sena se bohlokoa haholo, haholo ha ho tluoa tikolohong eo ho eona merero e lekoang ka ho ts'oana. Ho phaella moo, sena ke sa bohlokoa bakeng sa merero e meholo e nang le libaka tse 'maloa tsa polokelo.
▍5. Lisebelisoa tsa ho latela lintlha
Bokhoni bo matla ba ho latela taba ea GitLab bo lebisitse ho merero e mengata e bulehileng e sebelisang sethala. GitLab CI/CD e u lumella ho lekola makala a fapaneng a khoutu ka ho tsamaisana. Liphetho tsa liteko li ka hlahlojoa habonolo sebopeho sa sistimi. Sena se beha GitLab CI/CD ho fapana le Jenkins.
▍6. E thibela ho kena libakeng tsa polokelo
Sethala sa GitLab se ts'ehetsa ho thibela phihlello ea polokelo. Ka mohlala, ba sebelisanang le morero sebakeng sa polokelo ba ka abeloa litokelo tse lumellanang le mesebetsi ea bona. Sena ke 'nete haholo-holo bakeng sa merero ea khoebo.
▍7. Tšehetso e sebetsang ea sechaba
Sechaba se mafolofolo se se se ntlafalitse ho potoloha GitLab, se kenyang letsoho ntlafatsong ea sethala sena le lisebelisoa tsa sona, haholo-holo GitLab CI/CD. Ho kopanya ho tebileng pakeng tsa GitLab CI/CD le GitLab, har'a lintho tse ling, ho nolofaletsa ho fumana likarabo tsa lipotso tse hlahang ha u sebetsa le GitLab CI/CD.
▍8. Ts'ehetso ea ho sebetsa le litsamaiso tse fapaneng tsa taolo ea liphetolelo
GitLab CI/CD ke sistimi e ke keng ea sebetsa feela ka khoutu e ts'oaroang polokelong ea GitLab. Mohlala, khoutu e ka bolokoa sebakeng sa polokelo ea GitHub, 'me phaephe ea CI/CD e ka hlophisoa ho latela GitLab ho sebelisoa GitLab CI/CD.
Papiso ea Jenkins le GitLab CI/CD
Jenkins le GitLab CI/CD ke lisebelisoa tse ntle haholo, tseo e 'ngoe le e 'ngoe ea tsona e khonang ho netefatsa ts'ebetso e tloaelehileng ea lipeipi tsa CI/CD. Empa, haeba u li bapisa, hoa etsahala hore, le hoja li tšoana ka litsela tse ngata, li fapane ka litsela tse ling.
Litšobotsi
Jenkins
GitLab CI/CD
Mohloli o bulehileng kapa o koetsoeng
mohloli o bulehileng
mohloli o bulehileng
bophirima
Ho hlokahala.
Ha e hlokehe, kaha sena ke karolo e hahelletsoeng ka har'a sethala sa GitLab.
Likarolo tse Ikhethang
Tšehetso ea plugin.
Khokahano e tebileng ho sistimi ea taolo ea mofuta.
tshehetso
Ha a eo.
E fumaneha.
Ho kenya le ho hlophisa
Ha e bake mathata
Ha e bake mathata
Boiketsi ba tsamaiso
Ena ke eona feela khetho ea ho sebelisa sistimi.
E tšehelitsoe.
Ho theha liphaephe tsa CI/CD
E tšehelitsoe ebile e sebelisoa ke Jenkins Pipeline.
E tšehelitsoe.
Tlhokomelo ea Ts'ebetso ea Kopo
Ha a eo.
E fumaneha.
Tikoloho
Ho na le li-plugins tse fetang 1000.
Sistimi e ntse e ntlafatsoa ka har'a GitLab.
API
E ts'ehetsa sistimi e tsoetseng pele ea API.
E fana ka API bakeng sa kopanyo e tebileng ho merero.
Tšehetso ea JavaScript
E fumaneha.
E fumaneha.
Ho kopanya le lisebelisoa tse ling
Ho kopanngoa le lisebelisoa tse ling le li-platform (Slack, GitHub) lia tšehetsoa.
Lisebelisoa tse ngata tsa ho hokahana le lits'ebetso tsa mokha oa boraro, haholo-holo ka GitHub le Kubernetes.
Taolo ea boleng ba khoutu
E tšehelitsoe - ho sebelisa plugin ea SonarQube le li-plugins tse ling.
E tšehelitsoe.
Phapang lipakeng tsa Jenkins le GitLab CI/CD
Ha re se re hlalositse le ho bapisa Jenkins le GitLab CI/CD, ha re shebeng phapang lipakeng tsa lisebelisoa tsena tsa DevOps. Ho tseba liphapang tsena ho tla fana ka temohisiso ho ba khethang e 'ngoe ea lisebelisoa tsena ho feta tse ling.
- GitLab CI/CD e ka laola ka botlalo polokelo ea Git. Re bua ka ho laola makala a polokelo le likarolo tse ling. Empa Jenkins, leha e ka sebetsa le li-repositories, ha e fane ka boemo bo tšoanang ba taolo holim'a bona joalo ka GitLab CI/CD.
- Jenkins ke morero oa mahala, o bulehileng oa mohloli. Ea e khethang o e phutholla ka boeena. 'Me GitLab CI/CD e kenyelelitsoe sethaleng sa GitLab, ke tharollo e entsoeng esale pele.
- GitLab CI/CD e ts'ehetsa lisebelisoa tse tsoetseng pele tsa taolo ea litaba tse sebetsang maemong a projeke. Lehlakore lena la Jenkins ha lea ntlafatsoa.
Jenkins le GitLab CI/CD: matla le mefokolo
Joale u na le mohopolo ka Jenkins le GitLab CI/CD. Joale, ho etsa hore u tloaelane hamolemo le lisebelisoa tsena, a re shebeng matla le mefokolo ea tsona. Re lumela hore u se u entse qeto ea hore na u hloka sesebelisoa sefe. Ke tšepa hore karolo ena e tla u lumella hore u itlhahlobe.
▍ matla a Jenkins
- Palo e kholo ea li-plugins.
- Taolo e felletseng ea ho kenya lisebelisoa.
- Ho lokisa habonolo ha limathi.
- Ho hlophisoa ha node ho bonolo.
- Ho tsamaisoa ha khoutu ho bonolo.
- Sistimi e ntle haholo ea taolo ea lintlha.
- Ho tenyetseha le ho feto-fetoha ha maemo.
- Tšehetso bakeng sa lipuo tse fapaneng tsa lenaneo.
- Sistimi ea utloahala ka mokhoa o hlakileng.
▍Mefokolo ea Jenkins
- Mathata a ka hlaha ha o sebelisa li-plugins.
- Ha u sebelisa Jenkins mererong e menyenyane, nako e hlokahalang ho iketsetsa eona e ka ba kholo ka mokhoa o sa utloahaleng.
- Ho haella ha tlhaiso-leseling e akaretsang mabapi le liketane tsa CI / CD.
▍Matla a GitLab CI/CD
- Khokahano e ntle le Docker.
- Ho lekanya habonolo ha limathi.
- Phethahatso e tšoanang ea mesebetsi e kenyellelitsoeng mekhahlelong ea phaephe ea CI/CD.
- Ho sebelisa mohlala oa kerafo ea acyclic ha u theha likamano tsa mosebetsi.
- Boemo bo phahameng ba scalability ka lebaka la monyetla oa ts'ebetso e ts'oanang ea limathi.
- Bonolo ba ho eketsa mesebetsi.
- Tharollo e bonolo ea likhohlano.
- Sistimi ea ts'ireletso e tšepahalang.
▍Mefokolo ea GitLab CI/CD
- Bakeng sa mosebetsi o mong le o mong, o hloka ho hlalosa le ho kenya / ho theola lintho tsa khale.
- U ke ke ua leka liphetho tsa ho kopanya makala pele u a kopanya.
- Ha ho hlalosoa mekhahlelo ea liphaephe tsa CI / CD, ha ho e-s'o khonehe ho khetholla mekhahlelo ka bomong.
Liphello
Jenkins le GitLab CI/CD ka bobeli li na le matla le mefokolo. Karabo ea potso ea hore na u khetha eng e itšetlehile ka litlhoko le litšobotsi tsa morero o itseng. E 'ngoe le e' ngoe ea lisebelisoa tsa CI / CD tse tšohloang kajeno li fapane ka likarolo tse itseng, le hoja lisebelisoa tsena li entsoe ho rarolla bothata bo tšoanang. Ka nako e ts'oanang, Jenkins ke sesebelisoa se ikemetseng, 'me GitLab CI/CD ke karolo ea sethala se etselitsoeng tšebelisano ka khoutu.
Ha u khetha tsamaiso ea CI / CD, ho phaella ho bokhoni ba eona, ho bohlokoa ho ela hloko litšenyehelo tse ka 'nang tsa amahanngoa le eona, le hore na hantle-ntle lienjiniere tsa DevOps tse tšehetsang morero li sebelisetsoa ho sebetsa le eng.
U sebelisa lisebelisoa life tsa CI/CD?
Source: www.habr.com