Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Continuous Deployment ndi njira yapadera pakupanga mapulogalamu omwe amagwiritsidwa ntchito mwachangu, mosamala komanso moyenera ntchito zosiyanasiyana zamapulogalamu.

Lingaliro lalikulu ndikupanga njira yodalirika yodziwikiratu yomwe imalola wopanga mapulogalamu kuti apereke mwachangu chomaliza kwa wogwiritsa ntchito. Panthawi imodzimodziyo, kusintha kosalekeza kumapangidwira kupanga - izi zimatchedwa pipeline yopereka mosalekeza (CD Pipeline).

Skillbox imalimbikitsa: Njira yothandiza "Mobile Developer PRO".

Tikukukumbutsani: kwa owerenga onse a Habr - kuchotsera ma ruble 10 polembetsa maphunziro aliwonse a Skillbox pogwiritsa ntchito nambala yotsatsira ya Habr.

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Kuti muwongolere kuyenda, mutha kugwiritsa ntchito zida zosiyanasiyana, kuphatikiza zonse zolipira komanso zaulere. Nkhaniyi ikufotokoza njira zitatu zodziwika bwino pakati pa opanga mapulogalamu omwe angakhale othandiza kwa aliyense wopanga mapulogalamu.

Jenkins

Seva yodziyimira yokha yotseguka yotsegulira. Ndikoyenera kugwira ntchito limodzi ndi mitundu yonse ya ntchito zokhudzana ndi zomangamanga, kuyesa, kutumiza, kapena kutumiza mapulogalamu.

Zofunikira zochepa za PC:

  • 256 MB RAM, 1 GB file space.

Zokwanira:

  • 1 GB RAM, 50 GB hard drive.

Kuti mugwire ntchito, mufunikanso mapulogalamu owonjezera - Java Runtime Environment (JRE) mtundu 8.

Zomangamanga (zogawa makompyuta) zikuwoneka motere:
Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Jenkins Server ndi kukhazikitsa komwe kumayang'anira kuchititsa GUI, komanso kukonza ndi kukonza zonse.

Jenkins Node/Slave/Build Server - zida zomwe zitha kukhazikitsidwa kuti zigwire ntchito yomanga m'malo mwa Master (node ​​yayikulu).

Kuyika kwa Linux

Choyamba muyenera kuwonjezera chosungira cha Jenkins ku dongosolo:

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

Sinthani nkhokwe ya phukusi:

sudo apt update

Ikani Jenkins:

sudo apt kukhazikitsa jenkins

Pambuyo pake, Jenkins ipezeka mudongosolo kudzera pa doko lokhazikika 8080.

Kuti muwone magwiridwe antchito, muyenera kutsegula adilesi mu msakatuli localhost:8080. Dongosololi lidzakulimbikitsani kuti mulowetse mawu achinsinsi oyambira ogwiritsa ntchito mizu. Mawu achinsinsiwa ali mu fayilo /var/lib/jenkins/secrets/initialAdminPassword.

Tsopano zonse zakonzeka kupita, mukhoza kuyamba kupanga CI/CD ikuyenda. Mawonekedwe a graphical a workbench amawoneka motere:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Jenkins Mphamvu:

  • scalability yoperekedwa ndi kamangidwe ka Master/Kapolo;
  • kupezeka kwa REST XML/JSON API;
  • kutha kulumikiza kuchuluka kwa zowonjezera chifukwa cha mapulagini;
  • anthu achangu komanso akusintha mosalekeza.

Wotsatsa:

  • palibe chipika chowunikira;
  • osati mawonekedwe osavuta kugwiritsa ntchito.

TeamCity

Kukula kwamalonda kuchokera ku JetBrains. Seva ndiyabwino ndikukhazikitsa kosavuta komanso mawonekedwe abwino kwambiri. Kukonzekera kosasintha kumakhala ndi ntchito zambiri, ndipo chiwerengero cha mapulagini omwe alipo chikuwonjezeka nthawi zonse.

Imafunikira Java Runtime Environment (JRE) mtundu 8.

Zofunikira pa hardware ya seva ndizosafunikira:

  • RAM - 3,2 GB;
  • purosesa - wapawiri-pachimake, 3,2 GHz;
  • njira yolumikizirana yokhala ndi mphamvu ya 1 Gb/s.

Seva imakulolani kuti muchite bwino kwambiri:

  • Ma projekiti 60 okhala ndi masinthidwe omanga 300;
  • perekani 2 MB pa chipika chomanga;
  • 50 othandizira omanga;
  • Kutha kugwira ntchito ndi ogwiritsa ntchito 50 pa intaneti ndi ogwiritsa ntchito 30 mu IDE;
  • 100 kulumikizana kwa VCS yakunja, nthawi zambiri Perforce ndi Subversion. Kusintha kwapakati nthawi ndi masekondi 120;
  • zosintha zopitilira 150 patsiku;
  • kugwira ntchito ndi database pa seva imodzi;
  • Zokonda pa seva ya JVM: -Xmx1100m -XX:MaxPermSize=120m.

Zofunikira za agent zimachokera pakuyendetsa misonkhano. Ntchito yayikulu ya seva ndiyo kuyang'anira othandizira onse olumikizidwa ndikugawira misonkhano yam'mizere kwa othandizirawa potengera zofunikira zofananira, kufotokoza zotsatira. Othandizira amabwera m'mapulatifomu osiyanasiyana ndi machitidwe ogwiritsira ntchito, kuphatikizapo malo okonzedweratu.

