3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

ʻO ka Continuous Deployment kahi ala kūikawā i ka hoʻomohala polokalamu i hoʻohana ʻia e hoʻokō wikiwiki, palekana a maikaʻi hoʻi i nā hana like ʻole i ka polokalamu.

ʻO ka manaʻo nui ka hana ʻana i kahi kaʻina automated hilinaʻi e hiki ai i ka mea hoʻomohala ke hāʻawi wikiwiki i ka huahana i hoʻopau ʻia i ka mea hoʻohana. I ka manawa like, hoʻololi mau ʻia ka hana - ua kapa ʻia kēia he pipeline hoʻomau mau (CD Pipeline).

Manaʻo ʻo Skillbox: Papa hana "Hoʻolālā Mobile PRO".

Hoʻomaopopo mākou iā ʻoe: no ka poʻe heluhelu a pau o "Habr" - kahi ho'ēmi o 10 rubles i ka wā e kākau inoa ai i kekahi papa Skillbox e hoʻohana ana i ka code promotional "Habr".

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

No ka hoʻomaluʻana i ke kahe, hiki iāʻoe ke hoʻohana i nā mea hana likeʻole, me ka uku a me ka ukuʻole. Hōʻike kēia ʻatikala i ʻekolu o nā hopena kaulana loa i waena o nā mea hoʻomohala e hiki ke hoʻohana i kēlā me kēia polokalamu.

ʻO Jenkins

Loaʻa iā ia iho ka mea hoʻohana ponoʻī i ke kumu hoʻoheheʻe. Pono e hana pū me ka hoʻokae ʻana i nā ʻano hana āpau e pili ana i ke kūkulu ʻana, ka hoʻāʻo ʻana, ka hoʻouna ʻana, a i ʻole ka hoʻohana ʻana i nā polokalamu.

Nā koi PC liʻiliʻi:

  • 256 MB RAM, 1 GB wahi waihona.

ʻoi loa:

  • 1 GB RAM, 50 GB paʻa paʻa.

No ka hana, pono ʻoe i nā polokalamu hou - Java Runtime Environment (JRE) version 8.

Penei ke ano o ka hale hana (distributed computing):
3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

ʻO Jenkins Server kahi hoʻonohonoho i kuleana no ka hoʻokipa GUI, a me ka hoʻonohonoho ʻana a me ka hoʻokō ʻana i ke kūkulu holoʻokoʻa.

ʻO Jenkins Node/Slave/Build Server - nā mea hiki ke hoʻonohonoho ʻia e hana i ka hana kūkulu ma ka inoa o ka Haku (master node).

Hoʻokomo no Linux

Pono ʻoe e hoʻohui i ka waihona Jenkins i ka ʻōnaehana:

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

Hōʻano hou i ka waihona pūʻolo:

sudo apt update

E hoʻouka iā Jenkins:

sudo apt e hoʻokomo i nā jenkins

Ma hope o kēia, e loaʻa ʻo Jenkins i ka ʻōnaehana ma o ka port default 8080.

No ka nānā ʻana i ka hana, pono ʻoe e wehe i ka helu wahi ma ka polokalamu kele pūnaewele localhost:8080. A laila e koi ka ʻōnaehana iā ʻoe e hoʻokomo i ka ʻōlelo huna mua no ka mea hoʻohana kumu. Aia kēia ʻōlelo huna ma ka faila /var/lib/jenkins/secrets/initialAdminPassword.

I kēia manawa ua mākaukau nā mea a pau, hiki iā ʻoe ke hoʻomaka e hana i nā kahe CI / CD. ʻO ke kiʻi kiʻi o ka papa hana e like me kēia:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

Nā ikaika o Jenkins:

  • scalability i hāʻawi ʻia e ka Master/Slave architecture;
  • loaʻa iā REST XML/JSON API;
  • ka hiki ke hoʻohui i ka nui o nā hoʻonui mahalo i nā plugins;
  • kaiaulu ʻeleu a ulu mau.

ʻAla:

  • ʻaʻohe poloka analytical;
  • ʻaʻole hoʻohana maikaʻi loa.

KauHalia

Hoʻomohala kālepa mai JetBrains. Maikaʻi ke kikowaena me ka hoʻonohonoho maʻalahi a me kahi kikowaena maikaʻi loa. He nui nā hana o ka hoʻonohonoho paʻamau, a ke hoʻonui mau nei ka nui o nā plugins i loaʻa.

Pono ʻo Java Runtime Environment (JRE) version 8.

ʻAʻole koʻikoʻi nā koi lako lako kikowaena:

  • RAM - 3,2 GB;
  • kaʻina hana - pālua-core, 3,2 GHz;
  • kaila kamaʻilio me ka mana o 1 Gb/s.

Hāʻawi ke kikowaena iā ʻoe e hoʻokō i ka hana kiʻekiʻe:

  • 60 papahana me 300 kūkulu hoʻonohonoho;
  • 2 MB hoʻokaʻawale no ke kūkulu ʻana i ka log;
  • 50 mau mea hana hale;
  • ka hiki ke hana me 50 mea hoʻohana ma ka pūnaewele pūnaewele a me 30 mea hoʻohana i ka IDE;
  • 100 mau pilina o waho VCS, maʻamau Perforce a me Subversion. ʻO ka manawa hoʻololi maʻamau he 120 kekona;
  • ʻoi aku ma mua o 150 mau hoʻololi i kēlā me kēia lā;
  • e hana ana me ka waihona ma kahi kikowaena;
  • Nā hoʻonohonoho kaʻina hana kikowaena JVM: -Xmx1100m -XX:MaxPermSize=120m.

Hoʻokumu ʻia nā koi ʻoihana ma nā hui holo. ʻO ka hana nui o ke kikowaena ka nānā ʻana i nā ʻelele pili āpau a hāʻawi i nā hui queued i kēia mau ʻelele e pili ana i nā koi kūpono, e hōʻike ana i nā hopena. Hele mai nā ʻelele i nā ʻano papahana a me nā ʻōnaehana hana, me kahi kaiapuni i hoʻonohonoho mua ʻia.

Mālama ʻia nā ʻike āpau e pili ana i nā hopena kūkulu i ka waihona. ʻO ka mea nui kēia ka mōʻaukala a me nā ʻikepili like ʻole, nā loli VCS, nā ʻelele, kūkulu i nā queues, nā moʻokāki mea hoʻohana a me nā ʻae. ʻAʻole hoʻokomo wale ka waihona i nā lāʻau kūkulu a me nā mea waiwai.

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

Hoʻokomo no Linux

No ka hoʻokomo lima ʻana i TeamCity me kahi pahu servlet Tomcat, pono ʻoe e hoʻohana i ka waihona TeamCity: TeamCity .tar.gz. Hoʻoiho hiki iā ʻoe ke loaʻa mai ʻaneʻi.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [hoʻomaka|kū]

Ke hoʻomaka mua ʻoe, pono ʻoe e koho i ke ʻano o ka waihona kahi e mālama ʻia ai ka ʻikepili hui.

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

Holo ka hoʻonohonoho paʻamau localhost: 8111/ me hoʻokahi mea hana hale i hoʻopaʻa inoa ʻia e holo ana ma ka PC hoʻokahi.

Nā ikaika o TeamCity:

  • hoʻonohonoho maʻalahi;
  • mea hoʻohana-friendly interface;
  • ka nui o nā hana i kūkulu ʻia;
  • Ka lawelawe kākoʻo;
  • aia kahi API RESTful;
  • palapala maikai;
  • palekana maikaʻi.

ʻAla:

  • hoʻohui palena;
  • He mea hana uku keia;
  • kahi kaiaulu liʻiliʻi (e ulu ana naʻe).

HeleCD

He papahana kumu wehe e koi ana iā Java Runtime Environment (JRE) version 8 no ka hoʻokomo a me ka hana.

