CICD per startup: quali strumenti ci sono e perché non li utilizzano solo le grandi e note aziende

Gli sviluppatori di strumenti CICD spesso elencano come clienti grandi aziende: Microsoft, Oculus, Red Hat, persino Ferrari e NASA. Sembrerebbe che tali marchi funzionino solo con sistemi costosi che una startup composta da una coppia di sviluppatori e un designer non può permettersi. Ma una parte significativa degli strumenti è disponibile per piccoli team.

Di seguito ti diremo a cosa puoi prestare attenzione.

CICD per startup: quali strumenti ci sono e perché non li utilizzano solo le grandi e note aziende
Фото - Csaba Balazs — Spruzza

Censore PHP

Un server CI open source che semplifica la creazione di progetti in PHP. Questo è un fork del progetto PHPCI. Lo stesso PHPCI è ancora in fase di sviluppo, ma non così attivamente come prima.

PHP Censor può funzionare con GitHub, GitLab, Mercurial e molti altri repository. Per testare il codice, lo strumento utilizza le librerie Atoum, PHP Spec, Behat, Codeception. Qui file di esempio configurazioni per il primo caso:

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

Si ritieneche PHP Censor è adatto per la distribuzione di piccoli progetti, ma dovrai ospitarlo e configurarlo tu stesso (auto-ospitato). Questo compito è semplificato da una documentazione abbastanza dettagliata: è su GitHub.

Rex

Rex è l'abbreviazione di Esecuzione remota. Il sistema è stato sviluppato dall'ingegnere Ferenc Erki per automatizzare i processi nel data center. Rex si basa sugli script Perl, ma non è necessario conoscere questo linguaggio per interagire con lo strumento: la maggior parte delle operazioni (ad esempio la copia di file) sono descritte nella libreria delle funzioni e gli script spesso si adattano a dieci righe. Ecco un esempio per l'accesso a più server e l'esecuzione del tempo di attività:

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

Ti consigliamo di iniziare a conoscere lo strumento con guida ufficiale и e-book, attualmente in fase di completamento.

Servizio di creazione aperta (OBS)

Si tratta di una piattaforma per ottimizzare lo sviluppo delle distribuzioni. Il suo codice è aperto e si trova nel repository su GitHub. L'autore dello strumento è l'azienda Novell. Ha partecipato allo sviluppo della distribuzione SuSE e questo progetto inizialmente si chiamava openSUSE Build Service. Non sorprende che Open Build Service usato per realizzare progetti in openSUSE, Tizen e VideoLAN. Anche Dell, SGI e Intel lavorano con lo strumento. Ma tra gli utenti abituali ci sono anche piccole startup. Soprattutto per loro, gli autori hanno raccolto (pagina 10) preconfigurato pacchetto software. Il sistema in sé è completamente gratuito: devi solo spendere soldi per l'hosting o un server hardware per implementarlo.

Ma nel corso della sua esistenza, lo strumento non ha mai acquisito una vasta comunità. Sebbene è stato parte del Linux Developer Network, responsabile della standardizzazione del sistema operativo aperto. Può essere difficile Trova la risposta alla tua domanda nei forum tematici. Ma uno dei residenti di Quora lo ha notato Chatta su IRC Su Freenode, i membri della comunità rispondono abbastanza prontamente. Il problema di una piccola comunità non è globale, poiché è stata descritta la soluzione di molti problemi nella documentazione ufficiale (PDF e EPUB). Ibid. si può trovare migliori pratiche per lavorare con OBS (ci sono esempi e casi).

Rundeck

Strumento Apri (GitHub), che automatizza le attività nel data center e nel cloud utilizzando script. Uno speciale script server è responsabile della loro esecuzione. Possiamo dire che Rundeck è una “figlia” della piattaforma di gestione delle applicazioni ControlTier. Rundeck se ne separò nel 2010 e acquisì nuove funzionalità, ad esempio integrazioni con Puppet, Chef, Git e Jenkins.

Il sistema è utilizzato in The Walt Disney Company, Salesforce и Ticketmaster. Ma il progetto è adatto anche alle startup. Questo perché Rundeck è concesso in licenza con la licenza Apache v2.0. Inoltre, lo strumento è abbastanza facile da usare.

