Malumot: Uzluksiz integratsiya jarayoni qanday ishlaydi

Bugun biz atamaning tarixini ko'rib chiqamiz, CIni amalga oshirishdagi qiyinchiliklarni muhokama qilamiz va u bilan ishlashga yordam beradigan bir nechta mashhur vositalarni taqdim etamiz.

Malumot: Uzluksiz integratsiya jarayoni qanday ishlaydi
/Flickr/ Altug Karakoch / CC BY / Surat o'zgartirildi

muddat

Uzluksiz integratsiya - bu tez-tez loyihalarni qurish va kod sinovlarini o'z ichiga olgan ilovalarni ishlab chiqishga yondashuv.

Maqsad integratsiya jarayonini oldindan aytib bo'ladigan qilish va yuzaga kelishi mumkin bo'lgan xato va xatolarni dastlabki bosqichda aniqlash, shuning uchun ularni tuzatish uchun ko'proq vaqt bor.

Uzluksiz integratsiya atamasi birinchi marta 1991 yilda paydo bo'lgan. UML tilini yaratuvchisi tomonidan kiritilgan Gredi Butch (Greydi Buch). Muhandis CI kontseptsiyasini o'zining rivojlanish amaliyotining bir qismi sifatida kiritdi - Booch usuli. Bu ob'ektga yo'naltirilgan tizimlarni loyihalashda arxitekturani bosqichma-bosqich takomillashtirishni nazarda tutgan. Gradi uzluksiz integratsiya uchun hech qanday talablarni tavsiflamadi. Ammo keyinchalik uning kitobida "Ob'ektga yo'naltirilgan tahlil va ilovalar bilan loyihalash"U metodologiyaning maqsadi "ichki nashrlarni" chiqarishni tezlashtirish ekanligini aytdi.

История

1996 yilda CI metodologiyani yaratuvchilar tomonidan qabul qilingan ekstremal dasturlash (XP) - Kent Bek (Kent Bek) va Ron Jeffries (Ron Jeffries). Uzluksiz integratsiya ular yondashuvining o'n ikkita asosiy tamoyillaridan biriga aylandi. XP asoschilari CI metodologiyasiga qo'yiladigan talablarga aniqlik kiritishdi va loyihani kuniga bir necha marta qurish zarurligini ta'kidladilar.

2000-yillarning boshlarida Agile Alliance asoschilaridan biri uzluksiz integratsiya metodologiyasini targ'ib qila boshladi. Martin Fauler (Martin Fauler). Uning CI bilan olib borgan tajribalari ushbu sohadagi birinchi dasturiy vosita - CruiseControlni yaratishga olib keldi. Yordamchi dastur Martinning hamkasbi Metyu Foemmel tomonidan yaratilgan.

Asbobdagi qurish tsikli kod bazasidagi o'zgarishlar uchun versiyani boshqarish tizimini vaqti-vaqti bilan tekshiradigan demon sifatida amalga oshiriladi. Yechimni bugun yuklab olish mumkin - bu tarqaladi BSD-ga o'xshash litsenziya ostida.

CI uchun dasturiy ta'minot paydo bo'lishi bilan ko'proq kompaniyalar amaliyotni o'zlashtira boshladilar. Forrester tadqiqotiga ko'ra [5-bet hisobot], 2009 yilda so'rovda qatnashgan ellikta texnologiya kompaniyasining 86 foizi CI usullaridan foydalangan yoki amalga oshirgan.

Bugungi kunda uzluksiz integratsiya amaliyoti turli sohalardagi tashkilotlar tomonidan qo'llaniladi. 2018-yilda yirik bulutli provayder xizmatlar, ta’lim va moliya sohalaridagi kompaniyalarning IT-mutaxassislari o‘rtasida so‘rov o‘tkazdi. Olti ming respondentning 58 foizi o'z ishlarida CI vositalari va tamoyillaridan foydalanishini aytdi.

U qanday ishlaydi

Uzluksiz integratsiya ikkita vositaga asoslanadi: versiyani boshqarish tizimi va CI server. Ikkinchisi jismoniy qurilma yoki bulutli muhitda virtual mashina bo'lishi mumkin. Ishlab chiquvchilar yangi kodni kuniga bir yoki bir necha marta yuklaydilar. CI serveri uni barcha bog'liqliklar bilan avtomatik ravishda nusxalaydi va uni yaratadi. Keyin u integratsiya va birlik testlarini o'tkazadi. Agar testlar muvaffaqiyatli o'tsa, CI tizimi kodni joylashtiradi.

Umumiy jarayon diagrammasi quyidagicha ifodalanishi mumkin:

Malumot: Uzluksiz integratsiya jarayoni qanday ishlaydi

