Тусламж: Тасралтгүй хүргэлт гэж юу вэ

Өмнө нь бид хэлсэн Тасралтгүй интеграцийн (CI) тухай. Тасралтгүй хүргэлтээр үргэлжлүүлье. Энэ бол програм хангамж хөгжүүлэх аргуудын багц юм. Энэ нь таны кодыг ашиглахад бэлэн байгаа эсэхийг шалгахад тусална.

Тусламж: Тасралтгүй хүргэлт гэж юу вэ
/Пиксабай/ Bluebudgie / PL

түүх

Тасралтгүй хүргэх хэллэгийг дахин харж болно agile manifesto 2001 оноос эхлэн үндсэн зарчмуудын жагсаалтын эхэнд: "Сүүлийн үеийн програм хангамжийг тасралтгүй хүргэх замаар хэрэглэгчийн асуудлыг шийдвэрлэх нь тэргүүлэх чиглэл юм."

2010 онд Жез Хумбл, Дэвид Фарли нар гарсан ном Тасралтгүй хүргэлтээр. Зохиогчдын үзэж байгаагаар CD нь арга барилыг нөхөж өгдөг Тогтмол интеграцчилал мөн байршуулах код бэлтгэх ажлыг хялбарчлах боломжийг танд олгоно.

Ном хэвлэгдэн гарсны дараа энэ арга нь түгээмэл болж эхэлсэн бөгөөд хэдхэн жилийн дотор бараг бүх нийтээр хүлээн зөвшөөрөгдсөн. дагуу судалгаа, 600 онд 2014 гаруй хөгжүүлэгчид болон мэдээллийн технологийн менежерүүдийн дунд явуулсан бөгөөд техникийн менежерүүдийн 97%, програмистуудын 84% нь Continuous Delivery програмыг мэддэг байсан.

Одоо энэ арга нь хамгийн алдартай хүмүүсийн нэг хэвээр байна. 2018 онд IT нийгэмлэгийн DevOps болон Jenkins Community оролцсон судалгаагаар энэ нь ашигладаг Судалгаанд хамрагдсан мянга гаруй оролцогчдын тал хувь нь.

Тасралтгүй хүргэлт хэрхэн ажилладаг вэ?

CD-ийн үндэс нь кодыг ашиглахад бэлэн байх явдал юм. Энэ даалгаврыг биелүүлэхийн тулд програм хангамжийг гаргахад бэлтгэх процессын автоматжуулалтыг ашигладаг. Энэ нь янз бүрийн хөгжүүлэлтийн орчинд стандарт байх ёстой бөгөөд энэ нь сул талуудыг хурдан олж, оновчтой болгоход тусална. Жишээлбэл, туршилтыг хурдасгах.

Тасралтгүй хүргэх үйл явцын жишээ нь дараах байдалтай байна.

Тусламж: Тасралтгүй хүргэлт гэж юу вэ

Хэрэв Continous Integration арга нь эхний хоёр үе шатыг автоматжуулах үүрэгтэй бол Continous Delivery нь дараагийн хоёр үе шатыг хариуцна. Үйл явцын тогтвортой байдлыг бусад зүйлсийн дотор системээр хангадаг тохиргооны удирдлага. Тэд дэд бүтэц, мэдээллийн сан, хамаарал дахь өөрчлөлтийг хянадаг. Байршлыг өөрөө автоматжуулж эсвэл гараар хийж болно.

Уг процесст дараахь шаардлагыг тавьдаг.

  • Үйлдвэрлэлийн орчинд ороход бэлэн байгаа эсэх, нэн даруй гаргахад бэлэн байдлын талаархи мэдээлэл байгаа эсэх (CD хэрэгслүүд нь кодыг туршиж, хувилбарын өөрчлөлтийн үр нөлөөг үнэлэх боломжтой болгодог).
  • Эцсийн бүтээгдэхүүний ерөнхий хариуцлага. Бүтээгдэхүүний баг - менежерүүд, хөгжүүлэгчид, тестерүүд - зөвхөн хариуцах хүрээнийх нь талаар биш харин үр дүнгийн талаар боддог (үр дүн нь тухайн бүтээгдэхүүний хэрэглэгчдэд боломжтой ажлын хувилбар юм).

CD-д үүнийг ихэвчлэн ашигладаг кодын тойм, мөн хэрэглэгчийн санал бодлыг цуглуулах - зарчим харанхуй хөөргөх. Шинэ функцийг анх хэрэглэгчдийн багахан хэсэгт гаргасан - тэдний бүтээгдэхүүнтэй харьцах туршлага нь дотоод туршилтын явцад анзаарагдаагүй дутагдал, алдаануудыг олоход тусалдаг.