Zonse zokhudzana ndi zotsatira zomanga zimasungidwa mu database. Makamaka iyi ndi mbiri ndi zina zofananira, kusintha kwa VCS, othandizira, mizere yomanga, maakaunti a ogwiritsa ntchito ndi zilolezo. Dongosolo la database silimangophatikiza zipika ndi zinthu zakale.

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Kuyika kwa Linux

Kuti muyike TeamCity pamanja ndi chidebe cha Tomcat servlet, muyenera kugwiritsa ntchito zolemba zakale za TeamCity: TeamCity .tar.gz. Tsitsani mutha kuzipeza kuchokera pano.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [yamba | imani]

Mukangoyamba, muyenera kusankha mtundu wa database yomwe deta ya msonkhano idzasungidwa.

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Kusintha kokhazikika kumapitilira localhost: 8111/ ndi m'modzi wolembetsa womanga yemwe akuyendetsa pa PC yomweyo.

Ubwino wa TeamCity:

  • kukhazikitsa kosavuta;
  • mawonekedwe osavuta kugwiritsa ntchito;
  • ntchito zambiri zomangidwa;
  • Ntchito yothandizira;
  • pali RESTful API;
  • zolemba zabwino;
  • chitetezo chabwino.

Wotsatsa:

  • kuphatikiza kochepa;
  • Ichi ndi chida cholipira;
  • gulu laling'ono (lomwe, komabe, likukula).

GoCD

Pulojekiti yotseguka yomwe imafuna Java Runtime Environment (JRE) mtundu 8 kuti ukhazikitse ndikugwira ntchito.

Zofunikira pa System:

  • RAM - 1 GB osachepera, zambiri ndi bwino;
  • purosesa - wapawiri-pachimake, ndi pafupipafupi pakati pa 2 GHz;
  • hard drive - osachepera 1 GB ya malo aulere.

Wothandizira:

  • RAM - osachepera 128 MB, zambiri ndi bwino;
  • purosesa - osachepera 2 GHz.

Seva imatsimikizira kugwira ntchito kwa othandizira ndipo imapereka mawonekedwe osavuta kwa wogwiritsa ntchito:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Magawo/Ntchito/Zochita:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

Kuyika kwa Linux

lembani "deb download.gocd.org /» | sudo tee /etc/apt/sources.list.d/gocd.list

kupiringa download.gocd.org/GOCD-GPG-KEY.asc | | sudo apt-key kuwonjezera -
add-apt-repository ppa:openjdk-r/ppa

pangani zosinthika

apt-get install -y openjdk-8-jre

apt-get install 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]

Mwachikhazikitso GoCd imagwira ntchito localhost: 8153.

Mphamvu za GoCd:

  • gwero lotseguka;
  • unsembe yosavuta ndi kasinthidwe;
  • zolemba zabwino;

  • Mawonekedwe abwino ogwiritsa ntchito:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

  • Kutha kuwonetsa njira yotsatsira GoCD pang'onopang'ono pamawonedwe amodzi:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

  • chiwonetsero chabwino kwambiri cha kapangidwe ka mapaipi:

Zida za 3 zodziwika bwino zokonzekera kutumizidwa mosalekeza (Kutumiza Kopitiriza)

  • GoCD imakonza kayendedwe ka CD m'malo odziwika kwambiri amtambo kuphatikiza Docker, AWS;
  • chida chimapangitsa kuti zitheke kukonza zovuta mu payipi, zomwe zimatsata kusintha kulikonse kuchokera kudzipereka mpaka kutumizidwa munthawi yeniyeni.

Wotsatsa:

  • pakufunika wothandizira mmodzi;
  • palibe console yowonetsera ntchito zonse zomwe zatsirizidwa;
  • kuti mupereke lamulo lililonse, muyenera kupanga ntchito imodzi yokonzekera mapaipi;
  • Kuti muyike pulogalamu yowonjezera muyenera kusuntha fayilo ya .jar ku / mapulagini/kunja ndikuyambitsanso seva;
  • dera laling'ono.

Pomaliza

Izi ndi zida zitatu zokha, ndipo pali zina zambiri. Ndizovuta kusankha, chifukwa chake muyenera kulabadira zina zowonjezera.

Khodi yotseguka ya chida imapangitsa kuti mumvetsetse chomwe chiri, ndikuwonjezera zatsopano mwachangu. Koma ngati chinachake sichigwira ntchito, ndiye kuti muyenera kudalira nokha komanso thandizo la anthu ammudzi. Zida zolipidwa zimapereka chithandizo chomwe nthawi zina chimakhala chovuta.

Ngati chitetezo ndicho chofunikira kwambiri, ndi bwino kugwiritsa ntchito chida chapafupi. Ngati sichoncho, ndiye kusankha njira ya SaaS ndi njira yabwino.

Ndipo potsirizira pake, kuti mutsimikizire kuti ntchito yopititsa patsogolo ikugwira ntchito moyenera, muyenera kupanga ndondomeko zomwe zidzakuthandizani kuchepetsa zida zomwe zilipo.

Skillbox imalimbikitsa:

Source: www.habr.com

Kuwonjezera ndemanga