Анықтама: Үздіксіз интеграция процесі қалай жұмыс істейді

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

Анықтама: Үздіксіз интеграция процесі қалай жұмыс істейді
/flickr/ Алтуғ Қаракөч / CC BY / Фото өзгертілген

Термин

Үздіксіз интеграция – жобаны жиі құрастыруды және кодты тестілеуді қамтитын қолданбаларды әзірлеу тәсілі.

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

Үздіксіз интеграция термині алғаш рет 1991 жылы пайда болды. Оны UML тілін жасаушы енгізген Греди Батч (Греди Буч). Инженер CI тұжырымдамасын өзінің даму тәжірибесінің бөлігі ретінде енгізді - Буш әдісі. Ол объектілі-бағытталған жүйелерді жобалау кезінде архитектураны біртіндеп нақтылауды білдіреді. Gradi үздіксіз интеграцияға қойылатын талаптарды сипаттамады. Бірақ кейінірек оның кітабында «Объектіге бағытталған талдау және қолданбалы дизайн«Ол әдістеменің мақсаты «ішкі шығарылымдарды» шығаруды жеделдету екенін айтты.

История

1996 жылы CI әдістемесін жасаушылар қабылдады экстремалды бағдарламалау (XP) - Кент Бек (Кент Бек) және Рон Джеффрис (Рон Джеффрис). Үздіксіз интеграция олардың көзқарасының он екі негізгі қағидасының біріне айналды. XP негізін қалаушылар CI әдістемесіне қойылатын талаптарды түсіндіріп, жобаны күніне бірнеше рет құру қажеттігін атап өтті.

2000 жылдардың басында Agile Alliance негізін қалаушылардың бірі үздіксіз интеграциялық әдістемені алға жылжыта бастады. Мартин Фаулер (Мартин Фаулер). Оның CI-мен жүргізген тәжірибелері осы саладағы алғашқы бағдарламалық құрал – CruiseControl-ге әкелді. Бұл қызметтік бағдарламаны Мартиннің әріптесі Мэттью Фоэммель жасаған.

Құралдағы құрастыру циклі код базасындағы өзгерістерге нұсқаны басқару жүйесін мерзімді түрде тексеретін демон ретінде жүзеге асырылады. Шешімді бүгін жүктеп алуға болады - бұл таралады BSD тәрізді лицензия бойынша.

CI бағдарламалық жасақтамасының пайда болуымен көбірек компаниялар тәжірибені қолдана бастады. Форрестердің зерттеуі бойынша [5-бет есеп], 2009 жылы сауалнамаға қатысқан елу технологиялық компанияның 86%-ы CI әдістерін пайдаланды немесе енгізді.

Бүгінгі таңда Үздіксіз интеграция тәжірибесін әртүрлі салалардағы ұйымдар қолданады. 2018 жылы ірі бұлттық провайдер қызмет көрсету, білім беру және қаржы секторларындағы компаниялардың IT мамандары арасында сауалнама жүргізді. Алты мың респонденттің 58%-ы өз жұмысында CI құралдары мен принциптерін қолданатынын айтты.

Бұл қалай жұмыс істейді

Үздіксіз интеграция екі құралға негізделген: нұсқаларды басқару жүйесі және CI сервері. Соңғысы физикалық құрылғы немесе бұлттық ортадағы виртуалды машина болуы мүмкін. Әзірлеушілер жаңа кодты күніне бір немесе бірнеше рет жүктеп салады. CI сервері оны барлық тәуелділіктермен автоматты түрде көшіреді және оны құрастырады. Содан кейін ол интеграция мен бірлік сынақтарын жүргізеді. Егер сынақтар сәтті өтсе, CI жүйесі кодты орналастырады.

Жалпы процесс диаграммасын келесідей көрсетуге болады:

Анықтама: Үздіксіз интеграция процесі қалай жұмыс істейді

CI әдістемесі әзірлеушілерге бірқатар талаптар қояды:

  • Мәселелерді дереу түзетіңіз. Бұл принцип CI-ге экстремалды бағдарламалаудан келді. Қателерді түзету - әзірлеушілердің ең басты міндеті.
  • Процестерді автоматтандыру. Әзірлеушілер мен менеджерлер интеграция процесіндегі кедергілерді үнемі іздеп, оларды жоюы керек. Мысалы, интеграцияда жиі тығырыққа тіреледі шығады тестілеу.
  • Жиындарды мүмкіндігінше жиі өткізіңіз. Топ жұмысын синхрондау үшін күніне бір рет.

