Дженкинс шайқасы және GitLab CI/CD

Соңғы онжылдықта үздіксіз интеграция (Үздіксіз интеграция, CI) және үздіксіз орналастыру (Үздіксіз жеткізу, CD) құралдарын әзірлеуде айтарлықтай жетістіктерге қол жеткізілді. Бағдарламалық жасақтаманы әзірлеу мен пайдалануды біріктіру технологияларының дамуы (Development Operations, DevOps) CI/CD құралдарына сұраныстың тез өсуіне әкелді. Қолданыстағы шешімдер үнемі жетілдірілуде, заман ағымына ілесуге тырысады, олардың жаңа нұсқалары шығарылады, сапаны қамтамасыз ететін бағдарламалық қамтамасыз ету әлемінде (Quality Assurance, QA), көптеген жаңа өнімдер үнемі пайда болады. Таңдаудың мұндай байлығымен дұрыс құралды таңдау оңай емес.

Дженкинс шайқасы және GitLab CI/CD

Барлық қолданыстағы CI / CD құралдарының ішінде осы саладан бірдеңе іздейтін адамға назар аударуға тұрарлық екі жоба бар. Біз Дженкинс және GitLab платформасының бөлігі болып табылатын GitLab CI / CD құралы туралы айтып отырмыз. Дженкинс одан да көп 16000 GitHub-дағы жұлдыздар. gitlab.com сайтындағы GitLab репозиторийі одан да көп ұпай жинады 2000 жұлдыздар. Репозиторийлердің танымалдылығын салыстыратын болсақ, Дженкинс GitLab CI / CD қамтитын платформаға қарағанда 8 есе көп жұлдыз жинады. Бірақ CI / CD құралын таңдағанда, бұл назар аудару керек жалғыз көрсеткіштен алыс. Басқалары да көп және бұл көптеген салыстыруларда Дженкинс пен GitLab CI / CD бір-біріне өте жақын екенін түсіндіреді.

Мысалы, G2 платформасындағы деректерді алайық, онда көптеген өнімдерге шолулар және пайдаланушылар оларға беретін рейтингтер жинақталады. Міне, орташа рейтинг Дженкинс, 288 шолуға негізделген, 4,3 жұлдызды құрайды. Ой ой GitLab 270 шолу бар, бұл құралдың орташа рейтингі 4,4 жұлдызды құрайды. Дженкинс пен GitLab CI / CD бір-бірімен тең шарттарда бәсекелеседі десек қателеспейміз. Бір қызығы, Дженкинс жобасы 2011 жылы пайда болды және содан бері ол тестерлер үшін сүйікті құрал болды. Бірақ сонымен бірге 2014 жылы іске қосылған GitLab CI/CD жобасы осы платформа ұсынатын жетілдірілген мүмкіндіктердің арқасында өте жоғары орын алды.

Егер Дженкинстің басқа ұқсас платформалармен салыстырғанда танымалдығы туралы айтатын болсақ, біз Travis CI және Jenkins платформаларын салыстыратын мақаланы жариялап, сауалнама ұйымдастырғанымызды атап өтеміз. Оған 85 қолданушы қатысты. Респонденттерге ең ұнайтын CI/CD құралын таңдау ұсынылды. 79% Дженкинсті таңдады, 5% Travis CI таңдады және 16% басқа құралдарды таңдады.

Дженкинс шайқасы және GitLab CI/CD
Сауалнама нәтижелерін көру

Басқа CI/CD құралдарының ішінде GitLab CI/CD жиі аталды.

Егер сіз DevOps-қа байыпты болсаңыз, онда жобаның ерекшеліктерін, оның бюджетін және басқа талаптарды ескере отырып, сәйкес құралдарды мұқият таңдауыңыз керек. Сізге дұрыс таңдау жасауға көмектесу үшін біз Дженкинс пен GitLab CI/CD шолу жасаймыз. Бұл дұрыс таңдау жасауға көмектеседі деп үміттенеміз.

Дженкинспен таныстыру

