CICD fun awọn ibẹrẹ: kini awọn irinṣẹ wa nibẹ ati idi ti kii ṣe awọn ile-iṣẹ nla ati olokiki nikan lo wọn

Awọn olupilẹṣẹ ti awọn irinṣẹ CICD nigbagbogbo ṣe atokọ awọn ile-iṣẹ nla bi awọn alabara - Microsoft, Oculus, Hat Red, paapaa Ferrari ati NASA. Yoo dabi pe iru awọn burandi ṣiṣẹ nikan pẹlu awọn ọna ṣiṣe gbowolori ti ibẹrẹ ti o ni awọn olupilẹṣẹ tọkọtaya kan ati apẹẹrẹ ko le ni agbara. Ṣugbọn apakan pataki ti awọn irinṣẹ wa fun awọn ẹgbẹ kekere.

A yoo sọ fun ọ ohun ti o le san ifojusi si isalẹ.

CICD fun awọn ibẹrẹ: kini awọn irinṣẹ wa nibẹ ati idi ti kii ṣe awọn ile-iṣẹ nla ati olokiki nikan lo wọn
--Ото - Csaba Balazs - Unsplash

PHP Iwoye

Olupin CI orisun ṣiṣi ti o jẹ ki o rọrun lati kọ awọn iṣẹ akanṣe ni PHP. Eleyi jẹ kan orita ti ise agbese PHPCI. PHPCI funrararẹ tun n dagbasoke, ṣugbọn kii ṣe ni itara bi iṣaaju.

PHP Censor le ṣiṣẹ pẹlu GitHub, GitLab, Mercurial ati ọpọlọpọ awọn ibi ipamọ miiran. Lati ṣe idanwo koodu, ọpa naa nlo Atoum, PHP Spec, Behat, Awọn ile-ikawe Codeception. Nibi apẹẹrẹ faili awọn atunto fun ọran akọkọ:

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

Ti ṣe akiyesipe PHP Censor jẹ ibamu daradara fun gbigbe awọn iṣẹ akanṣe kekere lọ, ṣugbọn iwọ yoo ni lati gbalejo ati tunto funrararẹ (ti gbalejo funrararẹ). Iṣẹ-ṣiṣe yii jẹ irọrun nipasẹ awọn iwe alaye ti iṣẹtọ - o wa lori GitHub.

Rex

Rex jẹ kukuru fun Ipaniyan Latọna jijin. Eto naa ni idagbasoke nipasẹ ẹlẹrọ Ferenc Erki lati ṣe adaṣe awọn ilana ni ile-iṣẹ data. Rex da lori Perl awọn iwe afọwọkọ, sugbon o jẹ ko pataki lati mọ ede yi lati se nlo pẹlu awọn ọpa - julọ mosi (fun apẹẹrẹ, didaakọ awọn faili) ti wa ni apejuwe ninu awọn ìkàwé iṣẹ, ati awọn iwe afọwọkọ igba dada sinu mẹwa ila. Eyi ni apẹẹrẹ fun wíwọlé sinu awọn olupin pupọ ati ṣiṣiṣẹ akoko:

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

A ṣe iṣeduro bẹrẹ ojulumọ rẹ pẹlu ọpa pẹlu osise guide и e-iwe, eyi ti o ti wa ni Lọwọlọwọ pari.

Ṣii Iṣẹ Kọ (OBS)

Eyi jẹ ipilẹ kan fun iṣapeye idagbasoke awọn pinpin. Koodu rẹ wa ni sisi ati pe o wa ni ibi ipamọ ni GitHub. Onkọwe ti ọpa jẹ ile-iṣẹ naa Oṣu kọkanla. O kopa ninu idagbasoke pinpin SuSE, ati pe iṣẹ akanṣe yii ni akọkọ ti a pe ni OpenSUSE Kọ Iṣẹ. Kii ṣe iyalẹnu pe Ṣii Kọ Iṣẹ lilo fun awọn iṣẹ ṣiṣe ile ni openSUSE, Tizen ati VideoLAN. Dell, SGI ati Intel tun ṣiṣẹ pẹlu ọpa naa. Ṣugbọn laarin awọn olumulo deede tun wa awọn ibẹrẹ kekere. Paapa fun wọn, awọn onkọwe gba (oju-iwe 10) atunto software package. Eto naa funrararẹ jẹ ọfẹ patapata - iwọ nikan ni lati lo owo lori alejo gbigba tabi olupin ohun elo kan lati gbe lọ.

