Ҷойгиркунии доимӣ як равиши махсус дар таҳияи нармафзор аст, ки барои зуд, бехатар ва самаранок иҷро кардани вазифаҳои гуногун дар нармафзор истифода мешавад.
Идеяи асосй ба вучуд овардани процесси боэътимоди автоматиконидашуда мебошад, ки ба таҳиякунанда имкон медиҳад, ки маҳсулоти тайёрро зуд ба корбар расонад. Дар баробари ин, дар истеҳсолот тағйироти доимӣ ворид карда мешавад - ин қубури интиқоли доимӣ (CD Pipeline) номида мешавад.
Skillbox тавсия медиҳад: Курси амалӣ
"Таҳиягари мобилӣ PRO" .Мо ба шумо хотиррасон мекунем: барои ҳамаи хонандагони "Habr" - тахфифи 10 000 рубл ҳангоми номнавис шудан ба курсҳои Skillbox бо истифода аз рамзи таблиғотии "Habr".
Барои назорат кардани ҷараён шумо метавонед як қатор асбобҳоро истифода баред, аз ҷумла ҳам пулакӣ ва ҳам комилан ройгон. Ин мақола се ҳалли маъмултаринро дар байни таҳиягарон тавсиф мекунад, ки метавонанд барои ҳар як барномасоз муфид бошанд.
Ҷенкинс
Сервери автоматикунонии манбаи кушодаи комилан мустақил. Барои автоматикунонии ҳама гуна вазифаҳои марбут ба сохтан, озмоиш, интиқол ё ҷойгиркунии нармафзор кор кардан бамаврид аст.
Талаботи ҳадди аққали компютер:
- 256 MB RAM, 1 ГБ фазои файл.
Беҳтарин:
- 1 ГБ RAM, 50 ГБ диски сахт.
Барои кор, ба шумо инчунин нармафзори иловагӣ лозим аст - Java Runtime Environment (JRE) версияи 8.
Меъморӣ (компютерҳои тақсимшуда) чунин менамояд:
Jenkins Server як насбест, ки барои хостинги GUI, инчунин ташкил ва иҷрои тамоми сохтмон масъул аст.
Ҷенкинс Node/Slave/Build Server - дастгоҳҳое, ки метавонанд барои иҷрои корҳои сохтмонӣ аз номи Мастер танзим карда шаванд (гиреҳи асосӣ).
Насб барои Linux
Аввалан ба шумо лозим аст, ки анбори Ҷенкинсро ба система илова кунед:
cd /tmp && wget -q -O —
Навсозии анбори бастаҳо:
Садо Ояндасоз
Ҷенкинсро насб кунед:
sudo apt Ҷенкинсро насб кунед
Пас аз ин, Ҷенкинс дар система тавассути бандари пешфарз 8080 дастрас хоҳад шуд.
Барои санҷидани функсия, шумо бояд суроғаро дар браузер кушоед
Ҳоло ҳама чиз барои рафтан омода аст, шумо метавонед ба эҷоди ҷараёнҳои CI/CD шурӯъ кунед. Интерфейси графикии мизи корӣ чунин менамояд:
Ҷонибҳои Ҷенкинс:
- миқёспазирӣ аз ҷониби меъмории Master/Slave таъмин карда мешавад;
- мавҷудияти REST XML/JSON API;
- қобилияти пайваст кардани шумораи зиёди васеъшавӣ ба туфайли плагинҳо;
- ҷомеаи фаъол ва доимо инкишофёбанда.
Эзоҳ:
- блоки таҳлилӣ вуҷуд надорад;
- Интерфейси хеле барои истифодабаранда ќулай нест.
TeamCity
Рушди тиҷоратӣ аз JetBrains. Сервер бо танзимоти оддӣ ва интерфейси аъло хуб аст. Конфигуратсияи пешфарз дорои шумораи зиёди функсияҳо мебошад ва шумораи плагинҳои дастрас мунтазам меафзояд.
Нусхаи 8 Java Runtime Environment (JRE) -ро талаб мекунад.
Талаботи сахтафзори сервер муҳим нестанд:
- RAM - 3,2 ГБ;
- протсессори дугона-аслӣ, 3,2 ГГц;
- канали алоқа бо иқтидори 1 Гб/с.
Сервер ба шумо имкон медиҳад, ки иҷрои баландро ба даст оред:
- 60 лоиҳа бо 300 конфигуратсияи сохтмон;
- Ҷудо кардани 2 МБ барои сабти сохтмон;
- 50 агентҳои сохтмонӣ;
- қобилияти кор кардан бо 50 корбар дар версияи веб ва 30 корбар дар IDE;
- 100 пайвасти VCS беруна, одатан 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 [оғоз|ист]
Вақте ки шумо бори аввал оғоз мекунед, шумо бояд навъи махзани маълумотро интихоб кунед, ки дар он маълумоти ҷамъбаст нигоҳ дошта мешавад.
Конфигуратсияи пешфарз кор мекунад
Тарафҳои тавонои TeamCity:
- танзими осон;
- интерфейси истифодабаранда;
- шумораи зиёди функсияҳои дарунсохт;
- Хадамоти дастгирӣ;
- API RESTful мавҷуд аст;
- ҳуҷҷатҳои хуб;
- амнияти хуб.
Эзоҳ:
- ҳамгироии маҳдуд;
- Ин воситаи пулакӣ аст;
- як ҷомеаи хурд (ки, аммо, меафзояд).
GoCD
Лоиҳаи кушодаасос, ки барои насб ва истифода версияи Java Runtime Environment (JRE) 8-ро талаб мекунад.
Талабот ба система:
- RAM - 1 ГБ ҳадди ақал, бештар беҳтар аст;
- протсессори дугона-аслӣ, бо басомади асосии 2 ГГц;
- диски сахт - на камтар аз 1 ГБ фазои озод.
Агент:
- RAM - на камтар аз 128 MB, бештар беҳтар аст;
- протсессори - на камтар аз 2 ГГц.
Сервер кори агентҳоро таъмин мекунад ва интерфейси қулайро барои корбар таъмин мекунад:
Марҳилаҳо/Ҷойҳо/Вазифаҳо:
Насб барои Linux
ҳамовоз "деб
лаблабу
add-apt-repository ppa: openjdk-r/ppa
навсозии apt-get
apt-get install -y openjdk-8-jre
apt-get насб кардани go-server
apt-get install go-agent
/etc/init.d/go-server [оғоз|қатъ|статус|бозоғоз кардан]
/etc/init.d/go-agent [оғоз|қатъ|статус|бозоғоз кардан]
Бо нобаёнӣ GoCd кор мекунад
Тарафҳои тавонои GoCd:
- манбаи кушода;
- насб ва конфигуратсияи оддӣ;
- ҳуҷҷатҳои хуб;
- Интерфейси бузурги корбар:
- қобилияти нишон додани қадам ба қадам роҳи ҷойгиркунии GoCD дар як намуд:
- Намоиши аълои сохтори қубур:
- GoCD ҷараёни кори CD-ро дар маъмултарин муҳитҳои абрӣ, аз ҷумла Docker, AWS оптимизатсия мекунад;
- асбоб имкон медиҳад, ки мушкилот дар лӯла ислоҳ карда шаванд, ки барои онҳо ҳар як тағирот аз ӯҳдадорӣ то ҷойгиркунӣ дар вақти воқеӣ пайгирӣ карда мешавад.
Эзоҳ:
- ҳадди аққал як агент лозим аст;
- барои намоиш додани ҳама вазифаҳои иҷрошуда ягон консол вуҷуд надорад;
- барои иҷрои ҳар як фармон, шумо бояд як вазифаро барои конфигуратсияи қубур эҷод кунед;
- Барои насб кардани плагин ба шумо лозим аст, ки файли .jar-ро ба /plugins/external ва серверро бозоғоз намоед;
- ҷомеаи нисбатан хурд.
Хамчун хулоса
Инҳо танҳо се асбоб ҳастанд, дар асл бисёр чизҳои дигар ҳастанд. Интихоб кардан душвор аст, бинобар ин шумо бешубҳа бояд ба ҷанбаҳои иловагӣ диққат диҳед.
Рамзи кушодаи асбоб имкон медиҳад, ки фаҳмем, ки он чӣ аст ва илова бар он хусусиятҳои навро зудтар илова кунед. Аммо агар чизе кор накунад, пас шумо бояд танҳо ба худ ва кӯмаки ҷомеа такя кунед. Воситаҳои пулакӣ дастгирӣ мекунанд, ки баъзан метавонанд муҳим бошанд.
Агар амният афзалияти аввалиндараҷаи шумо бошад, он бамаврид аст, ки бо асбоби маҳаллӣ кор кунед. Агар не, пас интихоби ҳалли SaaS як варианти хуб аст.
Ва ниҳоят, барои таъмини раванди воқеии самараноки пайвастаи ҷойгиркунӣ, шумо бояд меъёрҳоеро таҳия кунед, ки хусусиятҳои онҳо ба шумо имкон медиҳанд, ки доираи асбобҳои дастрасро маҳдуд кунед.
Skillbox тавсия медиҳад:
- Курси дусолаи амалй
"Ман PRO Web Developer ҳастам" .- Курси онлайн
"Таҳиягари C#" .- Курси солонаи амалӣ
"Таҳиягари PHP аз 0 то PRO" .
Манбаъ: will.com