Дженкинс шайқасы және GitLab CI/CD
Дженкинс бағдарламалық жобаларға қатысты көптеген тапсырмаларды автоматтандыруға арналған белгілі, икемді CI/CD құралы. Дженкинс толығымен Java тілінде жазылған және MIT лицензиясы бойынша шығарылған. Оның бағдарламалық жасақтаманы құру, тестілеу, орналастыру, біріктіру және шығарумен байланысты тапсырмаларды автоматтандыруға бағытталған қуатты мүмкіндіктері бар. Бұл құралды әртүрлі операциялық жүйелерде пайдалануға болады. Оларға macOS, Windows және OpenSUSE, Ubuntu және Red Hat сияқты көптеген Linux дистрибутивтері кіреді. Дженкинс үшін әртүрлі операциялық жүйелерге арналған орнату пакеттері бар, бұл құралды Docker жүйесінде және JRE (Java Runtime Environment) бар кез келген жүйеде орнатуға болады.

Дженкинс әзірлеушілері Kubernetes ортасында жұмыс істеуге арналған Jenkins X атты тағы бір жобаны жасады. Jenkins X Helm, Jenkins CI/CD сервері, Kubernetes және DevOps ең жақсы тәжірибелеріне сай CI/CD конвейерлерін құру үшін басқа құралдарды біріктіреді. Мысалы, мұнда GitOps қолданылады.

Дженкинстің артықшылықтарының қазынасына оның сценарийлері өте жақсы құрылымдалған, түсінікті және оқуға оңай фактісін қосуға болады. Дженкинс командасы Дженкинстің әртүрлі технологиялармен өзара әрекеттесуін ұйымдастыруға бағытталған 1000-ға жуық плагиндер жасады. Сценарийлер аутентификация жүйелерін пайдалана алады, бұл, мысалы, әртүрлі жабық жүйелерге қосылуға мүмкіндік береді.

Дженкинс құбырын пайдалану кезінде сіз әр қадамда не болып жатқанын, жұмыстың белгілі бір кезеңдері сәтті аяқталғанын немесе аяқталмағанын бақылай аласыз. Сіз мұның бәрін белгілі бір графикалық интерфейсті пайдаланбай-ақ, терминалдың мүмкіндіктерін пайдалана отырып көре аласыз.

Дженкинстің ерекшеліктері

Дженкинстің белгілі ерекшеліктерінің бірі - орнатудың қарапайымдылығы, әртүрлі операцияларды автоматтандырудың жоғары деңгейі және тамаша құжаттама. Егер DevOps тапсырмаларын шешу туралы айтатын болсақ, онда Дженкинс өте сенімді құрал болып саналады, оның көмегімен, әдетте, жобаны өңдеудің бүкіл процесін мұқият бақылаудың мағынасы жоқ. Бұл басқа CI/CD құралдарына қатысты емес. Дженкинстің кейбір маңызды ерекшеліктері туралы сөйлесейік.

▍1. Тегін, ашық бастапқы коды, көп платформалық қолдау

Дженкинс macOS, Windows және Linux платформаларында жұмыс істей алады. Ол автоматтандырылған тапсырмалардың біркелкі және жылдам орындалуын ұйымдастыруға мүмкіндік беретін Docker ортасында да жұмыс істей алады. Бұл құрал сонымен қатар Apache Tomcat және GlassFish сияқты Java қосылған контейнерлерде сервлет ретінде жұмыс істей алады. Дженкинсті сапалы орнату құжатталған.

▍2. Әзірленген плагин экожүйесі

Jenkins плагинінің экожүйесі басқа CI/CD құралдарының плагиндер экожүйелеріне қарағанда әлдеқайда жетілген сияқты. Қазіргі уақытта Дженкинс үшін 1500-ден астам плагиндер бар. Бұл плагиндер тапсырмалардың кең ауқымын шешуге бағытталған, олардың көмегімен әртүрлі жобаларды автоматтандыруға болады. Таңдау үшін тегін плагиндердің байлығы, егер сіз Jenkins пайдалансаңыз, қымбат ақылы плагиндерді сатып алудың қажеті жоқ дегенді білдіреді. Мүмкіндік бар интеграция Көптеген DevOps құралдары бар Дженкинс.

