Өнөөдөр бид энэ нэр томъёоны түүхийг судалж, CI-г хэрэгжүүлэхэд тулгарч буй бэрхшээлүүдийн талаар ярилцаж, түүнтэй ажиллахад туслах хэд хэдэн алдартай хэрэгслийг өгөх болно.
/flickr/
Нэр томъёо
Тасралтгүй интеграци нь төсөл боловсруулах, кодын туршилтыг байнга хийдэг програм хөгжүүлэх арга юм.
Зорилго нь интеграцийн үйл явцыг урьдчилан таамаглах боломжтой болгох, болзошгүй алдаа, алдааг эрт үе шатанд илрүүлэх, ингэснээр тэдгээрийг засахад илүү их цаг зарцуулах явдал юм.
Тасралтгүй интеграци гэдэг нэр томъёо анх 1991 онд гарч ирсэн. Үүнийг UML хэлийг бүтээгч нэвтрүүлсэн
түүх
1996 онд CI-ийг аргачлалыг бүтээгчид баталсан
2000-аад оны эхээр Agile Alliance-ийг үүсгэн байгуулагчдын нэг нь тасралтгүй нэгтгэх арга зүйг сурталчилж эхэлсэн.
Хэрэгсэл дэх бүтээх мөчлөг нь кодын суурь дахь өөрчлөлтийг хувилбарын хяналтын системийг үе үе шалгадаг демон хэлбэрээр хэрэгждэг. Шийдлийг өнөөдөр татаж авч болно - энэ
тараасан BSD-тэй төстэй лицензийн дагуу.
CI-д зориулсан програм хангамж бий болсноор улам олон компани энэ практикийг хэрэгжүүлж эхэлсэн. Форрестерын судалгаагаар [хуудас 5
Өнөөдөр тасралтгүй интеграцийн практикийг олон төрлийн салбарын байгууллагууд ашиглаж байна. 2018 онд томоохон үүлэн үйлчилгээ үзүүлэгч үйлчилгээ, боловсрол, санхүүгийн салбарын компаниудын мэдээллийн технологийн мэргэжилтнүүдийн дунд судалгаа явуулжээ. Судалгаанд хамрагдсан зургаан мянган хүний 58 хувь нь CI арга хэрэгсэл, зарчмуудыг ажилдаа ашигладаг гэж хариулжээ.
Яаж энэ ажлыг хийдэг
Тасралтгүй интеграци нь хувилбарын хяналтын систем ба CI сервер гэсэн хоёр хэрэгсэл дээр суурилдаг. Сүүлийнх нь физик төхөөрөмж эсвэл үүлэн орчинд виртуал машин байж болно. Хөгжүүлэгчид шинэ кодыг өдөрт нэг буюу хэд хэдэн удаа байршуулдаг. CI сервер нь үүнийг бүх хамааралтай нь автоматаар хуулж, бүтээдэг. Дараа нь интеграцийн болон нэгжийн туршилтуудыг явуулдаг. Хэрэв туршилт амжилттай болвол CI систем кодыг байрлуулна.
Процессын ерөнхий диаграммыг дараах байдлаар илэрхийлж болно.
CI аргачлал нь хөгжүүлэгчдэд хэд хэдэн шаардлагыг тавьдаг.
- Асуудлыг нэн даруй засаарай. Энэ зарчим нь CI-д хэт програмчлалаас ирсэн. Алдаа засах нь хөгжүүлэгчдийн хамгийн чухал ажил юм.
- Процессуудыг автоматжуулах. Хөгжүүлэгчид болон менежерүүд интеграцийн үйл явцад саад тотгорыг байнга хайж, тэдгээрийг арилгах ёстой. Жишээлбэл, интеграцчлалд ихэвчлэн гацаа байдаг
болж хувирдаг туршилт. - Чуулганыг аль болох олон удаа хийх. Багийн ажлыг синхрончлохын тулд өдөрт нэг удаа.
Хэрэгжүүлэхэд тулгарч буй хүндрэлүүд
Эхний асуудал бол үйл ажиллагааны өндөр зардал юм. Хэдийгээр компани нээлттэй CI хэрэгслүүдийг ашигладаг байсан ч (бид үүнийг дараа ярих болно) дэд бүтцийн дэмжлэгт мөнгө зарцуулах шаардлагатай болно. Гэсэн хэдий ч үүлэн технологи нь шийдэл байж болох юм.
Тэд янз бүрийн хэмжээний компьютерийн тохиргоог угсрах ажлыг хялбаршуулдаг. Дээрээс нь компани
Судалгаагаар [хуудас 14
Гурав дахь хүндрэл бол автоматжуулалттай холбоотой асуудал юм. Автомат туршилтанд хамрагдаагүй их хэмжээний хуучин кодтой байгууллагууд ийм асуудалтай тулгардаг. Энэ нь CI-ийг бүрэн хэрэгжүүлэхээс өмнө кодыг дахин бичихэд хүргэдэг.
Хэн ашигладаг
Мэдээллийн технологийн аваргууд уг аргачлалын ач тусыг хамгийн түрүүнд үнэлдэг хүмүүсийн нэг байв. Google
Тасралтгүй интеграци нь жижиг компаниудад тусалдаг бөгөөд CI хэрэгслийг санхүүгийн болон эрүүл мэндийн байгууллагууд ч ашигладаг. Жишээлбэл, Morningstar дээр тасралтгүй интеграцийн үйлчилгээ нь эмзэг байдлыг 70% хурдан засахад тусалсан. Philips Healthcare эмнэлгийн платформ нь туршилтын шинэчлэлтийн хурдыг хоёр дахин нэмэгдүүлэх боломжтой болсон.
Хэрэгсэл
CI-д зориулсан зарим алдартай хэрэгслүүд энд байна:
Jenkins нь хамгийн алдартай CI системүүдийн нэг юм. Энэ нь янз бүрийн VCS, үүлэн платформ болон бусад үйлчилгээтэй нэгтгэх мянга гаруй залгаасуудыг дэмждэг. Бид мөн Jenkins-ийг 1cloud: tool дээр ашигладагМанай DevOps системд багтсан болно . Тэрээр туршилтанд зориулагдсан Гит салбарыг байнга шалгадаг.Buildbot — өөрийн тасралтгүй интеграцийн процессыг бичихэд зориулсан python framework. Хэрэгслийн анхны тохиргоо нь нэлээд төвөгтэй боловч үүнийг тохируулах өргөн сонголтоор нөхдөг. Хүрээний давуу талуудын дунд хэрэглэгчид нөөцийн бага эрчимтэй байдлыг онцолж байна.Консорциум CI нь Docker контейнер ашигладаг Pivotal сервер юм. Concourse CI нь ямар ч хэрэгсэл, хувилбарын хяналтын системтэй нэгдсэн. Систем нь ямар ч хэмжээтэй компанид ажиллахад тохиромжтой гэдгийг хөгжүүлэгчид тэмдэглэжээ.Gitlab CI нь GitLab хувилбарын хяналтын системд суурилагдсан хэрэгсэл юм. Үйлчилгээ нь үүлэн дээр ажилладаг бөгөөд тохиргоонд YAML файлуудыг ашигладаг. Concourse шиг Gitlab CIхамаарна Өөр өөр процессуудыг бие биенээсээ тусгаарлахад тусалдаг докер контейнерууд.Кодчилол нь GitHub, GitLab болон BitBucket-тай ажилладаг үүлэн CI сервер юм. Платформ нь удаан хугацааны анхны тохиргоо шаарддаггүй - стандарт урьдчилан суулгасан CI процессууд Codeship дээр байдаг. Жижиг (сард 100 хүртэл бүтээц) болон нээлттэй эхийн төслүүдийн хувьд Codeship-ийг үнэгүй ашиглах боломжтой.
Манай байгууллагын блогын материалууд:
Файлуудыг нөөцлөх: өгөгдлийн алдагдлаас өөрийгөө хэрхэн хамгаалах вэ 1cloud.ru-ийн жишээг ашиглан үүлэн үйлчилгээнд DevOps Байгууллагын мэдээллийн технологийн дэд бүтцийн сонголтууд
Эх сурвалж: www.habr.com