Ṣugbọn jakejado aye rẹ, ohun elo naa ko ti gba agbegbe ti o gbooro rara. Biotilejepe o je apakan ti Nẹtiwọọki Olùgbéejáde Linux, lodidi fun iwọntunwọnsi OS ṣiṣi. O le nira Wa idahun si ibeere rẹ lori awọn apejọ akori. Ṣugbọn ọkan ninu awọn olugbe Quora ṣe akiyesi pe ni IRC iwiregbe Lori Freenode, awọn ọmọ ẹgbẹ agbegbe dahun ni imurasilẹ. Iṣoro ti agbegbe kekere kii ṣe agbaye, nitori ojutu si ọpọlọpọ awọn iṣoro ti ṣalaye ninu awọn osise iwe aṣẹ (PDF ati EPUB). Ibid. le ri awọn iṣe ti o dara julọ fun ṣiṣẹ pẹlu OBS (awọn apẹẹrẹ ati awọn ọran wa).

Rundeck

Ṣii irinṣẹ (GitHub), eyiti o ṣe adaṣe awọn iṣẹ ṣiṣe ni ile-iṣẹ data ati awọsanma nipa lilo awọn iwe afọwọkọ. Olupin iwe afọwọkọ pataki kan jẹ iduro fun ipaniyan wọn. A le sọ pe Rundeck jẹ “ọmọbinrin” ti Syeed iṣakoso ohun elo ControlTier. Rundeck yapa lati ọdọ rẹ ni ọdun 2010 ati gba iṣẹ ṣiṣe tuntun - fun apẹẹrẹ, awọn iṣọpọ pẹlu Puppet, Oluwanje, Git ati Jenkins.

Awọn eto ti wa ni lo ninu Ile-iṣẹ Walt Disney, Salesforce и Ticketmaster. Ṣugbọn ise agbese na tun dara fun awọn ibẹrẹ. Eyi jẹ nitori Rundeck ni iwe-aṣẹ labẹ iwe-aṣẹ Apache v2.0. Pẹlupẹlu, ọpa jẹ ohun rọrun lati lo.

Olugbe Reddit kan ti o ṣiṣẹ pẹlu Rundeck, wí pé, eyiti o yanju pupọ julọ awọn iṣoro lori ara mi. Wọn ṣe iranlọwọ fun u pẹlu eyi iwe ati e-iwe ohun, atejade nipasẹ awọn Difelopa.

O tun le wa awọn itọsọna kukuru lati ṣeto ohun elo lori ayelujara:

GoCD

Ṣii irinṣẹ (GitHub) adaṣiṣẹ koodu version Iṣakoso. O ti ṣe ni 2007 nipasẹ ile-iṣẹ naa EroWorks - lẹhinna iṣẹ naa ni a pe ni Cruise.

GoCD jẹ lilo nipasẹ awọn onimọ-ẹrọ lati aaye tita ọkọ ayọkẹlẹ ori ayelujara AutoTrader, Iṣẹ idile idile ati olupese kaadi kirẹditi Barclaycard. Sibẹsibẹ, idamẹrin ti awọn olumulo irinṣẹ je kan kekere owo.

Gbaye-gbale ti iṣẹ laarin awọn ibẹrẹ le ṣe alaye nipasẹ ṣiṣi rẹ - o ti pin labẹ iwe-aṣẹ Apache v2.0. Ni akoko kanna, GoCD O ni awọn afikun fun iṣọpọ pẹlu sọfitiwia ẹni-kẹta - awọn eto aṣẹ ati awọn solusan awọsanma. Eto otito oyimbo idiju ni mastering - o ni nọmba nla ti awọn oniṣẹ ati awọn ẹgbẹ. Bakannaa, diẹ ninu awọn olumulo kerora nipa awọn talaka ni wiwo ati tianillati tunto òjíṣẹ fun igbelosoke.

CICD fun awọn ibẹrẹ: kini awọn irinṣẹ wa nibẹ ati idi ti kii ṣe awọn ile-iṣẹ nla ati olokiki nikan lo wọn
--Ото - Matt Wildbore - Unsplash