▍3. Оңай орнату және орнату

Дженкинсті орнату және конфигурациялау өте оңай. Сонымен қатар, жүйені жаңарту процесі де өте ыңғайлы. Мұнда тағы да құжаттаманың сапасын атап өткен жөн, өйткені одан Дженкинсті орнату және конфигурациялауға қатысты әртүрлі сұрақтарға жауап табуға болады.

▍4. Достық қауым

Жоғарыда айтылғандай, Дженкинс - бұл ашық бастапқы жоба, оның экожүйесі көптеген плагиндерді қамтиды. Жобаны дамытуға көмектесу үшін Дженкинстің айналасында пайдаланушылар мен әзірлеушілердің үлкен қауымдастығы құрылды. Қоғамдастық Дженкинстің дамуына түрткі болатын факторлардың бірі болып табылады.

▍5. REST API қолжетімділігі

Дженкинспен жұмыс істеу барысында жүйенің мүмкіндіктерін кеңейтетін REST API пайдалануға болады. Жүйеге қашықтан қол жеткізуге арналған API үш нұсқада ұсынылған: XML, JSONP қолдауымен JSON, Python. осында Jenkins REST API интерфейсімен жұмыс істеу туралы мәліметтерді қамтитын құжаттама беті.

▍6. Тапсырмаларды параллель орындауды қолдау

Дженкинс DevOps тапсырмаларының параллелизациясын қолдайды. Оны тиісті құралдармен оңай біріктіруге және тапсырмалардың нәтижелері туралы хабарландыруларды алуға болады. Әр түрлі виртуалды машиналарды пайдалана отырып, жобаның параллель құрастыруын ұйымдастыру арқылы кодты тестілеуді жеделдетуге болады.

▍7. Бөлінген орталардағы жұмысты қолдау

Дженкинс бірнеше компьютерлер арқылы бөлінген құрастыруларды ұйымдастыруға мүмкіндік береді. Бұл мүмкіндік үлкен жобаларда қолданылады және жұмыс схемасын пайдаланады, оған сәйкес бір Дженкинс сервері және бірнеше қосалқы машиналар бар. Құлдық машиналарды әртүрлі орталарда жобаны сынауды ұйымдастыру қажет болған жағдайларда да қолдануға болады. Бұл мүмкіндіктер Дженкинсті басқа ұқсас жобалардан ерекшелендіреді.

GitLab бағдарламасына кіріспе

Дженкинс шайқасы және GitLab CI/CD
Gitlab ci / cd ең жаңа және ең сүйікті DevOps құралдарының бірі деп атауға болады. Бұл тегін ашық бастапқы құрал GitLab нұсқасын басқару жүйесіне енгізілген. GitLab платформасында қауымдастық нұсқасы бар, ол репозиторийлерді басқаруды, мәселені бақылау құралдарын, кодты қарауды ұйымдастыруды, құжаттамаға бағытталған механизмдерді қолдайды. Компаниялар қауіпсіз пайдаланушы авторизациясы мен аутентификациясы үшін оны Active Directory және LDAP серверлеріне байланыстырып, GitLab бағдарламасын жергілікті түрде орната алады.

осында GitLab CI/CD мүмкіндіктерін пайдаланып CI/CD конвейерлерін жасауды үйренуге көмектесетін бейне оқулық.

GitLab CI/CD бастапқыда дербес жоба ретінде шығарылды, бірақ 2015 жылы бұл құралдар жиынтығы GitLab 8.0-ге біріктірілді. Бір GitLab CI/CD сервері 25000 XNUMX-нан астам пайдаланушыға қолдау көрсете алады. Осындай серверлердің негізінде қол жетімділігі жоғары жүйелерді жасауға болады.

