İstinad: Davamlı İnteqrasiya prosesi necə işləyir

Bu gün biz terminin tarixinə baxacağıq, CI-nin tətbiqi ilə bağlı çətinlikləri müzakirə edəcəyik və onunla işləməyinizə kömək edəcək bir neçə məşhur aləti təqdim edəcəyik.

İstinad: Davamlı İnteqrasiya prosesi necə işləyir
/flickr/ Altuğ Karakoç / CC BY / Şəkil dəyişdirildi

Müddət

Davamlı İnteqrasiya tez-tez layihələrin qurulmasını və kodun sınaqdan keçirilməsini əhatə edən proqramların inkişafına yanaşmadır.

Məqsəd inteqrasiya prosesini proqnozlaşdırıla bilən etmək və potensial səhvləri və səhvləri ilkin mərhələdə aşkar etməkdir ki, onları düzəltmək üçün daha çox vaxt olsun.

Davamlı İnteqrasiya termini ilk dəfə 1991-ci ildə ortaya çıxdı. UML dilinin yaradıcısı tərəfindən təqdim edilmişdir Gradi Butch (Qreydi Buş). Mühəndis CI konsepsiyasını öz inkişaf təcrübəsinin bir hissəsi kimi təqdim etdi - Booch üsulu. Bu, obyekt yönümlü sistemlərin layihələndirilməsi zamanı arxitekturanın tədricən təkmilləşdirilməsi demək idi. Gradi davamlı inteqrasiya üçün heç bir tələbi təsvir etməyib. Ancaq daha sonra kitabındaObyekt yönümlü təhlil və tətbiqlərlə dizayno, texnikanın məqsədinin "daxili buraxılışların" buraxılmasını sürətləndirmək olduğunu söylədi.

Hekayə

1996-cı ildə CI metodologiyanın yaradıcıları tərəfindən qəbul edilmişdir ekstremal proqramlaşdırma (XP) - Kent Beck (Kent Beck) və Ron Jeffries (Ron Jeffries). Davamlı İnteqrasiya onların yanaşmasının on iki əsas prinsipindən birinə çevrilmişdir. XP-nin təsisçiləri CI metodologiyasına olan tələbləri aydınlaşdırdılar və layihənin gündə bir neçə dəfə qurulmasının zəruriliyini qeyd etdilər.

2000-ci illərin əvvəllərində davamlı inteqrasiya metodologiyası Agile Alliance-ın yaradıcılarından biri tərəfindən təşviq edilməyə başlandı. Martin Fowler (Martin Fauler). Onun CI ilə apardığı təcrübələr bu sahədə ilk proqram alətinin - CruiseControl-un yaranmasına səbəb oldu. Utiliti Martinin həmkarı Metyu Foemmel yaradıb.

Alətdəki qurma dövrü kod bazasında dəyişikliklər üçün versiyaya nəzarət sistemini vaxtaşırı yoxlayan bir demon kimi həyata keçirilir. Həll bu gün yüklənə bilər - bu yayılır BSD kimi lisenziya altında.

CI üçün proqram təminatının yaranması ilə getdikcə daha çox şirkət bu təcrübəni mənimsəməyə başladı. Forrester araşdırmasına görə [səh 5 hesabat], 2009-cu ildə sorğuda iştirak edən əlli texnologiya şirkətinin 86%-i CI metodlarından istifadə edib və ya tətbiq edib.

Bu gün Davamlı İnteqrasiya təcrübəsi müxtəlif sənaye sahələrinin təşkilatları tərəfindən istifadə olunur. 2018-ci ildə əsas bulud provayderi xidmət, təhsil və maliyyə sektorlarından olan şirkətlərin İT mütəxəssisləri arasında sorğu keçirib. Altı min respondentin 58%-i cavab verdi ki, onlar öz işlərində CI alətləri və prinsiplərindən istifadə edirlər.

Bu necə işləyir

Davamlı inteqrasiyanın əsasını iki alət təşkil edir - versiyaya nəzarət sistemi və CI server. Sonuncu ya fiziki cihaz, ya da bulud mühitində virtual maşın ola bilər. Tərtibatçılar gündə bir və ya bir neçə dəfə yeni kodu yükləyirlər. CI server onu avtomatik olaraq bütün asılılıqlarla kopyalayır və qurur. Sonra - inteqrasiya və vahid testlərini həyata keçirir. Testlər uğurla keçərsə, CI sistemi kodu yerləşdirir.

Prosesin ümumi sxemi aşağıdakı kimi təqdim edilə bilər:

İstinad: Davamlı İnteqrasiya prosesi necə işləyir

