ProHoster > Pūnaewele > nūhou pūnaewele > 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).
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".
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):
ʻ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:
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:
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.
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.
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:
Nā Hana/Nā Hana:
Hoʻokomo no Linux
echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
hiki ke hōʻike i ke ala hele ʻana o GoCD i kēlā me kēia ʻaoʻao i ka ʻike hoʻokahi:
hōʻike maikaʻi loa o ka hoʻolālā pipeline:
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.