GitLab CI/CD және негізгі GitLab жобасы Ruby және Go тілінде жазылған. Олар MIT лицензиясы бойынша босатылады. GitLab CI/CD, CI/CD құралдарының әдеттегі мүмкіндіктеріне қосымша, сонымен қатар, мысалы, жұмысты жоспарлауға қатысты қосымша мүмкіндіктерді қолдайды.

GitLab CI/CD-ны жобаға біріктіру өте оңай. GitLab CI/CD пайдалану кезінде жоба кодын өңдеу процесі кезеңдерге бөлінеді, олардың әрқайсысы белгілі бір ретпен орындалатын бірнеше тапсырмалардан тұруы мүмкін. Тапсырмаларды дәл реттеуге болады.

Тапсырмалар қатар орындала алады. Кезеңдер мен тапсырмалар тізбегін орнатқаннан кейін CI/CD құбыры жұмыс істеуге дайын. Тапсырмалардың күйін бақылау арқылы оның орындалу барысын бақылауға болады. Нәтижесінде GitLab CI / CD пайдалану өте ыңғайлы, мүмкін басқа ұқсас құралдарға қарағанда ыңғайлы.

GitLab CI/CD және GitLab мүмкіндіктері

GitLab CI/CD - ең танымал DevOps құралдарының бірі. Жоба жоғары сапалы құжаттамамен ерекшеленеді, оның мүмкіндіктерін пайдалану оңай және ыңғайлы. GitLab CI/CD-мен әлі таныс болмасаңыз, осы құрал мүмкіндіктерінің келесі тізімі одан не күтуге болатыны туралы жалпы түсінік береді. Айта кету керек, бұл мүмкіндіктердің көпшілігі GitLab платформасының өзіне қатысты, онда GitLab CI / CD біріктірілген.

▍1. Танымалдық

GitLab CI/CD – кең тараған жаңа құрал. GitLab CI/CD бірте-бірте автоматтандырылған тестілеу және бағдарламалық қамтамасыз етуді орналастыру үшін қолданылатын танымал CI/CD құралына айналды. Оны орнату оңай. Бұл сонымен қатар GitLab платформасына енгізілген тегін CI/CD құралы.

▍2. GitLab беттері мен Jekyll үшін қолдау

Jekyll – GitLab репозиторийлеріне негізделген сайттарды жасау үшін GitLab Pages жүйесінде пайдалануға болатын статикалық сайт генераторы. Жүйе бастапқы материалдарды алады және олардың негізінде дайын статикалық сайтты жасайды. Мұндай сайттардың сыртқы түрін және мүмкіндіктерін файлды өңдеу арқылы басқаруға болады _config.yml, Джекилл қолданған.

▍3. Жобаны жоспарлау мүмкіндіктері

Жобалардың кезеңдерін жоспарлау мүмкіндігінің арқасында проблемаларды және олардың топтарын қадағалау ыңғайлылығы артады. Бұл жобалар бойынша жұмысты ұйымдастыруды басқаруға, оларды белгілі бір күнге іске асыруды жоспарлауға мүмкіндік береді.

▍4. CI жүгіргіштерін автоматты масштабтау

Арнайы тапсырмаларды орындауға жауапты жүгірушілерді автоматты түрде масштабтау арқасында сіз сервер сыйымдылықтарын жалға алу құнын айтарлықтай үнемдей аласыз. Бұл өте маңызды, әсіресе жобалар параллельді түрде сыналатын орталарға қатысты. Бұған қоса, бұл бірнеше репозиторийлерден тұратын ірі жобалар үшін маңызды.

▍5. Мәселелерді бақылау құралдары

GitLab-тың күшті мәселелерді бақылау мүмкіндіктері көптеген ашық бастапқы жобаларды платформаны пайдалануға әкелді. GitLab CI/CD әртүрлі код тармақтарын параллельді тестілеуге мүмкіндік береді. Сынақ нәтижелері жүйе интерфейсінде ыңғайлы түрде талданады. Бұл GitLab CI/CD дискісін Дженкинстен ерекшелейді.

▍6. Репозиторийлерге қол жеткізуді шектеу

