Օգնություն. ինչ է շարունակական առաքումը

Ավելի վաղ մենք ասաց Continuous Integration (CI) մասին։ Շարունակենք շարունակական առաքումը: Սա ծրագրային ապահովման մշակման մեթոդների մի շարք է: Այն օգնում է համոզվել, որ ձեր կոդը պատրաստ է տեղակայման:

Օգնություն. ինչ է շարունակական առաքումը
/Pixabay/ կապույտ բադջի / PL

Պատմություն

Շարունակական առաքում արտահայտությունը կարելի էր տեսնել նորից արագաշարժ մանիֆեստ 2001 թվականից սկսած՝ հիմնական սկզբունքների ցանկի սկզբում. «Առաջնահերթությունը հաճախորդների խնդիրների լուծումն է՝ արդի ծրագրային ապահովման շարունակական մատակարարման միջոցով»:

2010 թվականին Ջեզ Համբլը և Դեյվիդ Ֆարլին ազատ են արձակվել книгу շարունակական առաքմամբ: Ըստ հեղինակների՝ CD-ն լրացնում է մոտեցումը Շարունակական ինտեգրում և թույլ է տալիս պարզեցնել տեղակայման համար կոդի պատրաստումը:

Գրքի հրատարակումից հետո մոտեցումը սկսեց ժողովրդականություն ձեռք բերել և ընդամենը մի քանի տարի անց այն դարձավ գրեթե համընդհանուր ընդունված: Համաձայն հարցում600-ին ավելի քան 2014 ծրագրավորողների և ՏՏ մենեջերների միջև անցկացված տեխնիկական մենեջերների 97%-ը և ծրագրավորողների 84%-ը ծանոթ էին Continuous Delivery-ին:

Այժմ այս մոտեցումը մնում է ամենատարածվածներից մեկը: Համաձայն 2018-ի ուսումնասիրության, որը ներառում էր ՏՏ համայնքի DevOps և Jenkins համայնքը, այն օգտագործում հարցված հազարից ավելի հարցվածների կեսը:

Ինչպե՞ս է աշխատում շարունակական առաքումը:

CD-ի հիմքը կոդի պատրաստակամությունն է տեղակայման համար: Այս խնդիրն իրականացնելու համար օգտագործվում է թողարկման համար ծրագրակազմի պատրաստման գործընթացի ավտոմատացում: Այն պետք է լինի ստանդարտ զարգացման տարբեր միջավայրերում, ինչը կօգնի արագ գտնել թույլ կետերը և օպտիմալացնել դրանք: Օրինակ, արագացրեք փորձարկումը:

Շարունակական առաքման գործընթացի օրինակը հետևյալն է.

Օգնություն. ինչ է շարունակական առաքումը

Եթե ​​Continuous Integration մոտեցումը պատասխանատու է առաջին երկու փուլերի ավտոմատացման համար, ապա Continuous Delivery-ը պատասխանատու է հաջորդ երկուսի համար: Գործընթացի կայունությունն ապահովվում է, ի թիվս այլ բաների, համակարգերի կողմից կոնֆիգուրացիայի կառավարում. Նրանք վերահսկում են ենթակառուցվածքների, տվյալների բազաների և կախվածության փոփոխությունները: Տեղակայումն ինքնին կարող է ավտոմատացված լինել կամ ձեռքով անել:

Գործընթացին դրվում են հետևյալ պահանջները.

  • Արտադրական միջավայր մուտք գործելու պատրաստակամության և անհապաղ թողարկման պատրաստության մասին տեղեկատվության առկայություն (CD գործիքները փորձարկում են կոդը և հնարավորություն են տալիս գնահատել թողարկման փոփոխությունների ազդեցությունը):
  • Ընդհանուր պատասխանատվություն վերջնական արտադրանքի համար: Արտադրանքի թիմը՝ մենեջերներ, մշակողներ, փորձարկողներ, մտածում են արդյունքի մասին, և ոչ միայն իրենց պատասխանատվության ոլորտի մասին (արդյունքը աշխատանքային թողարկում է, որը հասանելի է արտադրանքի օգտատերերին):

Սկավառակներում այն ​​սովորաբար օգտագործվում է կոդի վերանայում, իսկ հաճախորդների կարծիքներ հավաքելու համար՝ սկզբունքը մութ արձակում. Օգտագործողների մի փոքր հատվածի համար սկզբում թողարկվում է նոր գործառույթ՝ արտադրանքի հետ շփվելու նրանց փորձը օգնում է գտնել թերություններ և սխալներ, որոնք չեն նկատվել ներքին թեստավորման ժամանակ:

Ո՞րն է օգուտը

