Жардам: Үзгүлтүксүз жеткирүү деген эмне

мурда, биз айтып Үзгүлтүксүз интеграция (CI) жөнүндө. Үзгүлтүксүз жеткирүү менен уланталы. Бул программалык камсыздоону иштеп чыгуу ыкмаларынын жыйындысы. Бул сиздин кодуңуздун жайылтууга даяр экендигине кепилдик берет.

Жардам: Үзгүлтүксүз жеткирүү деген эмне
/Пиксабай/ bluebudgie / PL

История

Үзгүлтүксүз жеткирүү деген сөз айкашын кайра көрүүгө болот ийкемдүү манифест 2001-жылдан баштап негизги принциптердин тизмесинин башында: "Артыкчылык - заманбап программалык камсыздоону үзгүлтүксүз жеткирүү аркылуу кардарлардын көйгөйлөрүн чечүү."

2010-жылы Джез Хумбл жана Дэвид Фарли бошотулган китеп Үзгүлтүксүз жеткирүү менен. Авторлордун айтымында, CD мамилени толуктайт үзгүлтүксүз Integration жана жайылтуу үчүн кодду даярдоону жөнөкөйлөтүү үчүн мүмкүнчүлүк берет.

Китеп жарык көргөндөн кийин, ыкма популярдуулукка ээ боло баштады жана бир-эки жылдын ичинде ал дээрлик жалпы кабыл алынган. Ылайык сурамжылоо, 600-жылы 2014дөн ашык иштеп чыгуучулар жана IT менеджерлери арасында жүргүзүлгөн, техникалык менеджерлердин 97% жана программисттердин 84% Үзгүлтүксүз жеткирүү менен тааныш болгон.

Азыр бул ыкма абдан популярдуу бири бойдон калууда. IT коомчулугу DevOps жана Jenkins Community катышкан 2018-жылдагы изилдөөгө ылайык, ал колдонуу сурамжылоого катышкан миңден ашык респонденттин жарымы.

Үзгүлтүксүз жеткирүү кантип иштейт?

CD негизи жайгаштыруу үчүн коддун даярдыгы болуп саналат. Бул милдетти аткаруу үчүн программалык камсыздоону чыгарууга даярдоо процессин автоматташтыруу колдонулат. Бул ар кандай иштеп чыгуу чөйрөлөрүндө стандарттуу болушу керек, ал алсыз жерлерди тез табууга жана аларды оптималдаштырууга жардам берет. Мисалы, тестирлөөнү тездетүү.

Үзгүлтүксүз жеткирүү процессинин мисалы мындай көрүнөт:

Жардам: Үзгүлтүксүз жеткирүү деген эмне

Эгерде Үзгүлтүксүз Интеграция ыкмасы биринчи эки этапты автоматташтыруу үчүн жооптуу болсо, анда Үзгүлтүксүз жеткирүү кийинки экөөнө жооптуу. Процесстин туруктуулугу башка нерселер менен катар системалар менен камсыз кылынат конфигурацияны башкаруу. Алар инфраструктурадагы, маалымат базаларындагы жана көз карандылыктагы өзгөрүүлөргө мониторинг жүргүзүшөт. Жайгаштыруунун өзү автоматташтырылган же кол менен аткарылышы мүмкүн.

Процесске төмөнкү талаптар коюлат:

  • Өндүрүштүк чөйрөгө кирүүгө даярдыгы жана токтоосуз чыгарууга даярдыгы жөнүндө маалыматтын болушу (CD куралдары кодду сынайт жана чыгаруудагы өзгөрүүлөрдүн таасирин баалоого мүмкүндүк берет).
  • акыркы продукт үчүн жалпы жоопкерчилик. Продукт командасы - менеджерлер, иштеп чыгуучулар, сыноочулар - алардын жоопкерчилик чөйрөсү жөнүндө эле эмес, натыйжа жөнүндө да ойлонушат (натыйжа продуктунун колдонуучулары үчүн жеткиликтүү болгон жумушчу релиз).

CD-жылы көбүнчө колдонулат кодду карап чыгуу, жана кардарлардын пикирлерин чогултуу үчүн - принцип караңгы ишке киргизүү. Жаңы функция алгач колдонуучулардын чакан сегментине чыгарылат - алардын продукт менен өз ара аракеттенүү тажрыйбасы ички тестирлөө учурунда байкалбаган кемчиликтерди жана мүчүлүштүктөрдү табууга жардам берет.

Кандай пайдасы бар

Үзгүлтүксүз жеткирүү кодду жайылтууну жөнөкөйлөтүүгө жардам берет, бул өндүрүмдүүлүккө оң таасирин тийгизет жана кызматкерлердин чарчап калуу ыктымалдыгын азайтат. Акыр-аягы, бул жалпы иштеп чыгуу чыгымдарын азайтат. Мисалы, CD HP командаларынын бирине жардам берди азайтуу мындай чыгымдар 40% га.

Мындан тышкары, 2016-жылдагы изилдөөгө ылайык (28-бет документ) - компакт-дискти ишке киргизген компаниялар маалыматтык коопсуздук маселелерин бул ыкманы колдонбогондорго караганда 50% тез чечет. Кандайдыр бир деңгээлде бул айырмачылык процессти автоматташтыруу куралдарынын иштеши менен түшүндүрүлөт.

Дагы бир плюс - релиздердин тездеши. Finnish Development студиясында үзгүлтүксүз жеткирүү жардам берген кодду чогултуу ылдамдыгын 25% га жогорулатуу.

Потенциалдуу кыйынчылыктар

Биринчи жана негизги проблема - бул тааныш процесстерди кайра куруунун зарылдыгы. Жаңы ыкманын артыкчылыктарын көрсөтүү үчүн, эң көп эмгекти талап кылган колдонмолордон эмес, акырындык менен CDге өтүү керек.

Экинчи мүмкүн болгон көйгөй код бутактарынын көп саны болуп саналат. "Бутакташуунун" натыйжасы - тез-тез чыр-чатактар ​​жана андан ары көп убакытты жоготуу. Мүмкүн болгон чечим - мамиле бутактары жок.

Атап айтканда, кээ бир компанияларда негизги кыйынчылыктар тестирлөө менен пайда болот - бул өтө көп убакытты талап кылат. Сыноонун натыйжалары көбүнчө кол менен талданууга туура келет, бирок мүмкүн болгон чечим компакт-дискти ишке ашыруунун алгачкы этаптарында тесттерди параллелизациялоо болушу мүмкүн.

Сиз ошондой эле кызматкерлерди жаңы инструменттер менен иштөөгө үйрөтүшүңүз керек - алдын ала билим берүү программасы иштеп чыгуучулардын күчүн жана убактысын үнөмдөйт.

Жардам: Үзгүлтүксүз жеткирүү деген эмне
/flickr/ h.ger1969 / CC BY-SA

аспаптар

Бул жерде үзгүлтүксүз жеткирүү үчүн бир нече ачык куралдар бар:

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

Биздин корпоративдик блогубузда эмнени окуу керек:

Source: www.habr.com

Комментарий кошуу