Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Usambazaji wa Kuendelea ni mbinu maalum katika maendeleo ya programu ambayo hutumiwa kwa haraka, kwa usalama na kwa ufanisi kutekeleza kazi mbalimbali katika programu.

Wazo kuu ni kuunda mchakato wa kuaminika wa kiotomatiki ambao unaruhusu msanidi programu kutoa haraka bidhaa iliyokamilishwa kwa mtumiaji. Wakati huo huo, mabadiliko ya mara kwa mara yanafanywa kwa uzalishaji - hii inaitwa bomba la utoaji wa kuendelea (CD Pipeline).

Skillbox inapendekeza: Kozi ya vitendo "Pro ya Msanidi Programu wa Simu".

Tunakukumbusha: kwa wasomaji wote wa "Habr" - punguzo la rubles 10 wakati wa kujiandikisha katika kozi yoyote ya Skillbox kwa kutumia msimbo wa uendelezaji wa "Habr".

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Ili kudhibiti mtiririko, unaweza kutumia zana mbalimbali, ikiwa ni pamoja na kulipwa na bure kabisa. Nakala hii inaelezea suluhisho tatu maarufu kati ya watengenezaji ambazo zinaweza kuwa muhimu kwa kila programu.

Jenkins

Seva ya otomatiki ya chanzo huria inayojitosheleza kikamilifu. Inafaa kufanya kazi na kubinafsisha kila aina ya kazi zinazohusiana na ujenzi, majaribio, usafirishaji, au kupeleka programu.

Mahitaji ya chini ya Kompyuta:

  • RAM ya MB 256, nafasi ya faili ya GB 1.

Mojawapo:

  • RAM ya GB 1, diski kuu ya GB 50.

Ili kufanya kazi, utahitaji pia programu ya ziada - Java Runtime Environment (JRE) toleo la 8.

Usanifu (kompyuta iliyosambazwa) inaonekana kama hii:
Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Jenkins Server ni usakinishaji ambao unawajibika kwa mwenyeji wa GUI, na pia kupanga na kutekeleza muundo mzima.

Jenkins Node/Slave/Build Server - vifaa vinavyoweza kusanidiwa kufanya kazi ya ujenzi kwa niaba ya Mwalimu (nodi kuu).

Usakinishaji wa Linux

Kwanza unahitaji kuongeza hazina ya Jenkins kwenye mfumo:

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

Sasisha hazina ya kifurushi:

sudo apt update

Sakinisha Jenkins:

sudo apt kufunga jenkins

Baada ya hayo, Jenkins itapatikana kwenye mfumo kupitia bandari chaguo-msingi 8080.

Ili kuangalia utendaji, unahitaji kufungua anwani kwenye kivinjari lochost:8080. Kisha mfumo utakuhimiza kuingiza nenosiri la awali kwa mtumiaji wa mizizi. Nenosiri hili liko kwenye faili /var/lib/jenkins/secrets/initialAdminPassword.

Sasa kila kitu kiko tayari kwenda, unaweza kuanza kuunda mtiririko wa CI/CD. Muundo wa picha wa benchi ya kazi inaonekana kama hii:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Nguvu za Jenkins:

  • uboreshaji unaotolewa na usanifu wa Mwalimu/Mtumwa;
  • upatikanaji wa REST XML/JSON API;
  • uwezo wa kuunganisha idadi kubwa ya upanuzi shukrani kwa programu-jalizi;
  • jumuiya hai na inayoendelea kubadilika.

Minus:

  • hakuna kizuizi cha uchambuzi;
  • si kiolesura cha kirafiki sana.

TeamCity

Maendeleo ya kibiashara kutoka JetBrains. Seva ni nzuri na usanidi rahisi na kiolesura bora. Usanidi wa chaguo-msingi una idadi kubwa ya kazi, na idadi ya programu-jalizi zinazopatikana inaongezeka mara kwa mara.

Inahitaji Java Runtime Environment (JRE) toleo la 8.

Mahitaji ya maunzi ya seva sio muhimu:

  • RAM - 3,2 GB;
  • processor - mbili-msingi, 3,2 GHz;
  • njia ya mawasiliano yenye uwezo wa 1 Gb/s.

Seva hukuruhusu kufikia utendaji wa juu:

  • Miradi 60 yenye usanidi wa ujenzi 300;
  • Mgao wa 2 MB kwa logi ya ujenzi;
  • 50 mawakala wa kujenga;
  • uwezo wa kufanya kazi na watumiaji 50 katika toleo la wavuti na watumiaji 30 kwenye IDE;
  • Miunganisho 100 ya VCS ya nje, kwa kawaida Utendaji na Ugeuzaji. Wakati wa mabadiliko ya wastani ni sekunde 120;
  • marekebisho zaidi ya 150 kwa siku;
  • kufanya kazi na hifadhidata kwenye seva moja;
  • Mipangilio ya mchakato wa seva ya JVM: -Xmx1100m -XX:MaxPermSize=120m.

Mahitaji ya wakala yanategemea kuendesha makusanyiko. Kazi kuu ya seva ni kufuatilia mawakala wote waliounganishwa na kusambaza mikusanyiko iliyopangwa kwa mawakala hawa kulingana na mahitaji ya uoanifu, kuripoti matokeo. Mawakala huja katika majukwaa na mifumo mbalimbali ya uendeshaji, pamoja na mazingira yaliyosanidiwa awali.

Taarifa zote kuhusu matokeo ya ujenzi huhifadhiwa kwenye hifadhidata. Kimsingi hii ni historia na data zingine zinazofanana, mabadiliko ya VCS, mawakala, foleni za kuunda, akaunti za watumiaji na ruhusa. Hifadhidata haijumuishi kumbukumbu za ujenzi na vizalia vya programu pekee.

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Usakinishaji wa Linux

Ili kusakinisha TeamCity wewe mwenyewe ukitumia chombo cha huduma cha Tomcat, unapaswa kutumia kumbukumbu ya TeamCity: TeamCity .tar.gz. Pakua unaweza kuipata kutoka hapa.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [anza|acha]

Unapoanza kwanza, unahitaji kuchagua aina ya database ambayo data ya mkutano itahifadhiwa.

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Usanidi chaguo-msingi unaendelea lochost:8111/ na wakala mmoja aliyesajiliwa wa ujenzi anayeendesha kwenye Kompyuta hiyo hiyo.

Nguvu za TeamCity:

  • kuanzisha rahisi;
  • interface-kirafiki interface;
  • idadi kubwa ya kazi zilizojengwa;
  • Huduma ya usaidizi;
  • kuna RESTful API;
  • nyaraka nzuri;
  • usalama mzuri.

Minus:

  • ushirikiano mdogo;
  • Hii ni chombo cha kulipwa;
  • jumuiya ndogo (ambayo, hata hivyo, inakua).

GoCD

Mradi wa chanzo huria unaohitaji Java Runtime Environment (JRE) toleo la 8 kwa usakinishaji na uendeshaji.

Mahitaji ya Mfumo:

  • RAM - 1 GB kiwango cha chini, zaidi ni bora;
  • processor - mbili-msingi, na mzunguko wa msingi wa 2 GHz;
  • gari ngumu - angalau 1 GB ya nafasi ya bure.

Wakala:

  • RAM - angalau 128 MB, zaidi ni bora;
  • processor - angalau 2 GHz.

Seva inahakikisha utendakazi wa mawakala na hutoa kiolesura cha urahisi kwa mtumiaji:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Hatua/Kazi/Kazi:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

Usakinishaji wa Linux

mwangwi "deb pakua.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl pakua.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key ongeza -
add-apt-repository ppa:openjdk-r/ppa

anayeweza kupata-update

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [anza|stop|status|anzisha upya]

/etc/init.d/go-agent [anza|stop|status|anzisha upya]

Kwa chaguomsingi GoCd huwashwa lochost: 8153.

Nguvu za GoCd:

  • chanzo wazi;
  • ufungaji rahisi na usanidi;
  • nyaraka nzuri;

  • Kiolesura bora cha mtumiaji:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

  • uwezo wa kuonyesha njia ya hatua kwa hatua ya kupeleka GoCD katika mwonekano mmoja:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

  • onyesho bora la muundo wa bomba:

Zana 3 maarufu za kupanga utumaji unaoendelea (Usambazaji Unaoendelea)

  • GoCD inaboresha mtiririko wa kazi wa CD katika mazingira maarufu ya wingu ikiwa ni pamoja na Docker, AWS;
  • chombo hufanya iwezekanavyo kurekebisha matatizo katika bomba, ambayo kuna ufuatiliaji wa kila mabadiliko kutoka kwa ahadi hadi kupelekwa kwa wakati halisi.

Minus:

  • angalau wakala mmoja anahitajika;
  • hakuna console ya kuonyesha kazi zote zilizokamilishwa;
  • kutekeleza kila amri, unahitaji kuunda kazi moja kwa usanidi wa bomba;
  • Ili kusakinisha programu-jalizi, unahitaji kuhamisha faili ya .jar hadi /plugins/external na kuanzisha upya seva;
  • jamii ndogo kiasi.

Kama hitimisho

Hizi ni zana tatu tu, kwa kweli kuna nyingi zaidi. Ni ngumu kuchagua, kwa hivyo unahitaji kulipa kipaumbele kwa vipengele vya ziada.

Msimbo wa chanzo huria wa zana huwezesha kuelewa ni nini, pamoja na kuongeza vipengele vipya kwa haraka zaidi. Lakini ikiwa kitu haifanyi kazi, basi unapaswa kutegemea wewe mwenyewe na msaada wa jumuiya. Zana za kulipia hutoa usaidizi ambao wakati mwingine unaweza kuwa muhimu.

Ikiwa usalama ndio kipaumbele chako cha juu, inafaa kufanya kazi na zana ya karibu. Ikiwa sio, basi kuchagua suluhisho la SaaS ni chaguo nzuri.

Na mwishowe, ili kuhakikisha mchakato wa kupeleka unaoendelea kwa ufanisi, unahitaji kuunda vigezo ambavyo maalum vitakuruhusu kupunguza anuwai ya zana zinazopatikana.

Skillbox inapendekeza:

Chanzo: mapenzi.com

Kuongeza maoni