GitLab платформасы репозиторийлерге кіруді шектеуді қолдайды. Мысалы, репозиторийдегі жобада бірлесіп жұмыс істейтіндерге олардың рөлдеріне сәйкес рұқсаттар тағайындалуы мүмкін. Бұл әсіресе корпоративтік жобаларға қатысты.

▍7. Қоғамдастықтың белсенді қолдауы

GitLab айналасында белсенді қауымдастық дамыды, ол осы платформаны және оның құралдарын, атап айтқанда, GitLab CI/CD дамытуға ықпал етеді. GitLab CI/CD және GitLab терең интеграциясы, басқалармен қатар, GitLab CI/CD-мен жұмыс істеу кезінде туындайтын сұрақтарға жауап табуды жеңілдетеді.

▍8. Әр түрлі нұсқаларды басқару жүйелерін қолдау

GitLab CI/CD – бұл GitLab репозиторийлерінде орналастырылған кодпен ғана жұмыс істей алатын жүйе. Мысалы, кодты GitHub репозиторийінде сақтауға болады, ал CI/CD құбырын GitLab CI/CD көмегімен GitLab негізінде ұйымдастыруға болады.

Дженкинс пен GitLab CI/CD салыстыру

Дженкинс және GitLab CI/CD өте жақсы құралдар болып табылады, олардың екеуі де CI/CD құбырының біркелкі жұмыс істеуін қамтамасыз ете алады. Бірақ оларды салыстыратын болсақ, олар көп жағынан ұқсас болғанымен, бір-бірінен кейбір жағынан ерекшеленеді екен.

Сипаттамалары
Дженкинс
Gitlab ci / cd

Ашық бастапқы немесе жабық дереккөз
Ашық бастапқы код
Ашық бастапқы код

параметр
Міндетті.
Міндетті емес, себебі бұл GitLab платформасының кірістірілген мүмкіндігі.

Бірегей ерекшеліктері
Плагинді қолдау.
Нұсқаларды басқару жүйесіне терең интеграция.

қолдау
Қол жетімді емес.
Қол жетімді.

Орнату және конфигурация
Қиындықтар тудырмайды
Қиындықтар тудырмайды

Жүйені өздігінен орналастыру
Бұл жүйені пайдаланудың жалғыз жолы.
Қолдау көрсетіледі.

CI/CD құбыржолдарын жасау
Дженкинс құбыр желісі арқылы қолдау көрсетіледі.
Қолдау көрсетіледі.

Қолданбаның өнімділігін бақылау
Қол жетімді емес.
Қол жетімді.

Экожүйе
1000-нан астам плагиндер бар.
Жүйе GitLab ішінде әзірленуде.

API
Жетілдірілген API жүйесін қолдайды.
Жобаларға тереңірек интеграциялау үшін API ұсынады.

JavaScript қолдауы
Қол жетімді.
Қол жетімді.

Басқа құралдармен интеграция
Басқа құралдармен және платформалармен интеграцияға қолдау көрсетіледі (Slack, GitHub).
Үшінші тарап жүйелерімен, атап айтқанда - GitHub және Kubernetes-пен біріктіруге арналған көптеген құралдар.

Код сапасын бақылау
Қолдау көрсетіледі - SonarQube плагинін және басқа плагиндерді пайдалану.
Қолдау көрсетіледі.

Дженкинс пен GitLab CI/CD арасындағы айырмашылықтар

Дженкинс пен GitLab CI/CD сипаттап, салыстыра отырып, осы DevOps құралдарының арасындағы айырмашылықтарға тоқталайық. Бұл айырмашылықтарды білу сізге осы құралдардың бірін екіншісінен артық көретіндерді түсінуге көмектеседі.

  • GitLab CI/CD Git репозиторийлерін толығымен басқара алады. Біз репозиторий тармақтарын басқару және кейбір басқа мүмкіндіктер туралы айтып отырмыз. Бірақ Дженкинс, ол репозиторийлермен жұмыс істей алса да, GitLab CI/CD сияқты оларға бақылау деңгейін бермейді.
  • Дженкинс - бұл ашық бастапқы коды тегін жоба. Оны таңдаған адам оны дербес орналастырады. Ал GitLab CI/CD GitLab платформасына кіреді, бұл кілт тапсырылған шешім.
  • GitLab CI/CD жоба деңгейінде жұмыс істейтін кеңейтілген тапсырмаларды басқару құралдарын қолдайды. Дженкинстің бұл жағы аз дамыған.