CI metodologiyası tərtibatçılara bir sıra tələblər qoyur:

  • Problemləri dərhal həll edin. Bu prinsip CI-yə Extreme Programming-dən gəldi. Səhvləri düzəltmək tərtibatçılar üçün əsas prioritetdir.
  • Prosesləri avtomatlaşdırın. Tərtibatçılar və menecerlər daim inteqrasiya prosesində “darboğazlar” axtarmalı və onları aradan qaldırmalıdırlar. Məsələn, tez-tez inteqrasiyanın "darboğazı" çıxır sınaq.
  • Mümkün qədər tez-tez tikin. Komandanı sinxronlaşdırmaq üçün gündə bir dəfə.

İcra çətinlikləri

Birinci problem yüksək əməliyyat xərcləridir. Şirkət açıq CI alətlərindən istifadə etsə belə (bu barədə daha sonra danışacağıq), yenə də infrastrukturun saxlanmasına pul xərcləməlidir. Ancaq bulud həll yolu ola bilər.

Onlar çox miqyaslı kompüter konfiqurasiyalarının yığılmasını sadələşdirir. Şirkət plus ödənilir yalnız istifadə olunan resurslar üçün, bu da infrastruktura qənaət etməyə kömək edir.

Sorğular [s.14 Məqalə], davamlı inteqrasiya şirkət işçilərinin üzərinə düşən yükü artırır (ən azı əvvəlcə). Onlar yeni alətlər öyrənməlidirlər və həmkarları həmişə öyrənməyə kömək etmirlər. Buna görə də, yolda yeni çərçivələr və xidmətlərlə məşğul olmalısınız.

Üçüncü çətinlik avtomatlaşdırma ilə bağlı problemlərdir. Bu, avtomatlaşdırılmış testlərlə əhatə olunmayan çoxlu sayda köhnə kodu olan təşkilatlarla qarşılaşır. Bu, kodun CI-nin tam tətbiqindən əvvəl sadəcə yenidən yazılmasına səbəb olur.

İstinad: Davamlı İnteqrasiya prosesi necə işləyir
/flickr/ quyruqçu / CC BY-SA

Kim istifadə edir

İT nəhəngləri texnikanın üstünlüklərini qiymətləndirənlər arasında idi. Google istifadə edir 2000-ci illərin ortalarından bəri davamlı inteqrasiya. CI, axtarış sistemindəki gecikmələrlə bağlı problemi həll etmək üçün təqdim edildi. Davamlı inteqrasiya problemləri tez aşkar etməyə və həll etməyə kömək etdi. İndi CI İT nəhənginin bütün şöbələri tərəfindən istifadə olunur.

Davamlı inteqrasiya kiçik şirkətlərə də kömək edir, maliyyə və tibb təşkilatları da CI alətlərindən istifadə edirlər. Məsələn, Morningstar-da davamlı inteqrasiya xidmətləri zəiflikləri 70% daha sürətli düzəltməyə kömək etdi. Və Philips Healthcare tibbi platforması sınaq yeniləmələrinin sürətini iki dəfə artıra bildi.

Tools

Budur bəzi məşhur CI alətləri:

  • Jenkins ən məşhur CI sistemlərindən biridir. Müxtəlif VCS, bulud platformaları və digər xidmətlərlə inteqrasiya üçün mindən çox plaqini dəstəkləyir. Biz Jenkins-dən 1cloud-da da istifadə edirik: alət DevOps sistemimizin bir hissəsidir. Test üçün nəzərdə tutulmuş Git filialını mütəmadi olaraq yoxlayır.
  • buildbot - öz davamlı inteqrasiya proseslərinizi yazmaq üçün python çərçivəsi. Alətin ilkin quraşdırılması olduqca mürəkkəbdir, lakin bu, geniş çeşidli fərdiləşdirmə seçimləri ilə kompensasiya olunur. Çərçivənin üstünlükləri arasında istifadəçilər onun aşağı resurs istehlakını vurğulayırlar.
  • Konkurs CI Docker konteynerlərindən istifadə edən Pivotal serveridir. Concourse CI istənilən versiyaya nəzarət alətləri və sistemləri ilə inteqrasiya edir. Tərtibatçılar qeyd edirlər ki, sistem istənilən ölçülü şirkətlərdə işləmək üçün uyğundur.
  • Gitlab CI GitLab versiyaya nəzarət sistemində quraşdırılmış alətdir. Xidmət buludda işləyir və konfiqurasiya üçün YAML fayllarından istifadə edir. Concourse kimi, Gitlab CI tətbiq edilir Müxtəlif prosesləri bir-birindən təcrid etməyə kömək edən Docker konteynerləri.
  • Kodlaşdırma GitHub, GitLab və BitBucket ilə işləyən bulud CI serveridir. Platforma uzun ilkin quraşdırma tələb etmir - standart əvvəlcədən quraşdırılmış CI prosesləri Codeship-də mövcuddur. Kiçik (ayda 100-ə qədər quraşdırma) və açıq mənbəli layihələr üçün Codeship pulsuz olaraq mövcuddur.

Korporativ bloqumuzdan materiallar:

Mənbə: www.habr.com

Добавить комментарий