Іске асырудағы қиындықтар

Бірінші мәселе - жоғары операциялық шығындар. Компания ашық CI құралдарын пайдаланса да (бұл туралы кейінірек айтатын боламыз), ол әлі де инфрақұрылымды қолдауға ақша жұмсауға мәжбүр болады. Дегенмен, бұлтты технологиялар шешім болуы мүмкін.

Олар әртүрлі масштабтағы компьютерлік конфигурацияларды құрастыруды жеңілдетеді. Компанияның плюс төленеді тек инфрақұрылымды үнемдеуге көмектесетін пайдаланылатын ресурстар үшін.

Сауалнамаларға сәйкес [14-бет мақалалар], үздіксіз интеграция компания қызметкерлеріне жүктемені арттырады (кем дегенде алдымен). Олар жаңа құралдарды үйренуі керек, ал әріптестер әрқашан оқытуға көмектеспейді. Сондықтан сіз жаңа құрылымдармен және қызметтермен шұғыл түрде айналысуыңыз керек.

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

Анықтама: Үздіксіз интеграция процесі қалай жұмыс істейді
/flickr/ олар / CC BY-SA

Кім пайдаланады

Әдістеменің артықшылықтарын алғашқылардың бірі болып IT алыптары бағалады. Google пайдаланады 2000 жылдардың ортасынан бастап үздіксіз интеграция. CI іздеу жүйесіндегі кешігулер мәселесін шешу үшін енгізілді. Үздіксіз интеграция проблемаларды жылдам анықтауға және шешуге көмектесті. Қазір CI-ді IT гигантының барлық бөлімшелері қолданады.

Үздіксіз интеграция шағын компанияларға да көмектеседі, ал CI құралдарын қаржы және денсаулық сақтау ұйымдары да пайдаланады. Мысалы, Morningstar-да үздіксіз интеграция қызметтері осалдықтарды 70% жылдам түзетуге көмектесті. Ал Philips Healthcare медициналық платформасы жаңартуларды тестілеу жылдамдығын екі есе арттыра алды.

Құралдар

Міне, CI үшін кейбір танымал құралдар:

  • Дженкинс ең танымал CI жүйелерінің бірі болып табылады. Ол әртүрлі VCS, бұлттық платформалар және басқа қызметтермен біріктіру үшін мыңнан астам плагиндерді қолдайды. Біз Дженкинсті 1cloud: құралында да қолданамыз біздің DevOps жүйесіне енгізілген. Ол тестілеуге арналған Git филиалын үнемі тексереді.
  • Buildbot — өзіңіздің үздіксіз интеграциялық процестеріңізді жазуға арналған питон негізі. Құралды бастапқы орнату өте күрделі, бірақ бұл кең теңшеу опцияларымен өтеледі. Жүйенің артықшылықтарының арасында пайдаланушылар оның төмен ресурс қарқындылығын атап өтеді.
  • Конкурс CI Docker контейнерлерін пайдаланатын Pivotal сервері. Concourse CI кез келген құралдармен және нұсқаларды басқару жүйелерімен біріктірілген. Әзірлеушілер жүйенің кез келген көлемдегі компанияларда жұмыс істеуге жарамды екенін атап өтеді.
  • Gitlab CI GitLab нұсқасын басқару жүйесіне енгізілген құрал. Қызмет бұлтта жұмыс істейді және конфигурациялау үшін YAML файлдарын пайдаланады. Concourse сияқты, Gitlab CI қолданылады Әртүрлі процестерді бір-бірінен оқшаулауға көмектесетін докер контейнерлері.
  • Код GitHub, GitLab және BitBucket бағдарламаларымен жұмыс істейтін бұлттық CI сервері. Платформа ұзақ бастапқы орнатуды қажет етпейді - стандартты алдын ала орнатылған CI процестері Codeship жүйесінде қол жетімді. Шағын (айына 100 құрастыруға дейін) және ашық бастапқы жобалар үшін Codeship тегін қол жетімді.

Біздің корпоративтік блогтағы материалдар:

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

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