CI metodologiyasi ishlab chiquvchilarga bir qator talablarni qo'yadi:

  • Muammolarni darhol tuzating. Ushbu tamoyil CI ga ekstremal dasturlashdan kelgan. Xatolarni tuzatish ishlab chiquvchilar uchun eng muhim vazifadir.
  • Jarayonlarni avtomatlashtirish. Ishlab chiquvchilar va menejerlar doimiy ravishda integratsiya jarayonida qiyinchiliklarni izlashlari va ularni bartaraf etishlari kerak. Misol uchun, integratsiyada ko'pincha qiyinchilik mavjud chiqadi sinovdan o'tkazish.
  • Iloji boricha tez-tez yig'ilishlarni o'tkazing. Jamoa ishini sinxronlashtirish uchun kuniga bir marta.

Amalga oshirishdagi qiyinchiliklar

Birinchi muammo - yuqori operatsion xarajatlar. Agar kompaniya ochiq CI vositalaridan foydalansa ham (bu haqda keyinroq gaplashamiz), u baribir infratuzilmani qo'llab-quvvatlashga pul sarflashi kerak bo'ladi. Biroq, bulutli texnologiyalar yechim bo'lishi mumkin.

Ular turli o'lchamdagi kompyuter konfiguratsiyalarini yig'ishni soddalashtiradi. Kompaniyaning ortiqcha to'lash faqat foydalaniladigan resurslar uchun, bu esa infratuzilmani tejashga yordam beradi.

So'rovlarga ko'ra [14-bet maqolalar], uzluksiz integratsiya kompaniya xodimlariga yukni oshiradi (hech bo'lmaganda birinchi navbatda). Ular yangi vositalarni o'rganishlari kerak, va hamkasblar har doim ham mashg'ulotlarda yordam bermaydilar. Shuning uchun, siz yo'lda yangi ramkalar va xizmatlar bilan shug'ullanishingiz kerak.

Uchinchi qiyinchilik - avtomatlashtirish bilan bog'liq muammolar. Avtomatlashtirilgan testlar bilan qamrab olinmagan katta miqdordagi eski kodga ega tashkilotlar bu muammoga duch kelishadi. Bu CI to'liq amalga oshirilishidan oldin kod oddiygina qayta yozilishiga olib keladi.

Malumot: Uzluksiz integratsiya jarayoni qanday ishlaydi
/Flickr/ theilr / CC BY-SA

Kim foydalanadi

IT gigantlari metodologiyaning afzalliklarini birinchilardan bo'lib qadrlashdi. Google ispolzet 2000-yillarning oʻrtalaridan boshlab uzluksiz integratsiya. CI qidiruv tizimidagi kechikishlar muammosini hal qilish uchun amalga oshirildi. Doimiy integratsiya muammolarni tezda aniqlash va hal qilishga yordam berdi. Endi CI IT gigantining barcha bo'limlari tomonidan qo'llaniladi.

Doimiy integratsiya kichik kompaniyalarga ham yordam beradi va CI vositalari moliyaviy va sog'liqni saqlash tashkilotlari tomonidan ham qo'llaniladi. Masalan, Morningstar-da uzluksiz integratsiya xizmatlari zaifliklarni 70% tezroq tuzatishga yordam berdi. Flibs Healthcare tibbiy platformasi esa yangilanishlarni sinovdan o‘tkazish tezligini ikki baravar oshirishga muvaffaq bo‘ldi.

asboblar

CI uchun ba'zi mashhur vositalar:

  • Jenkins eng mashhur CI tizimlaridan biridir. Turli VCS, bulutli platformalar va boshqa xizmatlar bilan integratsiya qilish uchun mingdan ortiq plaginlarni qo'llab-quvvatlaydi. Biz Jenkins-dan 1cloud: tool-dan ham foydalanamiz bizning DevOps tizimimizga kiritilgan. U muntazam ravishda sinov uchun mo'ljallangan Git filialini tekshiradi.
  • Buildbot - o'zingizning uzluksiz integratsiya jarayonlaringizni yozish uchun python ramkasi. Asbobni dastlabki sozlash juda murakkab, ammo bu keng xususiylashtirish imkoniyatlari bilan qoplanadi. Ramkaning afzalliklari orasida foydalanuvchilar uning past resurs intensivligini ta'kidlashadi.
  • Konkurs CI Docker konteynerlaridan foydalanadigan Pivotal serveridir. Concourse CI har qanday vositalar va versiyalarni boshqarish tizimlari bilan integratsiyalashgan. Ishlab chiquvchilar tizim har qanday o'lchamdagi kompaniyalarda ishlash uchun mos ekanligini ta'kidlashadi.
  • Gitlab CI GitLab versiyasini boshqarish tizimiga o'rnatilgan vositadir. Xizmat bulutda ishlaydi va sozlash uchun YAML fayllaridan foydalanadi. Concourse kabi, Gitlab CI amal qiladi Turli jarayonlarni bir-biridan ajratishga yordam beruvchi docker konteynerlari.
  • Kodlash GitHub, GitLab va BitBucket bilan ishlaydigan bulutli CI serveridir. Platforma uzoq dastlabki sozlashni talab qilmaydi - Codeship-da standart oldindan o'rnatilgan CI jarayonlari mavjud. Kichik (oyiga 100 tagacha) va ochiq kodli loyihalar uchun Codeship bepul mavjud.

Bizning korporativ blogimiz materiallari:

Manba: www.habr.com

a Izoh qo'shish