
Continuous Deployment ke mokhoa o ikhethileng oa nts'etsopele ea software o sebelisetsoang ho kenya tšebetsong mesebetsi e fapaneng ka potlako, ka mokhoa o sireletsehileng le ka katleho ho software.
Sepheo se seholo ke ho theha mokhoa o ka tšeptjoang o ikemetseng o lumellang moqapi ho fana ka sehlahisoa se felileng kapele ho mosebedisi. Ka nako e ts'oanang, liphetoho tse sa khaotseng li etsoa tlhahisong - sena se bitsoa pipeline ea ho fana ka nako e tsoelang pele (CD Pipeline).
Skillbox e khothaletsa: Tsela e sebetsang .
Re hopotsa: bakeng sa babali bohle ba "Habr" - theolelo ea li-ruble tse 10 ha u ngolisa thupelong efe kapa efe ea Skillbox u sebelisa khoutu ea papatso ea "Habr".

Ho na le lisebelisoa tse ngata tse ka sebelisoang ho laola phallo, tse ling tsa tsona li lefshoa, tse ling tsa tsona li lokolohile ka ho feletseng. Sengoliloeng sena se hlalosa litharollo tse tharo tse tsebahalang haholo har'a bahlahisi, tse ka bang molemo bakeng sa mohlophisi e mong le e mong.
Jenkins
Seva e ikemetseng e bulehileng ea mohloli o ikemetseng. Ho bohlokoa ho sebetsa le ho iketsetsa mefuta eohle ea mesebetsi e amanang le ho aha, ho lekola, ho tsamaisa kapa ho tsamaisa software.
Litlhoko tse fokolang tsa PC:
- 256 MB RAM, 1 GB sebaka sa faele.
Ka nepo:
- 1GB RAM, 50GB hard drive sebaka.
Ho sebetsa, o tla hloka software e eketsehileng - Java Runtime Environment (JRE) mofuta oa 8.
Mehaho (computing e abuoang) e shebahala tjena:

Jenkins Server ke setsi se ikarabellang bakeng sa ho amohela GUI, hammoho le ho hlophisa le ho phethahatsa mohaho oohle.
Jenkins Node/Slave/Build Server - lisebelisoa tse ka hlophisoang ho etsa mosebetsi oa kaho molemong oa Monghali.
Ho kenya bakeng sa Linux
Pele, o hloka ho kenyelletsa polokelo ea Jenkins ho sistimi:
cd /tmp && wget -q -O - | sudo apt-key eketsa - echo 'deb binary/' | sudo tee -a /etc/apt/sources.list.d/je
Ntlafatsa polokelo ea sephutheloana:
sudo apt update
Kenya Jenkins:
sudo apt kenya jenkins
Kamora sena, Jenkins e tla fumaneha sistimi ho boema-kepe ba kamehla ba 8080.
Ho hlahloba ts'ebetso, o hloka ho bula aterese ho sebatli sa hau :8080. Sistimi e tla u khothaletsa ho kenya phasewete ea motso oa pele. Lekunutu lena le fumaneha faeleng /var/lib/jenkins/secrets/initialAdminPassword.
Hona joale ntho e 'ngoe le e' ngoe e se e loketse ho sebetsa, u ka qala ho theha phallo ea CI / CD. Sebopeho sa graphical sa tikoloho ea mosebetsi se shebahala tjena:


Matla a Jenkins:
- scalability e fanoeng ke meralo ea Monghali / Makhoba;
- ho fumaneha ha REST XML/JSON API;
- bokhoni ba ho hokahanya palo e kholo ea lisebelisoa ka lebaka la li-plugins;
- sechaba se mahlahahlaha se lulang se fetoha.
Chelete:
- ha ho na block ea analytical;
- Ha se sebopeho se bonolo haholo sa mosebelisi.
TeamCity
Nts'etsopele ea khoebo ka JetBrains. Seva e ntle bakeng sa ho seta ha eona habonolo le sebopeho se setle haholo. Sebopeho sa kamehla se na le palo e kholo ea mesebetsi, palo ea li-plugins tse teng e ntse e eketseha kamehla.
E hloka Java Runtime Environment (JRE) mofuta oa 8.
Litlhoko tsa hardware tsa seva ha li bohlokoa:
- RAM - 3,2 GB;
- processor - tse peli-core, 3,2 GHz;
- mocha oa puisano o nang le bandwidth ea 1 Gbps.
Seva e u lumella ho fumana ts'ebetso e phahameng mosebetsing:
- merero e 60 e nang le litlhophiso tsa likopano tse 300;
- 2 MB kabo bakeng sa log log;
- 50 baemeli ba likopano;
- bokhoni ba ho sebetsa le basebelisi ba 50 ho web version le basebelisi ba 30 ho IDE;
- Likhokahanyo tse 100 tsa kantle tsa VCS, hangata Perforce le Subversion. Karolelano ea nako ea phetoho ke metsotsoana e 120;
- liphetoho tse fetang 150 ka letsatsi;
- ho sebetsa le database ho seva se le seng;
- Litlhophiso tsa tšebetso ea seva ea JVM: -Xmx1100m -XX:MaxPermSize=120m.
Litlhoko tsa moemeli li khethoa ke lisebelisoa tse sebetsang. Mosebetsi o ka sehloohong oa seva ke ho beha leihlo mahlahana ohle a hokahaneng le ho aba likaha ho tloha moleng ho ea ho baemeli bana ho latela litlhoko tsa ho lumellana, ho tlaleha liphetho. Baemeli ba na le li-platform le litsamaiso tse fapaneng tsa ts'ebetso, hammoho le tikoloho e hlophisitsoeng esale pele.
Lintlha tsohle tse mabapi le liphetho tsa kaho li bolokiloe polokelong ea litaba. Haholo-holo, sena se kenyelletsa nalane le lintlha tse ling tse ts'oanang, liphetoho tsa VCS, baemeli, mela ea kaho, liakhaonto tsa basebelisi le litumello. Lintho feela tse sa kenyelletsoeng polokelong ea litaba ke lits'oants'o tsa kaho le li-artifacts.