Ямар ашигтай юм

Тасралтгүй хүргэлт нь кодын байршуулалтыг хялбарчлахад тусалдаг бөгөөд энэ нь бүтээмжид эерэгээр нөлөөлж, ажилчдын ядрах магадлалыг бууруулдаг. Эцсийн эцэст энэ нь нийт бүтээн байгуулалтын зардлыг бууруулдаг. Жишээлбэл, CD нь HP багуудын нэгэнд тусалсан бууруулахын тулд ийм зардал 40%.

Үүнээс гадна, 2016 оны судалгаагаар (хуудас 28 баримт бичиг) - CD-г хэрэгжүүлсэн компаниуд мэдээллийн аюулгүй байдлын асуудлыг энэ аргыг ашигладаггүй компаниудаас 50% илүү хурдан шийддэг. Тодорхой хэмжээгээр энэ ялгааг процессын автоматжуулалтын хэрэгслүүдийн гүйцэтгэлээр тайлбарлаж болно.

Өөр нэг давуу тал бол хувилбаруудыг хурдасгах явдал юм. Финляндын хөгжлийн студид тасралтгүй хүргэлт тусалсан код угсрах хурдыг 25% нэмэгдүүлэх.

Болзошгүй хүндрэлүүд

Эхний бөгөөд гол асуудал бол танил болсон үйл явцыг сэргээх хэрэгцээ юм. Шинэ аргын ашиг тусыг харуулахын тулд хамгийн их хөдөлмөр шаарддаг програмуудаас эхлээд аажмаар CD рүү шилжих нь зүйтэй.

Хоёр дахь боломжит асуудал бол олон тооны кодын салбарууд юм. "Салбарлах" үр дагавар нь байнга зөрчилдөөн, цаашлаад их хэмжээний цаг алдах явдал юм. Боломжит шийдэл - арга барил салбар байхгүй.

Ялангуяа зарим компаниудад туршилт хийх гол бэрхшээлүүд гарч ирдэг - энэ нь хэтэрхий их цаг хугацаа шаарддаг. Туршилтын үр дүнд ихэвчлэн гараар дүн шинжилгээ хийх шаардлагатай байдаг ч CD хэрэгжүүлэх эхний үе шатанд туршилтуудыг зэрэгцүүлэх боломжит шийдэл байж болно.

Та мөн ажилчдыг шинэ хэрэгсэлтэй ажиллахад сургах хэрэгтэй - урьдчилсан боловсролын хөтөлбөр нь хөгжүүлэгчдийн хүчин чармайлт, цагийг хэмнэх болно.

Тусламж: Тасралтгүй хүргэлт гэж юу вэ
/flickr/ h.ger1969 / CC BY-SA

Хэрэгсэл

Тасралтгүй хүргэх хэд хэдэн нээлттэй хэрэгсэл энд байна:

  • GoCD — Java болон JRuby on Rails дээр тасралтгүй хүргэх сервер. Програмыг хүргэх үйл явцыг бүхэлд нь хянах боломжийг танд олгоно: бүтээх-тест-хувилбар. Уг хэрэгслийг Apache 2.0 лицензийн дагуу түгээдэг. Та үүнийг албан ёсны вэбсайтаас олж болно тохируулах гарын авлага.
  • Капистрано — Ruby, Java эсвэл PHP дээр програмуудыг байршуулахыг автоматжуулах скрипт үүсгэх хүрээ. Capistrano нь SSH-ээр холбогдож алсын машин дээр командуудыг гүйцэтгэх боломжтой. Integrity CI сервер гэх мэт бусад тасралтгүй нэгтгэх, хүргэх хэрэгслүүдтэй ажилладаг.
  • Хөвөө нь програм боловсруулах бүх мөчлөгийг автоматжуулдаг олон платформ хэрэгсэл юм. Gradle нь Java, Python, C/C++, Scala гэх мэт программ дээр ажилладаг. Eclipse, IntelliJ, Jenkins програмуудтай интеграцчилал байдаг.
  • Дөрөв - Go хэл дээрх CD платформ. Дроныг газар дээр нь эсвэл үүлэн дээр байрлуулж болно. Уг хэрэгсэл нь контейнер дээр суурилагдсан бөгөөд тэдгээрийг удирдахын тулд YAML файлуудыг ашигладаг.
  • Ээрэх хэрэгсэл — олон үүлэн системд тасралтгүй код хүргэх платформ. Netflix-ийн бүтээсэн Google-ийн инженерүүд уг хэрэгслийг хөгжүүлэхэд ихээхэн үүрэг гүйцэтгэсэн. Суулгах заавар албан ёсны вэбсайтаас олж болно.

Манай байгууллагын блог дээр юу унших вэ:

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх