Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Continuous Deployment-ը ծրագրային ապահովման մշակման հատուկ մոտեցում է, որն օգտագործվում է ծրագրային ապահովման մեջ տարբեր գործառույթներ արագ, անվտանգ և արդյունավետ իրականացնելու համար:

Հիմնական գաղափարը վստահելի ավտոմատացված գործընթացի ստեղծումն է, որը ծրագրավորողին թույլ է տալիս պատրաստի արտադրանքն արագ հասցնել օգտագործողին: Միևնույն ժամանակ, անընդհատ փոփոխություններ են կատարվում արտադրության մեջ. սա կոչվում է շարունակական առաքման խողովակաշար (CD Pipeline):

Skillbox-ը խորհուրդ է տալիս. Գործնական դասընթաց «Mobile Developer PRO».

Հիշեցում. «Habr»-ի բոլոր ընթերցողների համար՝ 10 ռուբլի զեղչ «Habr» գովազդային կոդով Skillbox-ի ցանկացած դասընթացին գրանցվելիս:

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Հոսքը վերահսկելու համար կարող եք օգտագործել գործիքների լայն տեսականի, ներառյալ վճարովի և ամբողջովին անվճար: Այս հոդվածը նկարագրում է մշակողների շրջանում ամենատարածված լուծումներից երեքը, որոնք կարող են օգտակար լինել յուրաքանչյուր ծրագրավորողի համար:

Jenkins

Լիովին ինքնուրույն բաց կոդով ավտոմատացման սերվեր: Արժե աշխատել բոլոր տեսակի առաջադրանքների ավտոմատացման համար, որոնք կապված են ծրագրային ապահովման կառուցման, փորձարկման, առաքման կամ տեղակայման հետ:

ԱՀ-ի նվազագույն պահանջները.

  • 256 ՄԲ օպերատիվ հիշողություն, 1 ԳԲ ֆայլի տարածություն:

Օպտիմալ:

  • 1 ԳԲ օպերատիվ հիշողություն, 50 ԳԲ կոշտ սկավառակ:

Աշխատելու համար ձեզ անհրաժեշտ կլինի նաև լրացուցիչ ծրագրակազմ՝ Java Runtime Environment (JRE) տարբերակ 8։

Ճարտարապետությունը (բաշխված հաշվարկը) ունի հետևյալ տեսքը.
Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Jenkins Server-ը տեղադրում է, որը պատասխանատու է GUI հոսթինգի համար, ինչպես նաև կազմակերպում և կատարում է ամբողջ կառուցումը:

Jenkins Node/Slave/Build Server - սարքեր, որոնք կարող են կազմաձևվել Master-ի անունից շինարարական աշխատանքներ կատարելու համար (հիմնական հանգույց):

Տեղադրում Linux-ի համար

Նախ անհրաժեշտ է համակարգին ավելացնել Jenkins պահեստը.

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable երկուական/' | sudo tee -a /etc/apt/sources.list.d/je

Թարմացրեք փաթեթի պահոցը.

sudo apt թարմացում

Տեղադրեք Jenkins:

sudo apt տեղադրել jenkins

Դրանից հետո Jenkins-ը հասանելի կլինի համակարգում լռելյայն 8080 պորտի միջոցով:

Ֆունկցիոնալությունը ստուգելու համար դուք պետք է բացեք հասցեն բրաուզերում localhost:8080։ Այնուհետև համակարգը ձեզ կառաջարկի մուտքագրել արմատային օգտվողի նախնական գաղտնաբառը: Այս գաղտնաբառը գտնվում է /var/lib/jenkins/secrets/initialAdminPassword ֆայլում:

Այժմ ամեն ինչ պատրաստ է, կարող եք սկսել ստեղծել CI/CD հոսքեր: Աշխատանքային սեղանի գրաֆիկական ինտերֆեյսը հետևյալն է.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Ջենկինսի ուժեղ կողմերը.

  • մասշտաբայնություն, որն ապահովում է 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 վայրկյան է;
  • օրական ավելի քան 150 փոփոխություն;
  • տվյալների բազայի հետ աշխատել մեկ սերվերի վրա;
  • JVM սերվերի գործընթացի կարգավորումներ՝ -Xmx1100m -XX:MaxPermSize=120m:

Գործակալի պահանջները հիմնված են գործող հավաքների վրա: Սերվերի հիմնական խնդիրն է վերահսկել բոլոր կապակցված գործակալները և բաշխել հերթագրված հավաքները այդ գործակալներին՝ հիմնվելով համատեղելիության պահանջների վրա՝ զեկուցելով արդյունքները: Գործակալները գալիս են տարբեր հարթակներում և օպերացիոն համակարգերով, ինչպես նաև նախապես կազմաձևված միջավայրով:

Կառուցման արդյունքների մասին բոլոր տեղեկությունները պահվում են տվյալների բազայում: Հիմնականում սա պատմություն է և այլ նմանատիպ տվյալներ, VCS փոփոխություններ, գործակալներ, կառուցման հերթեր, օգտվողների հաշիվներ և թույլտվություններ: Տվյալների բազան չի ներառում միայն շինարարական տեղեկամատյանները և արտեֆակտները:

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Տեղադրում Linux-ի համար

TeamCity-ն Tomcat սերվիլետի կոնտեյներով ձեռքով տեղադրելու համար դուք պետք է օգտագործեք TeamCity արխիվը՝ TeamCity .tar.gz: Բեռնել դուք կարող եք այն ստանալ այստեղից.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [սկիզբ|դադար]

