Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

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.

Mohopolo o ka sehloohong ke ho theha mokhoa o ka tšeptjoang o ikemetseng o lumellang moqapi hore a fane ka sehlahisoa se felileng kapele ho mosebelisi. 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 "Mobile Developer PRO".

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".

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Ho laola phallo, o ka sebelisa lisebelisoa tse ngata tse fapaneng, ho kenyelletsa le tse lefshoang le tse sa lefelloeng ka ho feletseng. Sengoliloeng sena se hlalosa litharollo tse tharo tse tsebahalang haholo har'a bahlahisi ba ka bang molemo ho moetsi e mong le e mong oa lenaneo.

Jenkins

Seva ea othomathiki e bulehileng ka botlalo e ikemetseng. Ho bohlokoa ho sebetsa le ho iketsetsa mefuta eohle ea mesebetsi e amanang le ho aha, ho etsa liteko, ho tsamaisa thepa kapa ho tsamaisa software.

Litlhoko tse fokolang tsa PC:

  • 256 MB RAM, 1 GB sebaka sa faele.

E nepahetseng:

  • 1 GB ea RAM, 50 GB hard drive.

Ho sebetsa, o tla hloka software e eketsehileng - Java Runtime Environment (JRE) mofuta oa 8.

Mehaho (computing e abuoang) e shebahala tjena:
Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

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 Master (master node).

Ho kenya Linux

Pele o hloka ho kenyelletsa polokelo ea Jenkins ho sistimi:

cd /tmp && wget -q -O - pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key eketsa - echo 'deb pkg.jenkins.io/debian-stable binary/' | sudo tee -a /etc/apt/sources.list.d/je

Ntlafatsa polokelo ea sephutheloana:

sudo apt update

Kenya Jenkins:

sudo apt kenya jenkins

Ka mor'a sena, Jenkins e tla fumaneha tsamaisong ka "port" ea kamehla ea 8080.

Ho hlahloba ts'ebetso, o hloka ho bula aterese ho sebatli Localhost:8080. Sistimi e tla u khothaletsa ho kenya phasewete ea pele bakeng sa mosebelisi oa motso. Lekunutu lena le fumaneha faeleng /var/lib/jenkins/secrets/initialAdminPassword.

Hona joale ntho e 'ngoe le e' ngoe e se e loketse ho tsamaea, u ka qala ho theha phallo ea CI / CD. Sebopeho sa graphical sa workbench se shebahala tjena:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Jenkins Strengths:

  • 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;
  • setjhaba se mafolofolo le se dulang se fetoha.

Chelete:

  • ha ho na block ea analytical;
  • eseng haholo mosebedisi-ba botsoalle segokanyimmediamentsi sa sebolokigolo.

TeamCity

Nts'etsopele ea khoebo e tsoang ho JetBrains. Seva e ntle ka ho seta habonolo le sebopeho se setle haholo. Sebopeho sa kamehla se na le palo e kholo ea mesebetsi, 'me 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 haholo:

  • RAM - 3,2 GB;
  • processor - tse peli-core, 3,2 GHz;
  • mocha oa puisano o nang le matla a 1 Gb / s.

Seva e u lumella ho fihlela ts'ebetso e phahameng:

  • merero e 60 e nang le litlhophiso tse 300 tsa kaho;
  • 2 MB kabo bakeng sa log log;
  • 50 liakhente tsa kaho;
  • bokhoni ba ho sebetsa le basebelisi ba 50 ho web version le basebelisi ba 30 ho IDE;
  • 100 likhokahano tsa VCS kantle, 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 ipapisitse le ho tsamaisa likopano. Mosebetsi o ka sehloohong oa seva ke ho beha leihlo baemeli bohle ba hokahaneng le ho aba likopano ho tloha moleng ho ea ho baemeli bana ho latela litlhoko tsa ho lumellana, ho tlaleha liphetho. Baemeli ba tla ka li-platform le lits'ebetso tse fapaneng, hammoho le tikoloho e hlophisitsoeng esale pele.

Lintlha tsohle tse mabapi le liphetho tsa kaho li bolokiloe polokelong ea litaba. Haholo-holo ena ke nalane le lintlha tse ling tse ts'oanang, liphetoho tsa VCS, liakhente, mela ea ho haha, liakhaonto tsa basebelisi le litumello. Sebaka sa polokelo ea boitsebiso ha se kenyeletse feela li-logs le li-artifacts.

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Ho kenya Linux

Ho kenya TeamCity ka bowena ka setshelo sa Tomcat servlet, o lokela ho sebedisa polokelo ya polokelo ya TeamCity: TeamCity .tar.gz. Khoasolla u ka e fumana ho tloha mona.

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.

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Tokiso ea kamehla e ntse e tsoela pele Localhost: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;
  • litokomane tse ntle;
  • 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 bakeng sa 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 drive - bonyane 1 GB ea sebaka sa mahala.

Moemeli:

  • RAM - bonyane 128 MB, ho feta ho molemo;
  • processor - bonyane 2 GHz.

Seva e netefatsa ts'ebetso ea liakhente mme e fana ka sebopeho se bonolo bakeng sa mosebelisi:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Mehato/Mesebetsi/Mesebetsi:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

Ho kenya Linux

pheta "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

sekonopo download.gocd.org/GOCD-GPG-KEY.asc | 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 ea sebetsa Localhost: 8153.

Matla a GoCd:

  • mohloli o bulehileng;
  • ho kenya le ho hlophisoa habonolo;
  • litokomane tse ntle;

  • Sebopeho se setle sa mosebelisi:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

  • bokhoni ba ho bonts'a mohato ka mohato tsela ea ho tsamaisa GoCD ka pono e le 'ngoe:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

  • pontšo e babatsehang ea mohaho oa lipeipi:

Lisebelisoa tse 3 tse tsebahalang tsa ho hlophisa phepelo e tsoelang pele (Tsamaiso e Tsoelang Pele)

  • GoCD e ntlafatsa phallo ea mosebetsi oa CD libakeng tse tsebahalang haholo tsa maru ho kenyelletsa Docker, AWS;
  • sesebelisoa se etsa hore ho khonehe ho lokisa mathata a phaephe, moo ho lateloang phetoho e 'ngoe le e' ngoe ho tloha boitlamo ho isa 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 e khetha, ka hona o hloka ho ela hloko lintlha tse ling.

Khoutu ea mohloli o bulehileng oa sesebelisoa e etsa hore ho khonehe ho utloisisa hore na ke eng, le ho eketsa likarolo tse ncha kapele. Empa haeba ho hong ho sa sebetse, joale u 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.

Haeba ts'ireletso e le eona ntho e tlang pele bophelong ba hau, ho bohlokoa ho sebetsa ka sesebelisoa sa lehae. Haeba ho se joalo, joale ho khetha tharollo ea SaaS ke khetho e ntle.

'Me qetellong, e le ho etsa bonnete ba hore ho na le ts'ebetso e tsoelang pele e atlehang e tsoelang pele, u lokela ho etsa litekanyetso tseo litlhaloso tsa tsona li tla u lumella ho fokotsa mefuta e mengata ea lisebelisoa tse teng.

Skillbox e khothaletsa:

Source: www.habr.com

Eketsa ka tlhaloso