Startup-entzako CICD: zer tresna dauden eta zergatik ez soilik enpresa handi eta ezagunak erabiltzen

CICD tresnen garatzaileek maiz enpresa handiak zerrendatzen dituzte bezero gisa: Microsoft, Oculus, Red Hat, baita Ferrari eta NASA ere. Badirudi horrelako markek garatzaile pare batek eta diseinatzaile batek osatutako startup batek ordaindu ezin dituen sistema garestiekin soilik funtzionatzen dutela. Baina tresnen zati garrantzitsu bat talde txikientzat eskuragarri dago.

Jarraian esango dizugu zertan jarri dezakezun arreta.

Startup-entzako CICD: zer tresna dauden eta zergatik ez soilik enpresa handi eta ezagunak erabiltzen
Argazkia - Csaba Balazs β€” Zipriztindu

PHP Zentsura

PHPn proiektuak eraikitzea errazten duen kode irekiko CI zerbitzaria. Hau proiektuaren sardexka da PHPCI. PHPCI bera garatzen ari da oraindik, baina ez lehen bezain aktibo.

PHP Censor-ek GitHub, GitLab, Mercurial eta beste hainbat biltegirekin lan egin dezake. Kodea probatzeko, tresnak Atoum, PHP Spec, Behat, Codeception liburutegiak erabiltzen ditu. Hemen adibideko fitxategia lehen kasurako konfigurazioak:

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

Jotzen daPHP Censor oso egokia dela proiektu txikiak zabaltzeko, baina zuk zeuk ostatatu eta konfiguratu beharko duzu (auto-ostatua). Zeregin hau dokumentazio nahiko zehatzarekin errazten da - GitHub-en dago.

Rex

Rex urruneko exekuzio laburra da. Sistema Ferenc Erki ingeniariak garatu zuen datu-zentroko prozesuak automatizatzeko. Rex Perl scriptetan oinarritzen da, baina ez da beharrezkoa hizkuntza hau jakitea tresnarekin elkarreragiteko - eragiketa gehienak (adibidez, fitxategiak kopiatzea) funtzioen liburutegian deskribatzen dira, eta scriptak askotan hamar lerrotan sartzen dira. Hona hemen hainbat zerbitzarietan saioa hasteko eta funtzionamendu denbora exekutatzeko adibide bat:

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

Erremintarekin ezagutzen hastea gomendatzen dugu gida ofiziala ΠΈ liburu elektronikoa, gaur egun bukatzen ari dena.

Eraikitze Ireki Zerbitzua (OBS)

Banaketen garapena optimizatzeko plataforma bat da. Bere kodea irekita dago eta biltegian dago GitHub. Tresnaren egilea enpresa da Novell. SuSE banaketaren garapenean parte hartu zuen, eta proiektu honi hasiera batean openSUSE Build Service deitu zitzaion. Ez da harritzekoa Open Build Zerbitzua erabilitako openSUSE, Tizen eta VideoLAN-en proiektuak eraikitzeko. Dell, SGI eta Intel-ek ere tresnarekin lan egiten dute. Baina ohiko erabiltzaileen artean startup txikiak ere badaude. Haientzat bereziki, egileek bildu zuten (10 orria) aurrez konfiguratuta software paketea. Sistema bera guztiz doakoa da - ostalaritzan edo hardware-zerbitzari batean soilik gastatu behar duzu hura zabaltzeko.

Baina bere existentzian zehar, tresnak ez du inoiz komunitate zabalik lortu. Nahiz eta zen Linux Developer Network-en parte da, sistema eragile irekia estandarizatzeaz arduratzen dena. Zaila izan daiteke Aurkitu zure galderaren erantzuna foro tematikoetan. Baina Quorako bizilagunetako batek adierazi zuen hori IRC txata Freenode-n, komunitateko kideek nahiko erraz erantzuten dute. Komunitate txiki baten arazoa ez da globala, arazo askoren konponbidea deskribatu baita dokumentazio ofizialean (PDF eta EPUB). Ibid. aurki dezake OBSrekin lan egiteko praktika onenak (adibideak eta kasuak daude).

Rundeck

Ireki tresna (GitHub), scriptak erabiliz datu-zentroan eta hodeian zereginak automatizatzen dituena. Script zerbitzari berezi bat arduratzen da haien exekuzioaz. Rundeck ControlTier aplikazioen kudeaketa plataformaren "alaba" dela esan dezakegu. Rundeck 2010ean banandu zen eta funtzionalitate berriak eskuratu zituen, adibidez, Puppet, Chef, Git eta Jenkins-ekin integrazioak.

Sistema erabiltzen da Walt Disney Company, Salesforce ΠΈ Ticketmaster. Baina proiektua startupentzat ere egokia da. Hau da, Rundeck-ek Apache v2.0 lizentziapean duelako. Gainera, tresna erabiltzeko nahiko erraza da.