Շարունակական առաքումն օգնում է պարզեցնել կոդերի տեղաբաշխումը, ինչը դրականորեն է ազդում արտադրողականության վրա և նվազեցնում է աշխատողների այրման հավանականությունը: Ի վերջո, դա նվազեցնում է զարգացման ընդհանուր ծախսերը: Օրինակ, CD-ն օգնեց HP թիմերից մեկին նվազեցնել նման ծախսերը 40%-ով։

Բացի այդ, 2016 թվականի ուսումնասիրության համաձայն (էջ 28 փաստաթուղթը) - CD-ներ ներդրած ընկերությունները 50%-ով ավելի արագ են լուծում տեղեկատվական անվտանգության խնդիրները, քան նրանք, ովքեր չեն օգտագործում մոտեցումը: Որոշ չափով այս տարբերությունը կարելի է բացատրել գործընթացների ավտոմատացման գործիքների կատարմամբ:

Մեկ այլ գումարած թողարկումների արագացումն է: Շարունակական առաքում Ֆինլանդիայի զարգացման ստուդիայում օգնեց բարձրացնել կոդի հավաքման արագությունը 25%-ով:

Պոտենցիալ դժվարություններ

Առաջին և հիմնական խնդիրը ծանոթ գործընթացների վերակառուցման անհրաժեշտությունն է: Նոր մոտեցման առավելությունները ցույց տալու համար արժե աստիճանաբար անցնել CD-ին՝ սկսած ոչ ամենաաշխատատար հավելվածներից։

Երկրորդ պոտենցիալ խնդիրը կոդի ճյուղերի մեծ քանակությունն է: «Ճյուղավորման» հետևանքը հաճախակի կոնֆլիկտներն են և ժամանակի հետագա կորուստը։ Հնարավոր լուծում՝ մոտեցում ոչ ճյուղեր.

Մասնավորապես, որոշ ընկերություններում հիմնական դժվարությունները ծագում են թեստավորման հետ կապված՝ դա չափազանց շատ ժամանակ է պահանջում: Փորձարկման արդյունքները հաճախ պետք է վերլուծվեն ձեռքով, սակայն հնարավոր լուծումը կարող է լինել թեստերի զուգահեռությունը CD-ի իրականացման վաղ փուլերում:

Պետք է նաև աշխատակիցներին վերապատրաստել նոր գործիքներով աշխատելու համար. նախնական կրթական ծրագիրը կխնայի ծրագրավորողների ջանքերն ու ժամանակը:

Օգնություն. ինչ է շարունակական առաքումը
/flickr/ հ.գեր1969 թ / CC BY-SA- ն

Գործիքներ

Ահա մի քանի բաց գործիքներ շարունակական առաքման համար.

  • GoCD — Java-ում և JRuby on Rails-ում շարունակական առաքման սերվեր: Թույլ է տալիս վերահսկել հավելվածի առաքման ողջ գործընթացը՝ build-test-release: Գործիքը տարածվում է Apache 2.0 լիցենզիայի ներքո: Դուք կարող եք գտնել այն պաշտոնական կայքում տեղադրման ուղեցույց.
  • Կապիստրանո — շրջանակ՝ սկրիպտներ ստեղծելու համար, որոնք ավտոմատացնում են հավելվածների տեղակայումը Ruby-ում, Java-ում կամ PHP-ում: Capistrano-ն կարողանում է հրամաններ կատարել հեռավոր մեքենայի վրա՝ միանալով դրան SSH-ի միջոցով: Աշխատում է շարունակական ինտեգրման և առաքման այլ գործիքների հետ, ինչպիսիք են Integrity CI սերվերը:
  • Դասարան բազմահարթակ գործիք է, որն ավտոմատացնում է հավելվածների մշակման ողջ ցիկլը: Gradle-ն աշխատում է Java-ի, Python-ի, C/C++-ի, Scala-ի և այլնի հետ: Կա ինտեգրում Eclipse-ի, IntelliJ-ի և Jenkins-ի հետ:
  • բզզոց - CD հարթակ Go լեզվով: Անօդաչու սարքը կարող է տեղակայվել տեղում կամ ամպի մեջ: Գործիքը կառուցված է բեռնարկղերի վրա և օգտագործում է YAML ֆայլեր՝ դրանք կառավարելու համար:
  • Spinnaker — բազմաբնույթ ամպային համակարգերում կոդի շարունակական առաքման հարթակ: Netflix-ի կողմից մշակված Google-ի ինժեներները մեծ դեր են խաղացել գործիքի մշակման գործում: Տեղադրման հրահանգներ գտնել այն պաշտոնական կայքում.

Ինչ կարդալ մեր կորպորատիվ բլոգում.

Source: www.habr.com

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