CICD pre startupy: aké nástroje existujú a prečo ich využívajú nielen veľké a známe spoločnosti

Vývojári nástrojov CICD často uvádzajú ako klientov veľké spoločnosti – Microsoft, Oculus, Red Hat, dokonca aj Ferrari a NASA. Zdalo by sa, že takéto značky pracujú len s drahými systémami, ktoré si startup pozostávajúci z dvojice vývojárov a dizajnéra nemôže dovoliť. Značná časť nástrojov je však dostupná pre malé tímy.

Čomu môžete venovať pozornosť, vám povieme nižšie.

CICD pre startupy: aké nástroje existujú a prečo ich využívajú nielen veľké a známe spoločnosti
Foto — Csaba Balazs — Odstriekať

Cenzor PHP

Open source CI server, ktorý uľahčuje vytváranie projektov v PHP. Toto je fork projektu PHPCI. Samotné PHPCI sa stále vyvíja, ale už nie tak aktívne ako predtým.

PHP Censor môže pracovať s GitHub, GitLab, Mercurial a niekoľkými ďalšími úložiskami. Na testovanie kódu nástroj používa knižnice Atoum, PHP Spec, Behat, Codeception. Tu vzorový súbor konfigurácie pre prvý prípad:

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

Predpokladá sa,že PHP Censor je vhodný na nasadzovanie malých projektov, ale budete ho musieť hostiť a nakonfigurovať sami (samohostiteľom). Táto úloha je zjednodušená pomerne podrobnou dokumentáciou - je to na GitHub.

rex

Rex je skratka pre Remote Execution. Systém vyvinul inžinier Ferenc Erki na automatizáciu procesov v dátovom centre. Rex je založený na skriptoch Perl, ale na interakciu s nástrojom nie je potrebné poznať tento jazyk - väčšina operácií (napríklad kopírovanie súborov) je popísaná v knižnici funkcií a skripty sa často zmestia do desiatich riadkov. Tu je príklad prihlásenia sa na viacero serverov a spustenia prevádzky:

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

Odporúčame začať zoznámenie sa s nástrojom s oficiálny sprievodca и elektronická kniha, ktorá sa v súčasnosti dokončuje.

Open Build Service (OBS)

Ide o platformu na optimalizáciu vývoja distribúcií. Jeho kód je otvorený a nachádza sa v úložisku na adrese GitHub. Autorom nástroja je spoločnosť Novell. Podieľala sa na vývoji distribúcie SuSE a tento projekt sa pôvodne nazýval openSUSE Build Service. Nie je žiadnym prekvapením, že služba Open Build Service použitý pre stavebné projekty v openSUSE, Tizen a VideoLAN. S nástrojom spolupracujú aj spoločnosti Dell, SGI a Intel. No medzi bežnými používateľmi sú aj malé startupy. Najmä pre nich autori zozbierali (SЃS, SЂ.10) vopred nakonfigurovaný softvérový balík. Samotný systém je úplne zadarmo – na jeho nasadenie musíte minúť peniaze len za hosting alebo hardvérový server.

Ale počas svojej existencie si tento nástroj nikdy nezískal širokú komunitu. Hoci bol súčasť Linux Developer Network, zodpovedná za štandardizáciu otvoreného OS. Môže to byť ťažké Nájdite odpoveď na svoju otázku na tematických fórach. Ale jeden z obyvateľov Quory poznamenal, že v IRC chat Na Freenode reagujú členovia komunity celkom pohotovo. Problém malej komunity nie je globálny, keďže riešenie mnohých problémov bolo popísané v oficiálnej dokumentácii (PDF a EPUB). Tamže. nájdete osvedčené postupy pre prácu s OBS (sú tam príklady a prípady).

Rundeck

Otvoriť nástroj (GitHub), ktorá automatizuje úlohy v dátovom centre a cloude pomocou skriptov. Za ich spustenie je zodpovedný špeciálny skriptový server. Dá sa povedať, že Rundeck je „dcérou“ platformy na správu aplikácií ControlTier. Rundeck sa od nej oddelil v roku 2010 a získal novú funkcionalitu – napríklad integrácie s Puppet, Chef, Git a Jenkins.

Systém sa používa v Spoločnosť Walt Disney, Salesforce и Ticketmaster. Projekt je ale vhodný aj pre startupy. Dôvodom je, že Rundeck je licencovaný pod licenciou Apache v2.0. Okrem toho sa nástroj veľmi ľahko používa.