Երբ առաջին անգամ սկսեք, դուք պետք է ընտրեք տվյալների բազայի տեսակը, որում կպահվեն հավաքման տվյալները:

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Կանխադրված կոնֆիգուրացիան միացված է localhost:8111/ մեկ գրանցված build գործակալով, որն աշխատում է նույն ԱՀ-ով:

TeamCity-ի ուժեղ կողմերը.

  • հեշտ կարգավորում;
  • օգտագործողի բարեկամական ինտերֆեյս;
  • մեծ թվով ներկառուցված գործառույթներ;
  • Աջակցման ծառայություն;
  • կա RESTful API;
  • լավ փաստաթղթեր;
  • լավ անվտանգություն.

Դեմ:

  • սահմանափակ ինտեգրում;
  • Սա վճարովի գործիք է.
  • փոքր համայնք (որը, սակայն, աճում է):

GoCD

Բաց կոդով նախագիծ, որը տեղադրման և շահագործման համար պահանջում է Java Runtime Environment (JRE) տարբերակ 8:

Системные требования:

  • RAM - նվազագույնը 1 ԳԲ, ավելի լավ է;
  • պրոցեսոր - երկմիջուկ, 2 ԳՀց հիմնական հաճախականությամբ;
  • կոշտ սկավառակ - առնվազն 1 ԳԲ ազատ տարածություն:

Գործակալ:

  • RAM - առնվազն 128 ՄԲ, ավելին, ավելի լավ;
  • պրոցեսոր - առնվազն 2 ԳՀց:

Սերվերը ապահովում է գործակալների աշխատանքը և օգտագործողի համար ապահովում է հարմար ինտերֆեյս.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Փուլեր/Աշխատանքներ/Առաջադրանքներ.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

Տեղադրում Linux-ի համար

արձագանք »դեբ download.gocd.org /» | sudo tee /etc/apt/sources.list.d/gocd.list

գալար download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key ավելացնել -
add-apt-repository ppa:openjdk-r/ppa

բն - ստանալ թարմացումը

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [սկիզբ|դադար|կարգավիճակ|վերագործարկում]

/etc/init.d/go-agent [սկիզբ|դադար|կարգավիճակ|վերագործարկում]

Լռելյայնորեն GoCd-ն աշխատում է localhost: 8153.

GoCd-ի ուժեղ կողմերը.

  • բաց կոդով;
  • պարզ տեղադրում և կազմաձևում;
  • լավ փաստաթղթեր;

  • Օգտվողի հիանալի միջերես.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

  • GoCD-ի տեղակայման քայլ առ քայլ ուղին մեկ հայացքով ցույց տալու ունակություն.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

  • խողովակաշարի կառուցվածքի գերազանց ցուցադրում.

Շարունակական տեղակայման կազմակերպման 3 հանրաճանաչ գործիքներ (Շարունակական տեղակայում)

  • GoCD-ն օպտիմիզացնում է CD-ի աշխատանքային հոսքը ամենահայտնի ամպային միջավայրերում, ներառյալ Docker, AWS;
  • Գործիքը հնարավորություն է տալիս շտկել խողովակաշարում առկա խնդիրները, որոնց համար իրական ժամանակում հետևում են յուրաքանչյուր փոփոխության՝ ստանձնումից մինչև տեղակայում:

Դեմ:

  • անհրաժեշտ է առնվազն մեկ գործակալ.
  • չկա մխիթարել բոլոր ավարտված առաջադրանքները ցուցադրելու համար.
  • յուրաքանչյուր հրամանի կատարման համար անհրաժեշտ է ստեղծել մեկ առաջադրանք խողովակաշարի կազմաձևման համար.
  • Փլագինը տեղադրելու համար անհրաժեշտ է .jar ֆայլը տեղափոխել /plugins/external և վերագործարկել սերվերը;
  • համեմատաբար փոքր համայնք:

Որպես եզրակացություն

Սրանք ընդամենը երեք գործիքներ են, իրականում կան շատ ավելին: Դժվար է ընտրել, այնպես որ դուք անպայման պետք է ուշադրություն դարձնեք լրացուցիչ ասպեկտներին:

Գործիքի բաց կոդով կոդը հնարավորություն է տալիս հասկանալ, թե ինչ է դա, ինչպես նաև ավելի արագ ավելացնել նոր հնարավորություններ: Բայց եթե ինչ-որ բան չի ստացվում, ապա դուք պետք է ապավինեք միայն ինքներդ ձեզ և համայնքի օգնությանը: Վճարովի գործիքներն ապահովում են աջակցություն, որը երբեմն կարող է կարևոր լինել:

Եթե ​​անվտանգությունը ձեր առաջնահերթ խնդիրն է, արժե աշխատել տեղական գործիքի հետ: Եթե ​​ոչ, ապա SaaS լուծում ընտրելը լավ տարբերակ է:

Եվ վերջապես, իսկապես արդյունավետ շարունակական տեղակայման գործընթաց ապահովելու համար դուք պետք է ձևակերպեք չափանիշներ, որոնց առանձնահատկությունները թույլ կտան սահմանափակել առկա գործիքների շրջանակը:

Skillbox-ը խորհուրդ է տալիս.

Source: www.habr.com

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