Ti o ba fẹ gbiyanju GoCD ni iṣe, o le rii lori oju opo wẹẹbu iṣẹ akanṣe osise iwe aṣẹ. O tun le ṣe iṣeduro bi orisun ti alaye afikun Blog Olùgbéejáde GoCD pẹlu Manuali lori iṣeto.

Jenkins

Jenkins ni opolopo mọ ati ni a kà Iru apewọn ni aaye CICD - dajudaju, laisi rẹ aṣayan yii kii yoo pari patapata. Ọpa naa han ni ọdun 2011. di orita ti Project Hudson lati Oracle.

Loni pẹlu Jenkins аботают ni NASA, Nintendo ati awọn miiran ti o tobi ajo. Sibẹsibẹ ju 8% awọn olumulo ṣe akọọlẹ fun awọn ẹgbẹ kekere ti o to eniyan mẹwa. Ọja naa jẹ ọfẹ patapata ati pinpin labẹ MIT iwe-ašẹ. Sibẹsibẹ, iwọ yoo ni lati gbalejo ati tunto Jenkins funrararẹ - o nilo olupin ifiṣootọ.

Lori gbogbo aye ti ohun elo, agbegbe nla kan ti ṣẹda ni ayika rẹ. Awọn olumulo ṣe ibaraẹnisọrọ ni itara ni awọn okun lori Reddit и Awọn ẹgbẹ Google. Awọn ohun elo lori Jenkins tun han nigbagbogbo lori Habré. Ti o ba fẹ lati di apakan ti agbegbe ati bẹrẹ ṣiṣẹ pẹlu Jenkins, o wa osise iwe aṣẹ и developer guide. A tun ṣeduro awọn itọsọna wọnyi ati awọn iwe:

Jenkins ni ọpọlọpọ awọn iṣẹ akanṣe ẹgbẹ ti o wulo. Ohun akọkọ jẹ ohun itanna kan Iṣeto ni bi koodu. O jẹ ki iṣeto Jenkins rọrun pẹlu awọn API ti o rọrun lati ka ti paapaa awọn alabojuto laisi imọ jinlẹ ti ọpa le loye. Awọn keji ni awọn eto Jenkins X fun awọsanma. O yara ifijiṣẹ awọn ohun elo ti a fi ranṣẹ lori awọn amayederun IT ti iwọn-nla nipasẹ adaṣe adaṣe diẹ ninu awọn iṣẹ ṣiṣe deede.

Buildbot

Eyi jẹ eto iṣọpọ lemọlemọfún fun adaṣe adaṣe kikọ ati idanwo ti awọn ohun elo. O laifọwọyi sọwedowo awọn iṣẹ-ti koodu ni gbogbo igba ti eyikeyi ayipada ti wa ni ṣe si o.

Onkọwe ti ọpa naa jẹ ẹlẹrọ Brian Warner. Loni o wa lori iṣẹ yi pada Ẹgbẹ ipilẹṣẹ Igbimọ Abojuto Buildbot, eyiti o pẹlu awọn olupilẹṣẹ mẹfa.

Buildbot o ti lo ise agbese bi LLVM, MariaDB, Blender ati Dr.Web. Ṣugbọn o tun lo ni awọn iṣẹ akanṣe kekere bi wxWidgets ati Flathub. Eto naa ṣe atilẹyin fun gbogbo VCS ode oni ati pe o ni awọn eto kikọ rọ nipa lilo Python lati ṣapejuwe wọn. Yoo ran ọ lọwọ lati koju gbogbo wọn. osise iwe aṣẹ ati awọn ikẹkọ ẹni-kẹta, fun apẹẹrẹ, eyi ni kukuru kan IBM Afowoyi.

Dajudaju iyẹn kii ṣe gbogbo rẹ Awọn irinṣẹ DevOps ti awọn ajo kekere ati awọn ibẹrẹ yẹ ki o san ifojusi si. Fun awọn irinṣẹ ayanfẹ rẹ ninu awọn asọye, ati pe a yoo gbiyanju lati sọrọ nipa wọn ni ọkan ninu awọn ohun elo atẹle.

Ohun ti a kọ nipa ninu bulọọgi ajọ:

orisun: www.habr.com

Fi ọrọìwòye kun