Ho kenya bakeng sa Linux
Ho kenya TeamCity ka bowena ka setshelo sa Tomcat servlet, sebelisa polokelo ea boitsebiso ea TeamCity: TeamCity .tar.gz. Khoasolla .
tar -xfz TeamCity.tar.gz
/bin /runAll.sh [qala| emisa]
Ha o qala, o hloka ho khetha mofuta oa database oo data ea kopano e tla bolokoa ho eona.

Tokiso ea kamehla e sebetsa :8111/ e nang le moemeli a le mong ea ngolisitsoeng oa ho haha o sebetsang ho PC e le 'ngoe.
Matla a TeamCity:
- seta e bonolo;
- mosebedisi-ba botsoalle segokanyimmediamentsi sa sebolokigolo;
- palo e kholo ea mesebetsi e hahiloeng;
- tšebeletso ea tšehetso;
- ho na le RESTful API;
- eseng litokomane tse mpe;
- tshireletso e ntle.
Chelete:
- kopanyo e fokolang;
- Sena ke sesebelisoa se lefuoang;
- sechaba se senyenyane (seo, leha ho le joalo, se ntseng se hōla).
GoCD
Morero oa mohloli o bulehileng o hlokang Java Runtime Environment (JRE) mofuta oa 8 ho kenya le ho sebetsa.
Litlhokahalo tsa Tsamaiso:
- RAM - bonyane 1 GB, ho feta ho molemo;
- processor - dual-core, e nang le maqhubu a mantlha a 2 GHz;
- Hard disk - bonyane 1 GB ea sebaka sa mahala.
Moemeli:
- RAM - bonyane 128 MB, e betere ho feta;
- processor - bonyane 2 GHz.
Seva e netefatsa ts'ebetso ea liakhente mme e fana ka sebopeho se bonolo bakeng sa mosebelisi:

Mehato/Mesebetsi/Mesebetsi:

Ho kenya bakeng sa Linux
echo "deb /" | sudo tee /etc/apt/sources.list.d/gocd.list
sekonopo | sudo apt-key eketsa -
eketsa-apt-repository ppa:openjdk-r/ppa
E fumaneha ka mokhoa o nepahetseng
apt-get install -y openjdk-8-jre
apt-fumana kenya go-server
apt-get install go-agent
/etc/init.d/go-server [start|stop|status|restart]
/etc/init.d/go-agent [start|stop|status|restart]
Ka kamehla, GoCd e sebetsa ka : 8153.
Matla a GoCd:
- mohloli o bulehileng;
- bonolo ho kenya le ho seta;
- litokomane tse ntle;
- sebopeho se setle sa mosebelisi:

- Bokhoni ba ho bonts'a tsela ea phepelo ea GoCD mohato ka mohato ponong e le 'ngoe:

- pontšo e babatsehang ea sebopeho sa lipeipi:

- GoCD e ntlafatsa ts'ebetso ea CD ho pholletsa le libaka tse tsebahalang haholo tsa maru ho kenyelletsa Docker, AWS;
- Sesebelisoa sena se etsa hore ho khonehe ho lokisa mathata liphaepheng, tseo ho tsona ho lateloang phetoho e 'ngoe le e' ngoe ho tloha boitlamo ho isa ho phepelong ka nako ea nnete.
Chelete:
- bonyane ho hlokahala moemeli a le mong;
- ha ho na console ea ho bonts'a mesebetsi eohle e phethiloeng;
- ho phethahatsa taelo e 'ngoe le e' ngoe, o hloka ho etsa mosebetsi o le mong bakeng sa tlhophiso ea lipeipi;
- Ho kenya plugin o hloka ho tsamaisa faele ea .jar ho /plugins/external le ho qala seva hape;
- sechaba se batlang se le senyane.
E le sephetho
Tsena ke lisebelisoa tse tharo feela, ha e le hantle ho na le tse ling tse ngata. Ho thata ho khetha, kahoo hoa hlokahala ho ela hloko lintlha tse eketsehileng.
Khoutu e bulehileng ea sesebelisoa e u lumella ho utloisisa hore na ke eng, le ho eketsa likarolo tse ncha kapele. Empa haeba ho hong ho sa sebetse, o tlameha ho itšetleha feela ka uena le thuso ea sechaba. Lisebelisoa tse lefuoang li fana ka tšehetso, eo ka linako tse ling e ka bang bohlokoa haholo.
Haeba ts'ireletso e le eona ntho e tlang pele bophelong ba hau, u lokela ho lula u sebelisa sesebelisoa se teng. Haeba ho se joalo, ho khetha tharollo ea SaaS ke khetho e ntle.
Qetellong, ho etsa bonnete ba hore ho na le ts'ebetso e tsoelang pele e atlehang e tsoelang pele, ho hlokahala hore ho thehoe litekanyetso tseo ho khetheha ho tla re lumella ho fokotsa mefuta e mengata ea lisebelisoa tse teng.
Skillbox e khothaletsa:
- Thuto ea lilemo tse peli e sebetsang .
- Tsela ea inthanete .
- Thuto ea selemo e sebetsang .
Source: www.habr.com
