Үздіксіз орналастыруды ұйымдастыруға арналған 3 танымал құрал (Үздіксіз орналастыру)
Үздіксіз орналастыру – бағдарламалық жасақтамадағы әртүрлі функцияларды жылдам, қауіпсіз және тиімді жүзеге асыру үшін қолданылатын бағдарламалық жасақтаманы әзірлеудегі ерекше тәсіл.
Негізгі идея - әзірлеушіге дайын өнімді пайдаланушыға жылдам жеткізуге мүмкіндік беретін сенімді автоматтандырылған процесті құру. Сонымен қатар өндіріске тұрақты өзгерістер енгізіледі - бұл үздіксіз жеткізу құбыры (CD Pipeline) деп аталады.
Біз еске саламыз:«Хабрдың» барлық оқырмандары үшін - «Habr» жарнамалық кодын пайдаланып кез келген Skillbox курсына жазылу кезінде 10 000 рубль көлемінде жеңілдік.
Ағынды басқару үшін сіз ақылы және толығымен тегін қоса алғанда көптеген құралдарды пайдалана аласыз. Бұл мақалада әрбір бағдарламашыға пайдалы болуы мүмкін әзірлеушілер арасында ең танымал үш шешім сипатталған.
Дженкинс
Толығымен дербес ашық бастапқы автоматтандыру сервері. Бағдарламалық жасақтаманы құруға, сынауға, жөнелтуге немесе орналастыруға қатысты тапсырмалардың барлық түрлерін автоматтандыру үшін онымен жұмыс істеген жөн.
Компьютерге қойылатын минималды талаптар:
256 МБ жедел жады, 1 ГБ файл кеңістігі.
Оңтайлы:
1 ГБ жедел жады, 50 ГБ қатты диск.
Жұмыс істеу үшін сізге қосымша бағдарламалық құрал қажет болады - Java Runtime Environment (JRE) 8 нұсқасы.
Осыдан кейін Дженкинс жүйеде әдепкі 8080 порты арқылы қол жетімді болады.
Функционалдылықты тексеру үшін браузерде мекенжайды ашу керек жергілікті: 8080. Содан кейін жүйе түбірлік пайдаланушы үшін бастапқы құпия сөзді енгізуді ұсынады. Бұл құпия сөз /var/lib/jenkins/secrets/initialAdminPassword файлында орналасқан.
Енді барлығы дайын, CI/CD ағындарын жасауға кірісуге болады. Жұмыс үстелінің графикалық интерфейсі келесідей:
Дженкинстің күшті жақтары:
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 өзгерістері, агенттер, құрастыру кезегі, пайдаланушы тіркелгілері және рұқсаттар. Дерекқор тек құрастыру журналдары мен артефактілерді қамтымайды.
Linux үшін орнату
TeamCity бағдарламасын Tomcat сервлет контейнерімен қолмен орнату үшін TeamCity мұрағатын пайдалану керек: TeamCity .tar.gz. Жүктеп алу осы жерден ала аласыз.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [бастау|тоқтату]
Алғашқы іске қосқан кезде жинақ деректері сақталатын дерекқор түрін таңдау керек.
Әдепкі конфигурация іске қосылады жергілікті:8111/ бір компьютерде жұмыс істейтін бір тіркелген құрастыру агентімен.
TeamCity-тің күшті жақтары:
оңай орнату;
пайдаланушылық интерфейс;
кірістірілген функциялардың үлкен саны;
қолдау қызметі;
RESTful API бар;
жақсы құжаттама;
жақсы қауіпсіздік.
Кемшіліктері:
шектеулі интеграция;
Бұл ақылы құрал;
шағын қауымдастық (бірақ ол өсіп келеді).
GoCD
Орнату және пайдалану үшін Java Runtime Environment (JRE) 8 нұсқасын қажет ететін ашық бастапқы жоба.
Жүйелік талаптар:
ЖЖҚ - ең аз 1 ГБ, көбірек болса жақсы;
процессор – екі ядролы, ядро жиілігі 2 ГГц;
қатты диск - кемінде 1 ГБ бос орын.
агент:
ЖЖҚ - кем дегенде 128 МБ, көбірек болса жақсы;
процессор - кемінде 2 ГГц.
Сервер агенттердің жұмысын қамтамасыз етеді және пайдаланушыға ыңғайлы интерфейсті ұсынады:
Кезеңдер/жұмыстар/тапсырмалар:
Linux үшін орнату
жаңғырық »деб download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
/etc/init.d/go-server [бастау|тоқтату|күй|қайта іске қосу]
/etc/init.d/go-agent [бастау|тоқтату|күй|қайта іске қосу]
Әдепкі бойынша GoCd жұмыс істейді жергілікті: 8153.
GoCd күшті жақтары:
ашық дереккөз;
қарапайым орнату және конфигурациялау;
жақсы құжаттама;
Керемет пайдаланушы интерфейсі:
бір көріністе қадамдық GoCD орналастыру жолын көрсету мүмкіндігі:
құбыр құрылымының тамаша көрінісі:
GoCD Docker, AWS сияқты ең танымал бұлттық орталарда CD жұмыс процесін оңтайландырады;
құрал құбырдағы ақауларды түзетуге мүмкіндік береді, ол үшін нақты уақыт режимінде міндеттемеден орналастыруға дейінгі әрбір өзгеріс қадағаланады.
Кемшіліктері:
кем дегенде бір агент қажет;
барлық орындалған тапсырмаларды көрсететін консоль жоқ;
әрбір команданы орындау үшін құбыр конфигурациясы үшін бір тапсырма жасау керек;
Плагинді орнату үшін .jar файлын жылжыту керек /plugins/external және серверді қайта іске қосыңыз;
салыстырмалы түрде шағын қауымдастық.
Қорытынды ретінде
Бұл үш құрал ғана, шын мәнінде одан да көп. Таңдау қиын, сондықтан сіз міндетті түрде қосымша аспектілерге назар аударуыңыз керек.
Құралдың ашық бастапқы коды оның не екенін түсінуге, сонымен қатар жаңа мүмкіндіктерді жылдам қосуға мүмкіндік береді. Бірақ егер бірдеңе жұмыс істемесе, сіз тек өзіңізге және қауымдастықтың көмегіне сенуіңіз керек. Ақылы құралдар кейде маңызды болуы мүмкін қолдауды қамтамасыз етеді.
Қауіпсіздік сіздің басты басымдығыңыз болса, ол жергілікті құралмен жұмыс істеуге тұрарлық. Олай болмаса, SaaS шешімін таңдау жақсы нұсқа болып табылады.
Соңында, шынымен тиімді үздіксіз орналастыру процесін қамтамасыз ету үшін ерекшеліктері қол жетімді құралдардың ауқымын қысқартуға мүмкіндік беретін критерийлерді тұжырымдау керек.