Nā mea e pono ai:

  • RAM - 1 GB ka liʻiliʻi, ʻoi aku ka maikaʻi;
  • kaʻina hana - pālua-core, me ke alapine kumu o 2 GHz;
  • paakiki - ma ka liʻiliʻi loa 1 GB o ka hakahaka.

Agena:

  • RAM - ma kahi o 128 MB, ʻoi aku ka maikaʻi;
  • kaʻina hana - ma kahi o 2 GHz.

Mālama ka server i ka hana o nā mea hana a hāʻawi i kahi kikowaena kūpono no ka mea hoʻohana:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

Nā Hana/Nā Hana:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

Hoʻokomo no Linux

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

pana download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key hoʻohui -
hoʻohui-apt-repository ppa:openjdk-r/ppa

akamai hoi-E IeAIIeXIAaIEN

apt-e hoʻokomo -y openjdk-8-jre

apt-e hoʻokomo i ka hele-server

apt-e hoʻokomo i ka go-agent

/etc/init.d/go-server [hoʻomaka|hoʻoki|kūlana|hoʻomaka hou]

/etc/init.d/go-agent [hoʻomaka|hoʻoki|kūlana|hoʻomaka hou]

Ma ka maʻamau, holo ʻo GoCd localhost: 8153.

Nā ikaika o GoCd:

  • open source;
  • hoʻonohonoho maʻalahi a me ka hoʻonohonoho;
  • palapala maikai;

  • Mea hoʻohana maikaʻi loa:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

  • hiki ke hōʻike i ke ala hele ʻana o GoCD i kēlā me kēia ʻaoʻao i ka ʻike hoʻokahi:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

  • hōʻike maikaʻi loa o ka hoʻolālā pipeline:

3 mau mea hana kaulana no ka hoʻonohonoho ʻana i ka hoʻolaha hoʻomau (Continuous Deployment)

  • Hoʻopono ʻo GoCD i ka CD workflow i nā ʻōpuni ao kaulana loa me Docker, AWS;
  • hiki i ka mea hana ke hoʻoponopono i nā pilikia i loko o ka pipeline, kahi e nānā ai i kēlā me kēia hoʻololi mai ka hana a hiki i ka hoʻouna ʻana i ka manawa maoli.

ʻAla:

  • pono hoʻokahi luna;
  • ʻaʻohe console e hōʻike i nā hana i pau;
  • e hoʻokō i kēlā me kēia kauoha, pono ʻoe e hana i hoʻokahi hana no ka hoʻonohonoho pipeline;
  • No ka hoʻouka ʻana i ka plugin pono ʻoe e hoʻoneʻe i ka faila .jar i /plugins/waho a hoʻomaka hou i ke kikowaena;
  • kaiaulu liʻiliʻi.

Ma ke ʻano he hopena

ʻEkolu wale nō kēia mau mea hana, ʻoiaʻiʻo he nui aku. He paʻakikī ke koho, no laila pono ʻoe e hoʻolohe i nā ʻano ʻē aʻe.

ʻO ka code open source o ka hāmeʻa e hiki ai ke hoʻomaopopo i ke ʻano o ia mea, me ka hoʻohui wikiwiki ʻana i nā hiʻohiʻona hou. Akā inā hana ʻole kekahi mea, pono ʻoe e hilinaʻi wale iā ʻoe iho a me ke kōkua o ke kaiāulu. Hāʻawi nā mea hana uku i ke kākoʻo i hiki ke koʻikoʻi i kekahi manawa.

Inā ʻo ka palekana kāu mea nui, pono e hana me kahi mea hana kūloko. Inā ʻaʻole, ʻo ke koho ʻana i kahi hopena SaaS kahi koho maikaʻi.

A ʻo ka mea hope loa, i mea e hōʻoia ai i kahi kaʻina hana hoʻomau hoʻomau pono, pono ʻoe e hana i nā koina nona nā kikoʻī e ʻae iā ʻoe e hōʻemi i ka nui o nā mea hana i loaʻa.

Manaʻo ʻo Skillbox:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka