CICD para sa mga startup: anong mga tool ang nariyan at bakit hindi lang malalaki at kilalang kumpanya ang gumagamit nito

Ang mga nag-develop ng mga tool ng CICD ay kadalasang naglilista ng malalaking kumpanya bilang mga kliyente - Microsoft, Oculus, Red Hat, kahit Ferrari at NASA. Mukhang gumagana lamang ang mga naturang tatak sa mga mamahaling sistema na hindi kayang bayaran ng isang startup na binubuo ng isang pares ng mga developer at isang taga-disenyo. Ngunit ang isang mahalagang bahagi ng mga tool ay magagamit para sa maliliit na koponan.

Sasabihin namin sa iyo kung ano ang maaari mong bigyang pansin sa ibaba.

CICD para sa mga startup: anong mga tool ang nariyan at bakit hindi lang malalaki at kilalang kumpanya ang gumagamit nito
--ΠžΡ‚ΠΎ - Csaba Balazs β€” Unsplash

PHP Censor

Isang open source CI server na nagpapadali sa pagbuo ng mga proyekto sa PHP. Ito ay isang tinidor ng proyekto PHPCI. Ang PHPCI mismo ay umuunlad pa rin, ngunit hindi na kasing aktibo ng dati.

Maaaring gumana ang PHP Censor sa GitHub, GitLab, Mercurial at ilang iba pang mga repository. Upang subukan ang code, ginagamit ng tool ang mga aklatan ng Atoum, PHP Spec, Behat, Codeception. Dito halimbawang file mga pagsasaayos para sa unang kaso:

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

Itinuturingna ang PHP Censor ay angkop para sa pag-deploy ng maliliit na proyekto, ngunit kakailanganin mong i-host at i-configure ito mismo (self-hosted). Ang gawaing ito ay pinasimple ng medyo detalyadong dokumentasyon - nasa GitHub ito.

Rex

Ang Rex ay maikli para sa Remote Execution. Ang system ay binuo ng engineer na si Ferenc Erki upang i-automate ang mga proseso sa data center. Ang Rex ay batay sa mga script ng Perl, ngunit hindi kinakailangang malaman ang wikang ito upang makipag-ugnayan sa tool - karamihan sa mga operasyon (halimbawa, pagkopya ng mga file) ay inilarawan sa library ng function, at ang mga script ay madalas na magkasya sa sampung linya. Narito ang isang halimbawa para sa pag-log in sa maraming server at pagpapatakbo ng uptime:

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;
};

Inirerekumenda namin na simulan ang iyong kakilala sa tool gamit ang opisyal na gabay ΠΈ e-libro, na kasalukuyang kinukumpleto.

Open Build Service (OBS)

Ito ay isang platform para sa pag-optimize ng pagbuo ng mga pamamahagi. Ang code nito ay bukas at nasa repositoryo sa GitHub. Ang may-akda ng tool ay ang kumpanya Novell. Lumahok siya sa pagbuo ng pamamahagi ng SuSE, at ang proyektong ito ay unang tinawag na OpenSUSE Build Service. Hindi nakakagulat na ang Open Build Service gamitin para sa pagbuo ng mga proyekto sa openSUSE, Tizen at VideoLAN. Gumagana rin ang Dell, SGI at Intel sa tool. Ngunit sa mga regular na gumagamit mayroon ding maliliit na startup. Lalo na para sa kanila, nakolekta ng mga may-akda (pahina 10) paunang na-configure software package. Ang system mismo ay ganap na libre - kailangan mo lamang gumastos ng pera sa pagho-host o isang server ng hardware upang mai-deploy ito.

Ngunit sa buong pag-iral nito, ang tool ay hindi kailanman nakakuha ng malawak na komunidad. Bagaman siya ay bahagi ng Linux Developer Network, na responsable para sa pag-standardize ng bukas na OS. Maaari itong maging mahirap Hanapin ang sagot sa iyong tanong sa mga pampakay na forum. Ngunit isa sa mga residente ng Quora ang nabanggit na sa IRC chat Sa Freenode, ang mga miyembro ng komunidad ay madaling tumugon. Ang problema ng isang maliit na komunidad ay hindi pandaigdigan, dahil ang solusyon sa maraming problema ay inilarawan sa opisyal na dokumentasyon (PDF at EPUB). Ibid. mahahanap pinakamahusay na kasanayan para sa pagtatrabaho sa OBS (may mga halimbawa at kaso).

Rundeck

Buksan ang tool (GitHub), na nag-o-automate ng mga gawain sa data center at cloud gamit ang mga script. Ang isang espesyal na server ng script ay responsable para sa kanilang pagpapatupad. Masasabi nating ang Rundeck ay isang "anak" ng ControlTier application management platform. Humiwalay dito ang Rundeck noong 2010 at nakakuha ng bagong functionality - halimbawa, mga pagsasama sa Puppet, Chef, Git at Jenkins.

Ang sistema ay ginagamit sa Ang Kumpanya ng Walt Disney, Salesforce ΠΈ Ticketmaster. Ngunit ang proyekto ay angkop din para sa mga startup. Ito ay dahil ang Rundeck ay lisensyado sa ilalim ng Apache v2.0 na lisensya. Bukod dito, ang tool ay medyo madaling gamitin.

Isang residente ng Reddit na nagtrabaho sa Rundeck, Siya ay nagsasalita, na nalutas ang karamihan sa mga paghihirap sa aking sarili. Tinulungan nila siya dito dokumentasyon at e-libro, na inilathala ng mga developer.

Makakahanap ka rin ng mga maikling gabay sa pag-set up ng tool online:

GoCD

Buksan ang tool (GitHub) pag-automate ng kontrol sa bersyon ng code. Ipinakilala ito noong 2007 ng kumpanya ThoughtWorks β€” pagkatapos ang proyekto ay tinawag na Cruise.

Ang GoCD ay ginagamit ng mga inhinyero mula sa online na site ng pagbebenta ng kotse na AutoTrader, serbisyo ng genealogy Ancestry at provider ng credit card na Barclaycard. Gayunpaman, isang-kapat ng mga gumagamit ng tool bumubuo ng isang maliit na negosyo.

Ang katanyagan ng serbisyo sa mga startup ay maaaring ipaliwanag sa pamamagitan ng pagiging bukas nito - ito ay ipinamamahagi sa ilalim ng Apache v2.0 na lisensya. Kasabay nito, ang GoCD Ito ay may mga plugin para sa pagsasama sa software ng third-party - mga sistema ng pahintulot at mga solusyon sa ulap. Tunay na sistema medyo kumplikado sa mastering - mayroon itong malaking bilang ng mga operator at koponan. Gayundin, ang ilang mga gumagamit ay nagreklamo tungkol sa mahinang interface at kailangan i-configure ang mga ahente para sa pag-scale.

CICD para sa mga startup: anong mga tool ang nariyan at bakit hindi lang malalaki at kilalang kumpanya ang gumagamit nito
--ΠžΡ‚ΠΎ - Matt Wildbore β€” Unsplash

Kung nais mong subukan ang GoCD sa pagsasanay, maaari mong mahanap sa website ng proyekto opisyal na dokumentasyon. Maaari rin itong irekomenda bilang mapagkukunan ng karagdagang impormasyon Blog ng Developer ng GoCD may mga manwal sa pamamagitan ng setup.

Jenkins

Kilala si Jenkins at isinasaalang-alang isang uri ng pamantayan sa larangan ng CICD - siyempre, kung wala ito ang pagpili na ito ay hindi magiging ganap na kumpleto. Ang tool ay lumitaw noong 2011, nagiging isang tinidor ng Project Hudson mula sa Oracle.

Ngayon kasama si Jenkins Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ sa NASA, Nintendo at iba pang malalaking organisasyon. Gayunpaman higit sa 8% account ng mga user para sa maliliit na team na hanggang sampung tao. Ang produkto ay ganap na libre at ipinamamahagi sa ilalim ng lisensya ng MIT. Gayunpaman, kakailanganin mong mag-host at mag-configure ng Jenkins sa iyong sarili - nangangailangan ito ng isang dedikadong server.

Sa buong pag-iral ng instrumento, isang malaking komunidad ang nabuo sa paligid nito. Aktibong nakikipag-usap ang mga user sa mga thread sa reddit ΠΈ Mga Grupo ng Google. Regular ding lumalabas ang mga materyales sa Jenkins sa HabrΓ©. Kung gusto mong maging bahagi ng komunidad at magsimulang magtrabaho kasama si Jenkins, mayroon opisyal na dokumentasyon ΠΈ gabay ng developer. Inirerekomenda din namin ang mga sumusunod na gabay at aklat:

May ilang kapaki-pakinabang na side project si Jenkins. Ang una ay isang plugin Configuration bilang Code. Pinapadali nito ang pagse-set up ng Jenkins gamit ang mga API na madaling basahin na kahit na ang mga admin na walang malalim na kaalaman sa tool ay mauunawaan. Ang pangalawa ay ang sistema Jenkins X para sa ulap. Pinapabilis nito ang paghahatid ng mga application na naka-deploy sa malakihang imprastraktura ng IT sa pamamagitan ng pag-automate ng ilang karaniwang gawain.

Buildbot

Ito ay isang tuluy-tuloy na sistema ng pagsasama para sa pag-automate ng ikot ng pagbuo at pagsubok ng mga application. Awtomatiko nitong sinusuri ang functionality ng code sa tuwing may anumang pagbabagong gagawin dito.

Ang may-akda ng tool ay engineer Brian Warner. Ngayon ay naka-duty siya nagbago ang Buildbot Oversight Committee initiative group, na kinabibilangan ng anim na developer.

Buildbot ginamit mga proyekto tulad ng LLVM, MariaDB, Blender at Dr.Web. Ngunit ginagamit din ito sa mas maliliit na proyekto tulad ng wxWidgets at Flathub. Sinusuportahan ng system ang lahat ng modernong VCS at may mga flexible na setting ng build sa pamamagitan ng paggamit ng Python upang ilarawan ang mga ito. Makakatulong ito sa iyo na harapin silang lahat. opisyal na dokumentasyon at mga third-party na tutorial, halimbawa, narito ang isang maikli IBM manual.

Siyempre hindi lamang yan Mga tool ng DevOps na dapat bigyang pansin ng maliliit na organisasyon at mga startup. Ibigay ang iyong mga paboritong tool sa mga komento, at susubukan naming pag-usapan ang tungkol sa mga ito sa isa sa mga sumusunod na materyales.

Tungkol sa kung ano ang isinusulat namin sa corporate blog:

Pinagmulan: www.habr.com

Magdagdag ng komento