Continuous Deployment-ը ծրագրային ապահովման մշակման հատուկ մոտեցում է, որն օգտագործվում է ծրագրային ապահովման մեջ տարբեր գործառույթներ արագ, անվտանգ և արդյունավետ իրականացնելու համար:
Հիմնական գաղափարը վստահելի ավտոմատացված գործընթացի ստեղծումն է, որը ծրագրավորողին թույլ է տալիս պատրաստի արտադրանքն արագ հասցնել օգտագործողին: Միևնույն ժամանակ, անընդհատ փոփոխություններ են կատարվում արտադրության մեջ. սա կոչվում է շարունակական առաքման խողովակաշար (CD Pipeline):
Հիշեցում.«Habr»-ի բոլոր ընթերցողների համար՝ 10 ռուբլի զեղչ «Habr» գովազդային կոդով Skillbox-ի ցանկացած դասընթացին գրանցվելիս:
Հոսքը վերահսկելու համար կարող եք օգտագործել գործիքների լայն տեսականի, ներառյալ վճարովի և ամբողջովին անվճար: Այս հոդվածը նկարագրում է մշակողների շրջանում ամենատարածված լուծումներից երեքը, որոնք կարող են օգտակար լինել յուրաքանչյուր ծրագրավորողի համար:
Jenkins
Լիովին ինքնուրույն բաց կոդով ավտոմատացման սերվեր: Արժե աշխատել բոլոր տեսակի առաջադրանքների ավտոմատացման համար, որոնք կապված են ծրագրային ապահովման կառուցման, փորձարկման, առաքման կամ տեղակայման հետ:
Դրանից հետո Jenkins-ը հասանելի կլինի համակարգում լռելյայն 8080 պորտի միջոցով:
Ֆունկցիոնալությունը ստուգելու համար դուք պետք է բացեք հասցեն բրաուզերում localhost:8080։ Այնուհետև համակարգը ձեզ կառաջարկի մուտքագրել արմատային օգտվողի նախնական գաղտնաբառը: Այս գաղտնաբառը գտնվում է /var/lib/jenkins/secrets/initialAdminPassword ֆայլում:
Այժմ ամեն ինչ պատրաստ է, կարող եք սկսել ստեղծել CI/CD հոսքեր: Աշխատանքային սեղանի գրաֆիկական ինտերֆեյսը հետևյալն է.
Ջենկինսի ուժեղ կողմերը.
մասշտաբայնություն, որն ապահովում է Master/Slave ճարտարապետությունը;
REST XML/JSON API-ի առկայությունը;
պլագինների շնորհիվ մեծ թվով ընդլայնումներ միացնելու ունակություն.
ակտիվ և անընդհատ զարգացող համայնք:
Դեմ:
չկա վերլուծական բլոկ;
ոչ այնքան օգտագործողի համար հարմար ինտերֆեյս:
TeamCity- ը
Կոմերցիոն զարգացում JetBrains-ից: Սերվերը լավ է պարզ կարգավորումներով և գերազանց ինտերֆեյսով: Լռելյայն կոնֆիգուրացիան ունի մեծ թվով գործառույթներ, և առկա պլագինների թիվը անընդհատ ավելանում է:
Պահանջում է Java Runtime Environment (JRE) տարբերակ 8:
Սերվերի ապարատային պահանջները ոչ կրիտիկական են.
RAM - 3,2 ԳԲ;
պրոցեսոր - երկմիջուկ, 3,2 ԳՀց;
կապի ալիք՝ 1 Գբ/վ հզորությամբ։
Սերվերը թույլ է տալիս հասնել բարձր կատարողականության.
60 նախագիծ 300 կառուցման կոնֆիգուրացիաներով;
2 ՄԲ հատկացում կառուցման մատյանի համար;
50 շինարարական գործակալներ;
վեբ տարբերակում 50 օգտագործողների և IDE-ում 30 օգտագործողների հետ աշխատելու ունակություն.
Արտաքին VCS-ի 100 միացում, սովորաբար Perforce և Subversion: Փոփոխության միջին ժամանակը 120 վայրկյան է;
Գործակալի պահանջները հիմնված են գործող հավաքների վրա: Սերվերի հիմնական խնդիրն է վերահսկել բոլոր կապակցված գործակալները և բաշխել հերթագրված հավաքները այդ գործակալներին՝ հիմնվելով համատեղելիության պահանջների վրա՝ զեկուցելով արդյունքները: Գործակալները գալիս են տարբեր հարթակներում և օպերացիոն համակարգերով, ինչպես նաև նախապես կազմաձևված միջավայրով:
Կառուցման արդյունքների մասին բոլոր տեղեկությունները պահվում են տվյալների բազայում: Հիմնականում սա պատմություն է և այլ նմանատիպ տվյալներ, VCS փոփոխություններ, գործակալներ, կառուցման հերթեր, օգտվողների հաշիվներ և թույլտվություններ: Տվյալների բազան չի ներառում միայն շինարարական տեղեկամատյանները և արտեֆակտները:
Տեղադրում Linux-ի համար
TeamCity-ն Tomcat սերվիլետի կոնտեյներով ձեռքով տեղադրելու համար դուք պետք է օգտագործեք TeamCity արխիվը՝ TeamCity .tar.gz: Բեռնել դուք կարող եք այն ստանալ այստեղից.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [սկիզբ|դադար]
Երբ առաջին անգամ սկսեք, դուք պետք է ընտրեք տվյալների բազայի տեսակը, որում կպահվեն հավաքման տվյալները:
Կանխադրված կոնֆիգուրացիան միացված է localhost:8111/ մեկ գրանցված build գործակալով, որն աշխատում է նույն ԱՀ-ով:
TeamCity-ի ուժեղ կողմերը.
հեշտ կարգավորում;
օգտագործողի բարեկամական ինտերֆեյս;
մեծ թվով ներկառուցված գործառույթներ;
Աջակցման ծառայություն;
կա RESTful API;
լավ փաստաթղթեր;
լավ անվտանգություն.
Դեմ:
սահմանափակ ինտեգրում;
Սա վճարովի գործիք է.
փոքր համայնք (որը, սակայն, աճում է):
GoCD
Բաց կոդով նախագիծ, որը տեղադրման և շահագործման համար պահանջում է Java Runtime Environment (JRE) տարբերակ 8:
Системные требования:
RAM - նվազագույնը 1 ԳԲ, ավելի լավ է;
պրոցեսոր - երկմիջուկ, 2 ԳՀց հիմնական հաճախականությամբ;
կոշտ սկավառակ - առնվազն 1 ԳԲ ազատ տարածություն:
Գործակալ:
RAM - առնվազն 128 ՄԲ, ավելին, ավելի լավ;
պրոցեսոր - առնվազն 2 ԳՀց:
Սերվերը ապահովում է գործակալների աշխատանքը և օգտագործողի համար ապահովում է հարմար ինտերֆեյս.
Փուլեր/Աշխատանքներ/Առաջադրանքներ.
Տեղադրում Linux-ի համար
արձագանք »դեբ download.gocd.org /» | sudo tee /etc/apt/sources.list.d/gocd.list
GoCD-ի տեղակայման քայլ առ քայլ ուղին մեկ հայացքով ցույց տալու ունակություն.
խողովակաշարի կառուցվածքի գերազանց ցուցադրում.
GoCD-ն օպտիմիզացնում է CD-ի աշխատանքային հոսքը ամենահայտնի ամպային միջավայրերում, ներառյալ Docker, AWS;
Գործիքը հնարավորություն է տալիս շտկել խողովակաշարում առկա խնդիրները, որոնց համար իրական ժամանակում հետևում են յուրաքանչյուր փոփոխության՝ ստանձնումից մինչև տեղակայում:
Դեմ:
անհրաժեշտ է առնվազն մեկ գործակալ.
չկա մխիթարել բոլոր ավարտված առաջադրանքները ցուցադրելու համար.
յուրաքանչյուր հրամանի կատարման համար անհրաժեշտ է ստեղծել մեկ առաջադրանք խողովակաշարի կազմաձևման համար.
Փլագինը տեղադրելու համար անհրաժեշտ է .jar ֆայլը տեղափոխել /plugins/external և վերագործարկել սերվերը;
համեմատաբար փոքր համայնք:
Որպես եզրակացություն
Սրանք ընդամենը երեք գործիքներ են, իրականում կան շատ ավելին: Դժվար է ընտրել, այնպես որ դուք անպայման պետք է ուշադրություն դարձնեք լրացուցիչ ասպեկտներին:
Գործիքի բաց կոդով կոդը հնարավորություն է տալիս հասկանալ, թե ինչ է դա, ինչպես նաև ավելի արագ ավելացնել նոր հնարավորություններ: Բայց եթե ինչ-որ բան չի ստացվում, ապա դուք պետք է ապավինեք միայն ինքներդ ձեզ և համայնքի օգնությանը: Վճարովի գործիքներն ապահովում են աջակցություն, որը երբեմն կարող է կարևոր լինել:
Եթե անվտանգությունը ձեր առաջնահերթ խնդիրն է, արժե աշխատել տեղական գործիքի հետ: Եթե ոչ, ապա SaaS լուծում ընտրելը լավ տարբերակ է:
Եվ վերջապես, իսկապես արդյունավետ շարունակական տեղակայման գործընթաց ապահովելու համար դուք պետք է ձևակերպեք չափանիշներ, որոնց առանձնահատկությունները թույլ կտան սահմանափակել առկա գործիքների շրջանակը: