Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Үздіксіз орналастыру – бағдарламалық жасақтамадағы әртүрлі функцияларды жылдам, қауіпсіз және тиімді жүзеге асыру үшін қолданылатын бағдарламалық жасақтаманы әзірлеудегі ерекше тәсіл.

Негізгі идея - әзірлеушіге дайын өнімді пайдаланушыға жылдам жеткізуге мүмкіндік беретін сенімді автоматтандырылған процесті құру. Сонымен қатар өндіріске тұрақты өзгерістер енгізіледі - бұл үздіксіз жеткізу құбыры (CD Pipeline) деп аталады.

Skillbox ұсынады: Практикалық курс «Мобильді әзірлеуші ​​PRO».

Біз еске саламыз: «Хабрдың» барлық оқырмандары үшін - «Habr» жарнамалық кодын пайдаланып кез келген Skillbox курсына жазылу кезінде 10 000 рубль көлемінде жеңілдік.

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Ағынды басқару үшін сіз ақылы және толығымен тегін қоса алғанда көптеген құралдарды пайдалана аласыз. Бұл мақалада әрбір бағдарламашыға пайдалы болуы мүмкін әзірлеушілер арасында ең танымал үш шешім сипатталған.

Дженкинс

Толығымен дербес ашық бастапқы автоматтандыру сервері. Бағдарламалық жасақтаманы құруға, сынауға, жөнелтуге немесе орналастыруға қатысты тапсырмалардың барлық түрлерін автоматтандыру үшін онымен жұмыс істеген жөн.

Компьютерге қойылатын минималды талаптар:

  • 256 МБ жедел жады, 1 ГБ файл кеңістігі.

Оңтайлы:

  • 1 ГБ жедел жады, 50 ГБ қатты диск.

Жұмыс істеу үшін сізге қосымша бағдарламалық құрал қажет болады - Java Runtime Environment (JRE) 8 нұсқасы.

Архитектура (үлестірілген есептеулер) келесідей көрінеді:
Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Jenkins Server – бұл GUI хостингіне, сондай-ақ бүкіл құрастыруды ұйымдастыруға және орындауға жауапты орнату.

Jenkins Node/Slave/Build Server - Мастер (негізгі түйін) атынан құрастыру жұмысын орындау үшін конфигурацияланатын құрылғылар.

Linux үшін орнату

Алдымен жүйеге Дженкинс репозиторийін қосу керек:

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 апталығын жаңарту

Дженкинсті орнату:

sudo apt орнату Дженкинс

Осыдан кейін Дженкинс жүйеде әдепкі 8080 порты арқылы қол жетімді болады.

Функционалдылықты тексеру үшін браузерде мекенжайды ашу керек жергілікті: 8080. Содан кейін жүйе түбірлік пайдаланушы үшін бастапқы құпия сөзді енгізуді ұсынады. Бұл құпия сөз /var/lib/jenkins/secrets/initialAdminPassword файлында орналасқан.

Енді барлығы дайын, CI/CD ағындарын жасауға кірісуге болады. Жұмыс үстелінің графикалық интерфейсі келесідей:

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

Дженкинстің күшті жақтары:

  • Master/Slave архитектурасы қамтамасыз ететін ауқымдылық;
  • REST XML/JSON API қолжетімділігі;
  • плагиндердің арқасында көптеген кеңейтімдерді қосу мүмкіндігі;
  • белсенді және үнемі дамып отыратын қоғамдастық.

Кемшіліктері:

  • аналитикалық блок жоқ;
  • өте ыңғайлы интерфейс емес.

TeamCity

JetBrains компаниясының коммерциялық дамуы. Сервер қарапайым орнатумен және тамаша интерфейсімен жақсы. Әдепкі конфигурацияда көптеген функциялар бар және қол жетімді плагиндер саны үнемі өсіп отырады.

Java Runtime Environment (JRE) 8 нұсқасын талап етеді.

Сервердің аппараттық құралдарының талаптары маңызды емес:

  • ЖЖҚ - 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 танымал құрал (Үздіксіз орналастыру)

Әдепкі конфигурация іске қосылады жергілікті:8111/ бір компьютерде жұмыс істейтін бір тіркелген құрастыру агентімен.

TeamCity-тің күшті жақтары:

  • оңай орнату;
  • пайдаланушылық интерфейс;
  • кірістірілген функциялардың үлкен саны;
  • қолдау қызметі;
  • RESTful API бар;
  • жақсы құжаттама;
  • жақсы қауіпсіздік.

Кемшіліктері:

  • шектеулі интеграция;
  • Бұл ақылы құрал;
  • шағын қауымдастық (бірақ ол өсіп келеді).

GoCD

Орнату және пайдалану үшін Java Runtime Environment (JRE) 8 нұсқасын қажет ететін ашық бастапқы жоба.

Жүйелік талаптар:

  • ЖЖҚ - ең аз 1 ГБ, көбірек болса жақсы;
  • процессор – екі ядролы, ядро ​​жиілігі 2 ГГц;
  • қатты диск - кемінде 1 ГБ бос орын.

агент:

  • ЖЖҚ - кем дегенде 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 пернесін қосу -
add-apt-repository ppa:openjdk-r/ppa

APT-алу жаңарту

apt-get install -y openjdk-8-jre

apt-get орнату go-сервер

apt-get орнату go-агент

/etc/init.d/go-server [бастау|тоқтату|күй|қайта іске қосу]

/etc/init.d/go-agent [бастау|тоқтату|күй|қайта іске қосу]

Әдепкі бойынша GoCd жұмыс істейді жергілікті: 8153.

GoCd күшті жақтары:

  • ашық дереккөз;
  • қарапайым орнату және конфигурациялау;
  • жақсы құжаттама;

  • Керемет пайдаланушы интерфейсі:

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

  • бір көріністе қадамдық GoCD орналастыру жолын көрсету мүмкіндігі:

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

  • құбыр құрылымының тамаша көрінісі:

Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)

  • GoCD Docker, AWS сияқты ең танымал бұлттық орталарда CD жұмыс процесін оңтайландырады;
  • құрал құбырдағы ақауларды түзетуге мүмкіндік береді, ол үшін нақты уақыт режимінде міндеттемеден орналастыруға дейінгі әрбір өзгеріс қадағаланады.

Кемшіліктері:

  • кем дегенде бір агент қажет;
  • барлық орындалған тапсырмаларды көрсететін консоль жоқ;
  • әрбір команданы орындау үшін құбыр конфигурациясы үшін бір тапсырма жасау керек;
  • Плагинді орнату үшін .jar файлын жылжыту керек /plugins/external және серверді қайта іске қосыңыз;
  • салыстырмалы түрде шағын қауымдастық.

Қорытынды ретінде

Бұл үш құрал ғана, шын мәнінде одан да көп. Таңдау қиын, сондықтан сіз міндетті түрде қосымша аспектілерге назар аударуыңыз керек.

Құралдың ашық бастапқы коды оның не екенін түсінуге, сонымен қатар жаңа мүмкіндіктерді жылдам қосуға мүмкіндік береді. Бірақ егер бірдеңе жұмыс істемесе, сіз тек өзіңізге және қауымдастықтың көмегіне сенуіңіз керек. Ақылы құралдар кейде маңызды болуы мүмкін қолдауды қамтамасыз етеді.

Қауіпсіздік сіздің басты басымдығыңыз болса, ол жергілікті құралмен жұмыс істеуге тұрарлық. Олай болмаса, SaaS шешімін таңдау жақсы нұсқа болып табылады.

Соңында, шынымен тиімді үздіксіз орналастыру процесін қамтамасыз ету үшін ерекшеліктері қол жетімді құралдардың ауқымын қысқартуға мүмкіндік беретін критерийлерді тұжырымдау керек.

Skillbox ұсынады:

Ақпарат көзі: www.habr.com

пікір қалдыру