Акыркы он жылдын ичинде үзгүлтүксүз интеграция (CI) жана үзгүлтүксүз жайылтуу (CD) куралдарын өнүктүрүүдө олуттуу ийгиликтерге жетишилди. Программалык камсыздоону иштеп чыгууну жана эксплуатациялоону интеграциялоо үчүн технологиялардын өнүгүшү (Development Operations, DevOps) CI/CD куралдарына суроо-талаптын тез өсүшүнө алып келди. Учурдагы чечимдер тынымсыз өркүндөтүлүп, мезгил менен бирге болууга аракет кылып, жаңы версиялар чыгарылып, программалык камсыздоонун сапатын камсыздоо (QA) дүйнөсүндө көптөгөн жаңы өнүмдөр тынымсыз пайда болууда. Мындай тандоо байлыгы менен туура шаймандарды тандоо оңой иш эмес.
Учурдагы бардык CI/CD куралдарынын арасында бул чөйрөдө бир нерсе издеп жаткандар үчүн сөзсүз көңүл бура турган эки долбоор бар. Биз Дженкинс жана GitLab платформасынын бир бөлүгү болгон GitLab CI/CD куралы жөнүндө сөз болуп жатат. Дженкинс андан көп
Мисалы, G2 платформасынын маалыматтарын алалы, анда ар кандай өнүмдөрдүн сын-пикирлерин жана колдонуучулар аларга берген рейтингдерин топтоо. Бул жерде орточо баа болуп саналат
Башка ушул сыяктуу платформаларга салыштырмалуу Дженкинстин популярдуулугу жөнүндө айтсак, Travis CI жана Jenkins платформаларын салыштырган макаланы жарыялагандан кийин биз сурамжылоо уюштурганыбызды белгилейбиз. Ага 85 колдонуучу катышты. Респонденттерден өздөрүнө эң жаккан CI/CD куралын тандоо сунушталды. 79%ы Дженкинсти, 5%ы Travis CIди, ал эми 16%ы башка инструменттерди тандаган.
Сурамжылоо жыйынтыгы
Башка CI/CD куралдарынын арасында GitLab CI/CD көбүнчө айтылган.
Эгер сиз DevOps жөнүндө олуттуу болсоңуз, анда долбоордун өзгөчөлүктөрүн, анын бюджетин жана башка талаптарды эске алуу менен тиешелүү куралдарды кылдаттык менен тандап алышыңыз керек. Туура тандоо жасоого жардам берүү үчүн, биз Jenkins жана GitLab CI/CD талдоо жүргүзөбүз. Бул, мен ишенем, туура тандоо жасоого жардам берет.
Дженкинс менен тааныштыруу
Jenkins иштеп чыгуучулары Kubernetes чөйрөсүндө иштөө үчүн иштелип чыккан Jenkins X аттуу дагы бир долбоорду түзүштү. Jenkins X Helm, Jenkins CI/CD Server, Kubernetes жана DevOps мыкты тажрыйбаларына ылайык CI/CD түтүктөрүн курууга арналган башка куралдарды бириктирет. Мисалы, GitOps бул жерде колдонулат.
Дженкинстин артыкчылыктарынын бири, анын сценарийлери абдан жакшы структураланган, түшүнүктүү жана окууга оңой. Дженкинс командасы 1000ге жакын плагиндерди түздү, алар Дженкинстин ар кандай технологиялар менен өз ара аракеттенүүсүн уюштурууга багытталган. Скрипттерде аутентификация системаларын колдоно аласыз, алар, мисалы, ар кандай жабык системаларга кошулууга мүмкүндүк берет.
Дженкинс куурун эксплуатациялоодо сиз ар бир кадамда эмне болуп жатканын, иштин айрым этаптары ийгиликтүү аяктаганбы же жокпу, байкай аласыз. Мунун баарын сиз кандайдыр бир графикалык интерфейстин жардамы менен эмес, терминалдын мүмкүнчүлүктөрүн колдонуу менен байкай аласыз.
Дженкинс өзгөчөлүктөрү
Женкинстин белгилүү өзгөчөлүктөрүнүн арасында конфигурациянын жеңилдиги, ар кандай операцияларды автоматташтыруунун жогорку деңгээли жана эң сонун документация бар. Эгерде биз DevOps көйгөйлөрүн чечүү жөнүндө сөз кыла турган болсок, анда Дженкинс абдан ишенимдүү курал болуп эсептелет, аны колдонуу менен, эреже катары, долбоордун бардык процессине кылдат байкоо жүргүзүүнүн мааниси жок. Бул башка CI/CD куралдарында эмес. Келгиле, Дженкинстин эң маанилүү өзгөчөлүктөрүнө токтололу.
▍1. Акысыз, ачык булак, көп платформа колдоого алынат
Дженкинс macOS, Windows жана Linux платформаларында иштей алат. Ал ошондой эле Docker чөйрөсүндө иштей алат, бул автоматташтырылган тапшырмаларды бирдиктүү жана тез уюштурууга мүмкүндүк берет. Курал ошондой эле Apache Tomcat жана GlassFish сыяктуу Java иштетилген контейнерлерде сервлет катары иштей алат. Jenkinsти натыйжалуу орнотуу
▍2. Иштелип чыккан плагин экосистемасы
Jenkins плагининин экосистемасы башка CI/CD куралдарынын плагин экосистемаларына салыштырмалуу алда канча жетилген окшойт. Учурда Jenkins үчүн 1500дөн ашык плагиндер бар. Бул плагиндер көйгөйлөрдүн кеңири спектрин чечүүгө багытталган; алардын жардамы менен сиз ар кандай долбоорлорду автоматташтыра аласыз. Тандоо үчүн бекер плагиндердин байлыгы Дженкинсти колдонгондордун баары кымбат акы төлөнүүчү плагиндерди сатып алуунун зарылчылыгы жок экенин билдирет. Мүмкүнчүлүгү бар
▍3. Оңой орнотуу жана орнотуу
Дженкинсти орнотуу жана конфигурациялоо оңой. Ошол эле учурда системаны жаңылоо процесси да абдан ыңгайлуу. Бул жерде, дагы бир жолу, документтин сапатын айта кетүү керек, анткени ал Дженкинсти орнотууга жана конфигурациялоого байланыштуу ар кандай суроолорго жооп бере алат.
▍4. Достук коомчулук
Жогоруда айтылгандай, Дженкинс бул ачык булак долбоору, анын экосистемасы көптөгөн плагиндерди камтыйт. Дженкинстин айланасында долбоорду иштеп чыгууга жардам берген колдонуучулардын жана иштеп чыгуучулардын чоң коомчулугу бар. Коомчулук - Дженкинстин өнүгүүсүнө түрткү берген факторлордун бири.
▍5. REST API болушу
Дженкинс менен иштөөдө сиз REST API колдоно аласыз, ал системанын мүмкүнчүлүктөрүн кеңейтет. Системага алыстан кирүү үчүн API үч версияда берилген: XML, JSONP колдоосу менен JSON, Python.
▍6. Параллель тапшырманы колдоо
Дженкинс DevOps тапшырмаларын параллелдештирүүнү колдойт. Аны тиешелүү куралдар менен оңой бириктирип, тапшырманын натыйжалары жөнүндө эскертмелерди алса болот. Код тестирлөө ар кандай виртуалдык машиналарды колдонуу менен параллелдүү долбоорлорду уюштуруу менен тездетилиши мүмкүн.
▍7. Бөлүштүрүлгөн чөйрөлөрдө иштөө үчүн колдоо
Дженкинс бир нече компьютерлерди колдонуу менен бөлүштүрүлгөн курулуштарды уюштурууга мүмкүндүк берет. Бул өзгөчөлүк ири долбоорлордо колдонулат жана бир негизги Дженкинс сервери жана бир нече кул машиналары бар иш схемасын колдонот. Кул машиналарды ар кандай чөйрөдө долбоордун тестирлөөсүн уюштуруу зарыл болгон учурларда да колдонсо болот. Бул өзгөчөлүктөр Дженкинсти башка ушул сыяктуу долбоорлордон айырмалап турат.
GitLab менен тааныштыруу
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
, Jekyll колдонгон.
▍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 салыштыруу
Jenkins жана GitLab CI/CD абдан жакшы инструменттер болуп саналат, алардын ар бири CI/CD түтүкчөсүнүн нормалдуу иштешин камсыз кылууга жөндөмдүү. Бирок, аларды салыштырып көрсөк, алар көп жагынан окшош болгону менен, кандайдыр бир жагынан бири-биринен айырмаланат экен.
өзгөчөлүк
Jenkins
GitLab CI/CD
Ачык же жабык булак
Ачык булак
Ачык булак
жөндөө
Талап кылынат.
Бул GitLab платформасынын орнотулган өзгөчөлүгү болгондуктан, талап кылынбайт.
Уникалдуу өзгөчөлүктөрү
Плагинди колдоо.
Версияларды башкаруу системасына терең интеграция.
колдоо
Жок.
жеткиликтүү.
Орнотуу жана тарам
Эч кандай кыйынчылык жаратпайт
Эч кандай кыйынчылык жаратпайт
Системаны өз алдынча жайылтуу
Бул системаны колдонуунун жалгыз варианты.
Колдоого алынган.
CI/CD түтүктөрүн түзүү
Jenkins Pipeline тарабынан колдоого алынган жана колдонулган.
Колдоого алынган.
Колдонмонун аткаруу мониторинги
Жок.
жеткиликтүү.
экосистемасын
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 сыяктуу аларды көзөмөлдөө деңгээлин камсыздай албайт.
- Jenkins акысыз, ачык булак долбоору. Аны тандап алган адам өзү ачат. Жана GitLab CI/CD GitLab платформасына киргизилген, бул даяр чечим.
- GitLab CI/CD долбоордун деңгээлинде иштеген өнүккөн маселелерди башкаруу куралдарын колдойт. Дженкинстин бул жагы азыраак өнүккөн.
Дженкинс жана GitLab CI/CD: күчтүү жана алсыз жактары
Эми сизде Дженкинс жана GitLab CI/CD жөнүндө кандайдыр бир түшүнүк бар. Эми, бул куралдар менен дагы жакшыраак таанышуу үчүн, алардын күчтүү жана алсыз жактарын карап көрөлү. Кайсы курал керектиги жөнүндө чечим кабыл алдыңыз деп ишенебиз. Бул бөлүм сизге өзүңүздү сынап көрүүгө мүмкүнчүлүк берет деп ишенем.
▍Женкинстин күчтүү жактары
- Көп сандагы плагиндер.
- Куралды орнотууну толук көзөмөлдөө.
- Жөө күлүктөрдү оңой оңдоо.
- Оңой түйүн орнотуу.
- Оңой кодду жайылтуу.
- Абдан жакшы эсеп башкаруу системасы.
- Ийкемдүүлүк жана ар тараптуулук.
- Ар кандай программалоо тилдерин колдоо.
- Система интуитивдик деңгээлде түшүнүктүү.
▍Jenkins Weaknesses
- Плагиндерди колдонууда кыйынчылыктар пайда болушу мүмкүн.
- Дженкинсти чакан долбоорлордо колдонууда, аны өз алдынча орнотуу үчүн талап кылынган убакыт негизсиз чоң болушу мүмкүн.
- CI/CD чынжырлары боюнча жалпы аналитикалык маалыматтын жоктугу.
▍GitLab CI/CD'нин күчтүү жактары
- Docker менен жакшы интеграция.
- Жөө күлүктөрдү оңой масштабдоо.
- CI/CD куурунун этаптарына кирген тапшырмаларды параллелдүү аткаруу.
- Тапшырма мамилелерди орнотууда багытталган ациклдик график моделин колдонуу.
- Жөө күлүктөрдү параллелдүү аткаруу мүмкүнчүлүгүнөн улам масштабдуулуктун жогорку деңгээли.
- Тапшырмаларды кошуу оңой.
- Жөнөкөй чыр-чатакты чечүү.
- Ишенимдүү коопсуздук системасы.
▍GitLab CI/CDнин алсыз жактары
- Ар бир тапшырма үчүн артефакттарды сүрөттөп, жүктөө/түшүрүшүңүз керек.
- Сиз чындыгында аларды бириктирүү алдында бутактарды бириктирүү натыйжаларын сынай албайсыз.
- CI/CD түтүгүнүн этаптарын сүрөттөп жатып, айрым этаптарды айырмалоо азырынча мүмкүн эмес.
натыйжалары
Jenkins жана GitLab CI/CD экөө тең күчтүү жана алсыз жактары бар. Эмнени тандоо керек деген суроого жооп белгилүү бир долбоордун муктаждыктарына жана өзгөчөлүктөрүнө жараша болот. Бүгүн талкууланган CI/CD куралдарынын ар бири белгилүү бир өзгөчөлүктөрү менен айырмаланат, бирок бул куралдар бир эле маселени чечүү үчүн түзүлгөн. Ошол эле учурда, Дженкинс өз алдынча курал болуп саналат жана GitLab CI/CD код боюнча кызматташуу үчүн иштелип чыккан платформанын бир бөлүгү болуп саналат.
CI/CD тутумун тандоодо, анын мүмкүнчүлүктөрүнөн тышкары, аны менен байланышкан чыгымдарды жана долбоорду колдогон DevOps инженерлери эмне менен иштөөгө көнүшкөнүн эске алуу зарыл.
Кандай CI/CD куралдарын колдоносуз?
Source: www.habr.com