Дженкинс және GitLab CI/CD: күшті және әлсіз жақтары

Енді сізде Дженкинс және GitLab CI/CD туралы түсінік бар. Енді осы құралдармен жақсырақ танысу үшін олардың күшті және әлсіз жақтарын қарастырайық. Сізге қандай құрал қажет екенін шешіп қойғансыз деп ойлаймыз. Бұл бөлім өзіңізді сынауға мүмкіндік береді деп үміттенеміз.

▍Дженкинстің күшті жақтары

  • Плагиндердің үлкен саны.
  • Құралды орнатуды толық бақылау.
  • Жүгірушілердің қарапайым күйін келтіру.
  • Оңай түйінді орнату.
  • Оңай кодты орналастыру.
  • Өте жақсы тіркелгі деректерін басқару жүйесі.
  • Икемділік пен әмбебаптық.
  • Әртүрлі бағдарламалау тілдерін қолдау.
  • Жүйе интуитивті деңгейде түсінікті.

▍Дженкинстің әлсіз жақтары

  • Плагиндерді пайдалану қиын болуы мүмкін.
  • Дженкинсті кішігірім жобаларда пайдаланған кезде, оны өзіңіз конфигурациялауға қажет уақыт негізсіз үлкен болуы мүмкін.
  • CI/CD тізбектері бойынша жалпы аналитикалық ақпараттың болмауы.

▍GitLab CI/CD-нің күшті жақтары

  • Docker-пен жақсы интеграция.
  • Жүгірушілерді қарапайым масштабтау.
  • CI/CD құбырының кезеңдерінің бөлігі болып табылатын тапсырмаларды параллель орындау.
  • Тапсырма қатынастарын орнату кезінде бағытталған ациклдік график үлгісін пайдалану.
  • Жүгірушілердің параллель орындалу мүмкіндігіне байланысты масштабтаудың жоғары деңгейі.
  • Тапсырмаларды қосудың қарапайымдылығы.
  • Қарапайым жанжалды шешу.
  • Сенімді қауіпсіздік жүйесі.

▍GitLab CI/CD әлсіз жақтары

  • Әрбір тапсырма үшін артефактілерді сипаттау және жүктеп салу / жүктеп алу қажет.
  • Филиалдарды біріктіру нәтижелерін олар нақты біріктірілмей тұрып тексере алмайсыз.
  • CI / CD құбырының кезеңдерін сипаттағанда, олардағы жеке кезеңдерді бөліп көрсету әлі мүмкін емес.

Нәтижелері

Дженкинс пен GitLab CI/CD екеуінің де күшті және әлсіз жақтары бар. Қандай таңдау керек деген сұраққа жауап белгілі бір жобаның қажеттіліктері мен сипаттамаларына байланысты. Бүгінгі қарастырылған CI/CD құралдарының әрқайсысының белгілі бір мүмкіндіктері бар, бірақ бұл құралдар бірдей мәселені шешу үшін жасалған. Сонымен қатар, Дженкинс дербес құрал болып табылады, ал GitLab CI / CD код бойынша бірлесіп жұмыс істеуге арналған платформаның бөлігі болып табылады.

CI / CD жүйесін таңдағанда, оның мүмкіндіктерінен басқа, онымен байланысты болуы мүмкін шығындарды және жобаны қолдайтын DevOps инженерлері нақты немен жұмыс істеуге үйренгенін ескерген жөн.

Сіз қандай CI/CD құралдарын пайдаланасыз?

Дженкинс шайқасы және GitLab CI/CD

Дженкинс шайқасы және GitLab CI/CD

Ақпарат көзі: www.habr.com

пікір қалдыру