CICD kwa wanaoanza: ni zana gani zilizopo na kwa nini sio tu kampuni kubwa na zinazojulikana zinazotumia

Watengenezaji wa zana za CICD mara nyingi huorodhesha kampuni kubwa kama wateja - Microsoft, Oculus, Red Hat, hata Ferrari na NASA. Inaweza kuonekana kuwa chapa kama hizo zinafanya kazi tu na mifumo ya gharama kubwa ambayo uanzishaji unaojumuisha watengenezaji kadhaa na mbuni hawawezi kumudu. Lakini sehemu kubwa ya zana inapatikana kwa timu ndogo.

Tutakuambia unachoweza kuzingatia hapa chini.

CICD kwa wanaoanza: ni zana gani zilizopo na kwa nini sio tu kampuni kubwa na zinazojulikana zinazotumia
Picha - Csaba Balazs - Unsplash

Sensor ya PHP

Seva ya CI ya chanzo huria ambayo hurahisisha kuunda miradi katika PHP. Huu ni uma wa mradi PHPCI. PHPCI yenyewe bado inaendelea, lakini sio kikamilifu kama hapo awali.

PHP Censor inaweza kufanya kazi na GitHub, GitLab, Mercurial na hazina zingine kadhaa. Ili kujaribu msimbo, zana hutumia maktaba za Atoum, PHP Spec, Behat, Codeception. Hapa mfano faili Mipangilio ya kesi ya kwanza:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

Kuzingatiwakwamba PHP Censor inafaa vyema kwa kupeleka miradi midogo, lakini itabidi uiandae na uisanidi mwenyewe (inayojipangia mwenyewe). Kazi hii inarahisishwa na nyaraka za kina - iko kwenye GitHub.

Rex

Rex ni kifupi cha Utekelezaji wa Mbali. Mfumo huo uliundwa na mhandisi Ferenc Erki ili kugeuza michakato katika kituo cha data kiotomatiki. Rex inategemea maandishi ya Perl, lakini si lazima kujua lugha hii ili kuingiliana na chombo - shughuli nyingi (kwa mfano, kunakili faili) zinaelezwa kwenye maktaba ya kazi, na maandiko mara nyingi huingia kwenye mistari kumi. Hapa kuna mfano wa kuingia kwenye seva nyingi na kuongeza muda:

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

Tunapendekeza kuanza kufahamiana kwako na zana na mwongozo rasmi ΠΈ e-kitabu, ambayo inakamilika kwa sasa.

Fungua Huduma ya Kujenga (OBS)

Hili ni jukwaa la kuboresha maendeleo ya usambazaji. Nambari yake iko wazi na iko kwenye hazina GitHub. Mwandishi wa chombo ni kampuni Riwaya. Alishiriki katika ukuzaji wa usambazaji wa SuSE, na mradi huu hapo awali uliitwa OpenSUSE Build Service. Haishangazi kuwa Huduma ya Open Build kutumia kwa miradi ya ujenzi katika openSUSE, Tizen na VideoLAN. Dell, SGI na Intel pia hufanya kazi na zana. Lakini kati ya watumiaji wa kawaida pia kuna startups ndogo. Hasa kwao, waandishi walikusanya (ukurasa 10) iliyopangwa awali kifurushi cha programu. Mfumo yenyewe ni bure kabisa - lazima utumie pesa tu kwa mwenyeji au seva ya vifaa ili kuipeleka.

Lakini katika uwepo wake wote, chombo hakijawahi kupata jumuiya pana. Ingawa alikuwa sehemu ya Mtandao wa Wasanidi Programu wa Linux, inayohusika na kusawazisha Mfumo wa Uendeshaji ulio wazi. Inaweza kuwa ngumu Pata jibu la swali lako kwenye vikao vya mada. Lakini mmoja wa wakaazi wa Quora alibaini kuwa katika Soga ya IRC Kwenye Freenode, wanajamii hujibu kwa urahisi. Tatizo la jumuiya ndogo si la kimataifa, kwa kuwa suluhisho la matatizo mengi limeelezwa katika nyaraka rasmi (PDF na EPUB). Ibid. wanaweza kupata mbinu bora za kufanya kazi na OBS (kuna mifano na kesi).

Rundeck

Fungua zana (GitHub), ambayo huendesha kazi kiotomatiki katika kituo cha data na wingu kwa kutumia hati. Seva maalum ya hati inawajibika kwa utekelezaji wao. Tunaweza kusema kwamba Rundeck ni "binti" wa jukwaa la usimamizi wa programu ya ControlTier. Rundeck alijitenga nayo mwaka wa 2010 na kupata utendaji mpya - kwa mfano, ushirikiano na Puppet, Chef, Git na Jenkins.

Mfumo huo unatumika ndani Walt Disney Company, Salesforce ΠΈ Mtihani wa tiketi. Lakini mradi huo pia unafaa kwa wanaoanza. Hii ni kwa sababu Rundeck ina leseni chini ya leseni ya Apache v2.0. Aidha, chombo ni rahisi sana kutumia.

Mkazi wa Reddit ambaye alifanya kazi na Rundeck, anasema, ambayo ilitatua shida nyingi peke yangu. Walimsaidia kwa hili nyaraka na e-vitabu, iliyochapishwa na watengenezaji.

Unaweza pia kupata miongozo mifupi ya kusanidi zana mtandaoni:

GoCD

Fungua zana (GitHub) udhibiti wa toleo la msimbo otomatiki. Ilianzishwa mwaka 2007 na kampuni Kazi za Kufikiria - basi mradi huo uliitwa Cruise.

GoCD inatumiwa na wahandisi kutoka tovuti ya mauzo ya magari mtandaoni ya AutoTrader, huduma ya ukoo na mtoa huduma wa kadi ya mkopo Barclaycard. Walakini, robo ya watumiaji wa zana inajumuisha biashara ndogo ndogo.

Umaarufu wa huduma kati ya wanaoanza unaweza kuelezewa na uwazi wake - inasambazwa chini ya leseni ya Apache v2.0. Wakati huo huo, GoCD Ina programu-jalizi za kuunganishwa na programu ya mtu wa tatu - mifumo ya idhini na suluhisho za wingu. Mfumo wa kweli ngumu sana katika mastering - ina idadi kubwa ya waendeshaji na timu. Pia, watumiaji wengine wanalalamika juu ya kiolesura duni na haja sanidi mawakala kwa kuongeza.

CICD kwa wanaoanza: ni zana gani zilizopo na kwa nini sio tu kampuni kubwa na zinazojulikana zinazotumia
Picha - Matt Wildbore - Unsplash

Ikiwa unataka kujaribu GoCD kwa vitendo, unaweza kupata kwenye tovuti ya mradi nyaraka rasmi. Inaweza pia kupendekezwa kama chanzo cha maelezo ya ziada GoCD Developer Blog na miongozo kwenye usanidi.

Jenkins

Jenkins anajulikana sana na kuchukuliwa aina ya kiwango katika uwanja wa CICD - bila shaka, bila hiyo uteuzi huu hautakuwa kamili kabisa. Chombo hicho kilionekana mnamo 2011, kuwa uma wa Project Hudson kutoka Oracle.

Leo na Jenkins Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ katika NASA, Nintendo na mashirika mengine makubwa. Hata hivyo zaidi ya 8% watumiaji akaunti kwa ajili ya timu ndogo ya hadi watu kumi. Bidhaa hiyo ni bure kabisa na inasambazwa chini ya leseni ya MIT. Walakini, italazimika kukaribisha na kusanidi Jenkins mwenyewe - inahitaji seva iliyojitolea.

Juu ya uwepo mzima wa chombo, jumuiya kubwa imeunda karibu nayo. Watumiaji huwasiliana kikamilifu katika nyuzi Reddit ΠΈ Vikundi vya Google. Nyenzo kwenye Jenkins pia huonekana mara kwa mara kwenye Habre. Ikiwa ungependa kuwa sehemu ya jumuiya na kuanza kufanya kazi na Jenkins, kuna nyaraka rasmi ΠΈ mwongozo wa msanidi. Tunapendekeza pia miongozo na vitabu vifuatavyo:

Jenkins ana miradi kadhaa muhimu ya upande. Ya kwanza ni programu-jalizi Usanidi kama Msimbo. Hurahisisha kusanidi Jenkins kwa kutumia API ambazo ni rahisi kusoma ambazo hata husimamia bila ujuzi wa kina wa zana wanaweza kuelewa. Ya pili ni mfumo Jenkins X kwa wingu. Inaharakisha uwasilishaji wa programu zilizotumwa kwenye miundombinu mikubwa ya IT kwa kuorodhesha baadhi ya kazi za kawaida.

Buildbot

Huu ni mfumo unaoendelea wa ujumuishaji wa kuweka kiotomatiki mzunguko wa ujenzi na majaribio ya programu. Hukagua kiotomatiki utendakazi wa msimbo kila mara mabadiliko yoyote yanapofanywa kwake.

Mwandishi wa chombo hicho alikuwa mhandisi Brian Warner. Leo yuko kazini iliyopita kikundi cha mpango wa Kamati ya Uangalizi ya Buildbot, ambacho kinajumuisha watengenezaji sita.

Buildbot hutumiwa miradi kama vile LLVM, MariaDB, Blender na Dr.Web. Lakini pia inatumika katika miradi midogo kama vile wxWidgets na Flathub. Mfumo huu unaauni VCS zote za kisasa na una mipangilio inayoweza kunyumbulika kwa kutumia Python kuielezea. Itakusaidia kukabiliana nao wote. nyaraka rasmi na mafunzo ya mtu wa tatu, kwa mfano, hapa kuna fupi Mwongozo wa IBM.

Bila shaka, hiyo sio tu Zana za DevOps ambazo mashirika madogo na wanaoanza wanapaswa kuzingatia. Toa zana zako zinazopenda katika maoni, na tutajaribu kuzungumza juu yao katika mojawapo ya nyenzo zifuatazo.

Tunachoandika kwenye blogi ya ushirika:

Chanzo: mapenzi.com

Kuongeza maoni