Rezident Redditu, ktorý spolupracoval s Rundeckom, говорит, ktorý väčšinu ťažkostí vyriešil sám. Pomohli mu s tým dokumentáciu a elektronické knihy, ktorú zverejnili vývojári.

Stručných sprievodcov nastavením nástroja nájdete aj online:

GoCD

Otvoriť nástroj (GitHub) automatizácia kontroly verzie kódu. Spoločnosť ho predstavila v roku 2007 ThoughtWorks — vtedy sa projekt volal Cruise.

GoCD používajú inžinieri z online predajne áut AutoTrader, genealogická služba Ancestry a poskytovateľ kreditných kariet Barclaycard. Avšak štvrtina používateľov nástrojov predstavuje malý podnik.

Obľúbenosť služby medzi startupmi možno vysvetliť jej otvorenosťou – je šírená pod licenciou Apache v2.0. Zároveň GoCD pluginy pre integráciu so softvérom tretích strán – autorizačné systémy a cloudové riešenia. Skutočný systém dosť komplikované v masteringu – má veľké množstvo operátorov a tímov. Niektorí používatelia sa tiež sťažujú na zlé rozhranie a nevyhnutnosť konfigurovať agentov na škálovanie.

CICD pre startupy: aké nástroje existujú a prečo ich využívajú nielen veľké a známe spoločnosti
Foto — Matt Wildbore — Odstriekať

Ak si chcete GoCD vyskúšať v praxi, nájdete na stránke projektu oficiálna dokumentácia. Možno ho odporučiť aj ako zdroj doplňujúcich informácií Blog vývojárov GoCD s manuálmi pri nastavení.

Jenkins

Jenkins je všeobecne známy a za akýsi štandard v oblasti CICD – samozrejme, bez neho by tento výber nebol úplne úplný. Nástroj sa objavil v roku 2011, slušivý fork Project Hudson od Oracle.

Dnes s Jenkinsom pracujú v NASA, Nintendo a ďalších veľkých organizáciách. Avšak viac ako 8% používatelia tvoria malé tímy do desiatich ľudí. Produkt je úplne zadarmo a distribuovaný pod licenciou MIT. Budete však musieť hostiť a nakonfigurovať Jenkins sami - vyžaduje to vyhradený server.

Za celú existenciu nástroja sa okolo neho vytvorila veľká komunita. Používatelia aktívne komunikujú vo vláknach na facebook и Skupiny Google. Materiály o Jenkins sa pravidelne objavujú aj na Habrém. Ak by ste sa chceli stať súčasťou komunity a začať spolupracovať s Jenkinsom, existuje oficiálna dokumentácia и sprievodca pre vývojárov. Odporúčame tiež nasledujúcich sprievodcov a kníh:

Jenkins má niekoľko užitočných vedľajších projektov. Prvým je plugin Konfigurácia ako kód. Uľahčuje nastavenie Jenkins pomocou ľahko čitateľných rozhraní API, ktorým rozumejú aj správcovia bez hlbokých znalostí tohto nástroja. Druhým je systém Jenkins X pre cloud. Urýchľuje poskytovanie aplikácií nasadených na rozsiahlej IT infraštruktúre automatizáciou niektorých rutinných úloh.

Buildbot

Ide o kontinuálny integračný systém na automatizáciu cyklu vytvárania a testovania aplikácií. Automaticky kontroluje funkčnosť kódu pri každej zmene.

Autorom nástroja bol inžinier Brian Warner. Dnes je v službe zmenené iniciatívna skupina Buildbot Oversight Committee, ktorá zahŕňa šesť vývojárov.

Buildbot použitý projekty ako LLVM, MariaDB, Blender a Dr.Web. Používa sa však aj v menších projektoch ako wxWidgets a Flathub. Systém podporuje všetky moderné VCS a má flexibilné nastavenia zostavovania pomocou Pythonu na ich popis. Pomôže vám to vysporiadať sa so všetkými. oficiálna dokumentácia a napríklad návody tretích strán, tu je krátky IBM manuál.

Samozrejme, to nie je všetko Nástroje DevOps, ktorým by mali malé organizácie a startupy venovať pozornosť. Uveďte svoje obľúbené nástroje v komentároch a pokúsime sa o nich hovoriť v jednom z nasledujúcich materiálov.

O čom píšeme na firemnom blogu:

Zdroj: hab.com

Pridať komentár