Un residente di Reddit che ha lavorato con Rundeck, parla, che ha risolto la maggior parte delle difficoltà da solo. Lo hanno aiutato in questo documentazione ed e-book, pubblicato dagli sviluppatori.

Puoi anche trovare brevi guide alla configurazione dello strumento online:

Vai CD

Strumento Apri (GitHub) automatizzando il controllo della versione del codice. È stato introdotto nel 2007 dall'azienda ThoughtWorks - allora il progetto si chiamava Cruise.

GoCD è utilizzato dagli ingegneri del sito di vendita di automobili online AutoTrader, del servizio di genealogia Ancestry e del fornitore di carte di credito Barclaycard. Tuttavia, un quarto degli utenti dello strumento costituisce una piccola impresa.

La popolarità del servizio tra le startup può essere spiegata dalla sua apertura: è distribuito sotto la licenza Apache v2.0. Allo stesso tempo, GoCD Ha plugin per l'integrazione con software di terze parti - sistemi di autorizzazione e soluzioni cloud. Vero sistema abbastanza complicato nel mastering: ha un gran numero di operatori e team. Inoltre, alcuni utenti si lamentano dell'interfaccia scadente e bisogno configurare gli agenti per la scalabilità.

CICD per startup: quali strumenti ci sono e perché non li utilizzano solo le grandi e note aziende
Фото - Matt Wildbore — Spruzza

Se vuoi provare GoCD nella pratica, puoi trovarlo sul sito web del progetto documentazione ufficiale. Può anche essere consigliato come fonte di informazioni aggiuntive Blog degli sviluppatori GoCD con manuali sulla configurazione.

Jenkins

Jenkins è ampiamente conosciuto e considerato una sorta di standard nel campo del CICD - ovviamente senza di esso questa selezione non sarebbe del tutto completa. Lo strumento è apparso nel 2011, diventare un fork di Project Hudson di Oracle.

Oggi con Jenkins stanno lavorando alla NASA, Nintendo e altre grandi organizzazioni. Tuttavia % più 8 gli utenti rappresentano piccoli team fino a dieci persone. Il prodotto è completamente gratuito e distribuito sotto licenza MIT. Tuttavia, dovrai ospitare e configurare Jenkins da solo: richiede un server dedicato.

Nel corso dell'intera esistenza dello strumento, attorno ad esso si è formata una grande comunità. Gli utenti comunicano attivamente nei thread su Reddit и Google Gruppi. Materiali su Jenkins appaiono regolarmente anche su Habré. Se desideri entrare a far parte della comunità e iniziare a lavorare con Jenkins, c'è documentazione ufficiale и guida per sviluppatori. Consigliamo inoltre le seguenti guide e libri:

Jenkins ha diversi progetti collaterali utili. Il primo è un plugin Configurazione come codice. Semplifica la configurazione di Jenkins con API di facile lettura che possono essere comprese anche dagli amministratori senza una conoscenza approfondita dello strumento. Il secondo è il sistema Jenkins X per la nuvola. Accelera la distribuzione di applicazioni distribuite su infrastrutture IT su larga scala automatizzando alcune attività di routine.

Costruiscibot

Si tratta di un sistema di integrazione continua per automatizzare il ciclo di creazione e test delle applicazioni. Controlla automaticamente la funzionalità del codice ogni volta che vengono apportate modifiche allo stesso.

L'autore dello strumento era l'ingegnere Brian Warner. Oggi è in servizio cambiato gruppo di iniziativa Buildbot Oversight Committee, che comprende sei sviluppatori.

Costruiscibot usato progetti come LLVM, MariaDB, Blender e Dr.Web. Ma viene utilizzato anche in progetti più piccoli come wxWidgets e Flathub. Il sistema supporta tutti i VCS moderni e dispone di impostazioni di compilazione flessibili utilizzando Python per descriverle. Ti aiuterà ad affrontarli tutti. documentazione ufficiale e tutorial di terze parti, ad esempio, eccone uno breve Manuale dell'IBM.

Ovviamente, non è tutto Strumenti DevOps a cui le piccole organizzazioni e le startup dovrebbero prestare attenzione. Fornisci i tuoi strumenti preferiti nei commenti e proveremo a parlarne in uno dei seguenti materiali.

Di cosa scriviamo nel blog aziendale:

Fonte: habr.com

Aggiungi un commento