ProHoster > Blogs > interneta ziÅas > CICD jaunizveidotiem uzÅÄmumiem: kÄdi rÄ«ki pastÄv un kÄpÄc tos izmanto ne tikai lieli un labi zinÄmi uzÅÄmumi
CICD jaunizveidotiem uzÅÄmumiem: kÄdi rÄ«ki pastÄv un kÄpÄc tos izmanto ne tikai lieli un labi zinÄmi uzÅÄmumi
CICD rÄ«ku izstrÄdÄtÄji bieži kÄ klienti min lielus uzÅÄmumus - Microsoft, Oculus, Red Hat, pat Ferrari un NASA. Å Ä·iet, ka Å”Ädi zÄ«moli strÄdÄ tikai ar dÄrgÄm sistÄmÄm, kuras startup, kas sastÄv no pÄris izstrÄdÄtÄjiem un dizainera, nevar atļauties. TaÄu ievÄrojama daļa rÄ«ku ir pieejama mazÄm komandÄm.
TÄlÄk mÄs jums pateiksim, kam varat pievÄrst uzmanÄ«bu.
AtvÄrtÄ koda CI serveris, kas atvieglo projektu izveidi PHP. Å Ä« ir projekta dakÅ”a PHPCI. Pats PHPCI joprojÄm attÄ«stÄs, bet ne tik aktÄ«vi kÄ iepriekÅ”.
PHP Censor var strÄdÄt ar GitHub, GitLab, Mercurial un vairÄkÄm citÄm krÄtuvÄm. Lai pÄrbaudÄ«tu kodu, rÄ«ks izmanto Atoum, PHP Spec, Behat, Codeception bibliotÄkas. Å eit parauga fails konfigurÄcijas pirmajam gadÄ«jumam:
test:
atoum:
args: "command line arguments go here"
config: "path to config file"
directory: "directory to run tests"
executable: "path to atoum executable"
Uzskataka PHP Censor ir labi piemÄrots nelielu projektu izvietoÅ”anai, taÄu tas bÅ«s jÄhostÄ un jÄkonfigurÄ paÅ”am (paÅ”hostÄts). Å o uzdevumu vienkÄrÅ”o diezgan detalizÄta dokumentÄcija - tas ir vietnÄ GitHub.
Rex ir saÄ«sinÄjums no Remote Execution. SistÄmu izstrÄdÄja inženieris Ferencs Erki, lai automatizÄtu procesus datu centrÄ. Rex pamatÄ ir Perl skripti, taÄu, lai strÄdÄtu ar rÄ«ku, Ŕī valoda nav jÄzina - lielÄkÄ daļa darbÄ«bu (piemÄram, failu kopÄÅ”ana) ir aprakstÄ«tas funkciju bibliotÄkÄ, un skripti bieži iekļaujas desmit rindÄs. TÄlÄk ir sniegts piemÄrs, kÄ pieteikties vairÄkos serveros un darbinÄt darbÄ«bas laiku:
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;
};
Å Ä« ir platforma izplatÄ«Å”anas izstrÄdes optimizÄÅ”anai. TÄs kods ir atvÄrts un atrodas repozitorijÄ vietnÄ GitHub. RÄ«ka autors ir uzÅÄmums Novell. ViÅa piedalÄ«jÄs SuSE izplatÄ«Å”anas izstrÄdÄ, un Å”is projekts sÄkotnÄji tika saukts par openSUSE Build Service. Tas nav pÄrsteigums, ka Open Build Service izmantot bÅ«vniecÄ«bas projektiem OpenSUSE, Tizen un VideoLAN. Ar Å”o rÄ«ku strÄdÄ arÄ« Dell, SGI un Intel. Bet starp parastajiem lietotÄjiem ir arÄ« mazi jaunuzÅÄmumi. ÄŖpaÅ”i viÅiem autori savÄca (lapa 10) iepriekÅ” konfigurÄts programmatÅ«ras pakotne. SistÄma pati par sevi ir pilnÄ«gi bez maksas ā lai to izvietotu, ir jÄtÄrÄ nauda tikai hostingam vai aparatÅ«ras serverim.
Bet visÄ tÄs pastÄvÄÅ”anas laikÄ rÄ«ks nekad nav ieguvis plaÅ”u kopienu. Lai gan viÅÅ” bija daļa no Linux izstrÄdÄtÄju tÄ«kla, kas ir atbildÄ«ga par atvÄrtÄs OS standartizÄciju. Tas var bÅ«t grÅ«ti Atrodiet atbildi uz savu jautÄjumu tematiskajos forumos. Bet viens no Quora iedzÄ«votÄjiem atzÄ«mÄja, ka in IRC tÄrzÄÅ”ana ProgrammÄ Freenode kopienas locekļi reaÄ£Ä diezgan viegli. Mazas kopienas problÄma nav globÄla, jo ir aprakstÄ«ts daudzu problÄmu risinÄjums oficiÄlajÄ dokumentÄcijÄ (PDF un EPUB). Turpat var atrast labÄkÄ prakse darbam ar OBS (ir piemÄri un gadÄ«jumi).
AtvÄrt rÄ«ku (GitHub), kas automatizÄ uzdevumus datu centrÄ un mÄkonÄ«, izmantojot skriptus. Par to izpildi ir atbildÄ«gs Ä«paÅ”s skriptu serveris. Var teikt, ka Rundeck ir ControlTier lietojumprogrammu pÄrvaldÄ«bas platformas āmeitaā. Rundeck no tÄ atdalÄ«jÄs 2010. gadÄ un ieguva jaunu funkcionalitÄti - piemÄram, integrÄcijas ar Puppet, Chef, Git un Jenkins.
SistÄma tiek izmantota Walt Disney Company, Salesforce Šø Ticketmaster. TaÄu projekts ir piemÄrots arÄ« jaunuzÅÄmumiem. Tas ir tÄpÄc, ka Rundeck ir licencÄts saskaÅÄ ar Apache v2.0 licenci. TurklÄt rÄ«ks ir diezgan viegli lietojams.
Reddit iedzÄ«votÄjs, kurÅ” strÄdÄja ar Rundeck, saka, kas lielÄko daļu grÅ«tÄ«bu atrisinÄja paÅ”a spÄkiem. ViÅi viÅam palÄ«dzÄja Å”ajÄ jautÄjumÄ dokumentÄcija un e-grÄmatas, ko publicÄjuÅ”i izstrÄdÄtÄji.
Varat arÄ« atrast Ä«sas rokasgrÄmatas rÄ«ka iestatÄ«Å”anai tieÅ”saistÄ:
AtvÄrt rÄ«ku (GitHub) automatizÄjot koda versiju kontroli. UzÅÄmums to ieviesa 2007. gadÄ Domu darbi ā toreiz projektu sauca KruÄ«zs.
GoCD izmanto inženieri no tieÅ”saistes automaŔīnu pÄrdoÅ”anas vietnes AutoTrader, Ä£enealoÄ£ijas pakalpojuma Ancestry un kredÄ«tkarÅ”u nodroÅ”inÄtÄja Barclaycard. TomÄr ceturtÄ daļa rÄ«ku lietotÄju veido mazo uzÅÄmumu.
Pakalpojuma popularitÄte jaunuzÅÄmumu vidÅ« skaidrojama ar tÄ atvÄrtÄ«bu ā tas tiek izplatÄ«ts zem Apache v2.0 licences. TajÄ paÅ”Ä laikÄ GoCD TÄ ir spraudÅi integrÄcijai ar treÅ”o puÅ”u programmatÅ«ru ā autorizÄcijas sistÄmÄm un mÄkoÅrisinÄjumiem. Patiesa sistÄma diezgan sarežģīti apgÅ«Å”anÄ - tajÄ ir liels operatoru un komandu skaits. ArÄ« daži lietotÄji sÅ«dzas par sliktu saskarni un vajadzÄ«ba konfigurÄt mÄrogoÅ”anas aÄ£entus.
Dženkinss ir plaÅ”i pazÄ«stams un uzskatÄ«ta sava veida standarts CICD jomÄ - protams, bez tÄ Å”Ä« izlase nebÅ«tu lÄ«dz galam pilnÄ«ga. Å is rÄ«ks parÄdÄ«jÄs 2011. kļūstot projekta Hudson dakÅ”a no Oracle.
Å odien ar Dženkinsu strÄdÄ NASA, Nintendo un citÄs lielÄs organizÄcijÄs. TomÄr virs 8% lietotÄji veido nelielas komandas lÄ«dz desmit cilvÄkiem. Produkts ir pilnÄ«gi bezmaksas un izplatÄ«ts saskaÅÄ ar MIT licenci. TomÄr jums paÅ”am bÅ«s jÄmitina un jÄkonfigurÄ Jenkins - tam ir nepiecieÅ”ams speciÄls serveris.
Dženkinsam ir vairÄki noderÄ«gi blakus projekti. Pirmais ir spraudnis KonfigurÄcija kÄ kods. Tas atvieglo Jenkins iestatÄ«Å”anu, izmantojot viegli lasÄmas API, kuras var saprast pat administratori bez dziļÄm zinÄÅ”anÄm par rÄ«ku. Otrais ir sistÄma Dženkinss X par mÄkoni. Tas paÄtrina lielapjoma IT infrastruktÅ«rÄ izvietoto lietojumprogrammu piegÄdi, automatizÄjot dažus ikdienas uzdevumus.
Å Ä« ir nepÄrtraukta integrÄcijas sistÄma lietojumprogrammu izveides un testÄÅ”anas cikla automatizÄÅ”anai. Tas automÄtiski pÄrbauda koda funkcionalitÄti katru reizi, kad tajÄ tiek veiktas izmaiÅas.
RÄ«ka autors bija inženieris Braiens Vorners. Å odien viÅÅ” dežurÄ mainÄ«ts Buildbot uzraudzÄ«bas komitejas iniciatÄ«vas grupa, kurÄ ir seÅ”i izstrÄdÄtÄji.
Buildbot lietots tÄdi projekti kÄ LLVM, MariaDB, Blender un Dr.Web. Bet to izmanto arÄ« mazÄkos projektos, piemÄram, wxWidgets un Flathub. SistÄma atbalsta visas mÅ«sdienu VCS, un tai ir elastÄ«gi veidoÅ”anas iestatÄ«jumi, to aprakstÄ«Å”anai izmantojot Python. Tas palÄ«dzÄs jums tikt galÄ ar tiem visiem. oficiÄlÄ dokumentÄcija un, piemÄram, treÅ”o puÅ”u apmÄcÄ«bas, Å”eit ir Ä«sa IBM rokasgrÄmata.
Protams, tas vÄl nav viss DevOps rÄ«ki, kuriem jÄpievÄrÅ” uzmanÄ«ba mazÄm organizÄcijÄm un jaunizveidotiem uzÅÄmumiem. Sniedziet savus iecienÄ«tÄkos rÄ«kus komentÄros, un mÄs centÄ«simies par tiem runÄt vienÄ no Å”iem materiÄliem.