Rundeck-ekin lan egin zuen Reddit-eko bizilaguna, He mintzo, zailtasun gehienak nire kabuz konpondu zituena. Horretan lagundu zioten dokumentazioa eta liburu elektronikoak, garatzaileek argitaratua.

Tresna konfiguratzeko gida laburrak ere aurki ditzakezu sarean:

GoCD

Ireki tresna (GitHub) kodearen bertsioen kontrola automatizatzea. 2007an aurkeztu zuen konpainiak ThoughtWorks β€” orduan proiektuari Cruise izena jarri zitzaion.

AutoTrader lineako autoen salmenta guneko ingeniariek, Ancestry genealogia zerbitzuko eta Barclaycard kreditu-txartel hornitzaileko ingeniariek erabiltzen dute GoCD. Hala ere, tresna erabiltzaileen laurdenak enpresa txiki bat osatzen du.

Startup-en artean zerbitzuaren ospea bere irekitasunagatik azal daiteke - Apache v2.0 lizentziapean banatzen da. Aldi berean, GoCD It ditu hirugarrenen softwarearekin integratzeko pluginak - baimen-sistemak eta hodeiko soluzioak. Benetako sistema nahiko konplikatua masterizazioan - operadore eta talde ugari ditu. Gainera, erabiltzaile batzuk kexatzen dira interfaze eskasa eta beharko konfiguratu agenteak eskalatzeko.

Startup-entzako CICD: zer tresna dauden eta zergatik ez soilik enpresa handi eta ezagunak erabiltzen
Argazkia - Matt Wildbore β€” Zipriztindu

GoCD praktikan probatu nahi baduzu, proiektuaren webgunean aurki dezakezu dokumentazio ofiziala. Informazio osagarriaren iturri gisa ere gomenda daiteke GoCD garatzaileen bloga eskuliburuekin konfigurazioan.

Jenkins

Jenkins oso ezaguna da eta jotzen CICD arloko estandar moduko bat - noski, hura gabe hautaketa hau ez litzateke guztiz osatua izango. Tresna 2011n agertu zen, bilakatu Oracle-ko Project Hudson-en sardexka bat.

Gaur Jenkinsekin Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ NASAn, Nintendon eta beste erakunde handi batzuetan. Hala ere % 8 baino gehiago erabiltzaileek hamar laguneko talde txikiak osatzen dituzte. Produktua guztiz doakoa eta banatua da MIT lizentziapean. Hala ere, Jenkins zuk zeuk ostatu eta konfiguratu beharko duzu - zerbitzari dedikatu bat behar du.

Instrumentuaren existentzia osoan zehar, komunitate handi bat sortu da haren inguruan. Erabiltzaileak aktiboki komunikatzen dira harietan Reddit ΠΈ Google Groups. Jenkins-i buruzko materialak HabrΓ©-n ere agertzen dira aldizka. Komunitatearen parte bihurtu eta Jenkinsekin lanean hasi nahi baduzu, badago dokumentazio ofiziala ΠΈ garatzaileen gida. Honako gida eta liburu hauek ere gomendatzen ditugu:

Jenkinsek alboko hainbat proiektu erabilgarriak ditu. Lehenengoa plugin bat da Konfigurazioa Kode gisa. Jenkins konfiguratzea errazten du irakurtzeko errazak diren APIekin, tresnaren ezagutza sakonik gabeko administratzaileek ere uler ditzaketenak. Bigarrena sistema da Jenkins X hodeiarentzat. Eskala handiko IT azpiegituretan zabaldutako aplikazioen entrega bizkortzen du, ohiko zeregin batzuk automatizatuz.

Buildbot

Aplikazioen eraikuntza- eta proba-zikloa automatizatzeko etengabeko integrazio-sistema da. Kodearen funtzionaltasuna automatikoki egiaztatzen du aldaketak egiten diren bakoitzean.

Tresnaren egilea Brian Warner ingeniaria izan zen. Gaur guardian dago aldatu sei garatzaile biltzen dituen Buildbot Oversight Committee ekimen taldea.

Buildbot Erabilitako LLVM, MariaDB, Blender eta Dr.Web bezalako proiektuak. Baina wxWidgets eta Flathub bezalako proiektu txikiagoetan ere erabiltzen da. Sistemak VCS moderno guztiak onartzen ditu eta eraikuntza ezarpen malguak ditu Python erabiliz, horiek deskribatzeko. Horiei guztiei aurre egiten lagunduko dizu. dokumentazio ofiziala eta hirugarrenen tutoretzak, adibidez, hona hemen labur bat IBM eskuliburua.

Jakina, hori ez da guztia Erakunde txikiek eta startupek arreta jarri behar dieten DevOps tresnak. Eman zure gogoko tresnak iruzkinetan, eta horietaz hitz egiten saiatuko gara honako material hauetako batean.

Blog korporatiboan idazten dugunari buruz:

Iturria: www.habr.com

Gehitu iruzkin berria