CI \ CD pour les startups: quels outils existe-t-il et pourquoi pas seulement les grandes entreprises bien connues les utilisent

Les développeurs d'outils CI \ CD indiquent souvent de grandes entreprises comme Microsoft, Oculus, Red Hat, même Ferrari et la NASA comme clients. Il semblerait que ces marques ne fonctionnent qu'avec des systèmes coûteux qu'une start-up conditionnelle d'un couple de développeurs et d'un designer ne peut pas se permettre. Mais une partie importante des outils est disponible pour les petites équipes.

Ce à quoi vous pouvez faire attention - nous vous en dirons plus.


Photos - Csaba Balazs - Unsplash



Censeur PHP


Un serveur CI open source qui facilite la construction de projets PHP. Ceci est une fourchette du projet PHPCI . PHPCI lui-même se développe, mais pas aussi activement qu'auparavant.

PHP Censor peut fonctionner avec les référentiels GitHub, GitLab, Mercurial et plusieurs autres. Pour tester le code, l'outil utilise les bibliothèques Atoum, PHP Spec, Behat, Codeception. Voici un exemple de fichier de configuration pour le premier cas:

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

On pense que PHP Censor n'est pas mauvais pour déployer de petits projets, mais vous devrez l'héberger et le configurer vous-même (auto-hébergé). Cette tâche est simplifiée par une documentation assez détaillée - elle se trouve sur GitHub .



Rex


Rex est l'abréviation de Remote Execution. Le système a été développé par l'ingénieur Ferenc Erki pour automatiser les processus dans le centre de données. Le travail de Rex est basé sur des scripts Perl, mais il n'est pas nécessaire de connaître ce langage pour interagir avec l'outil - la plupart des opérations (par exemple, copier des fichiers) sont décrites dans la bibliothèque de fonctions, et les scripts tiennent souvent sur dix lignes. Voici un exemple pour vous connecter à plusieurs serveurs et exécuter la disponibilité:

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

Nous vous recommandons de commencer à vous familiariser avec l'outil à partir du guide officiel et du livre électronique , qui est en cours d'ajout.



Open Build Service (OBS)


Il s'agit d'une plateforme pour optimiser le développement de la distribution. Son code est ouvert et se trouve dans le référentiel sur GitHub . L'auteur de l'outil est Novell . Elle a participé au développement de la distribution SuSE, et ce projet s'appelait à l'origine openSUSE Build Service. Sans surprise, l'Open Build Service est utilisé pour créer des projets dans openSUSE, Tizen et VideoLAN. L'outil fonctionne également avec Dell, SGI et Intel. Mais il y en a parmi les utilisateurs réguliers et les petites startups. Surtout pour eux, les auteurs ont collecté ( p. 10 ) un progiciel préconfiguré. Le système lui-même est entièrement gratuit - vous n'avez qu'à dépenser de l'argent sur un hébergement ou un serveur de fer pour le déployer.

Mais pendant toute la durée de son existence, l'outil n'a pas acquis une large communauté. Bien qu'il fasse partie du Linux Developer Network, chargé de normaliser le système d'exploitation ouvert. Il peut être difficile de trouver une réponse à une question sur les forums thématiques. Mais l'un des résidents de Quora a noté que dans le chat IRC sur Freenode, les membres de la communauté réagissaient plutôt volontiers. Le problème de la petite communauté n'est pas mondial, car la solution à de nombreux problèmes est décrite dans la documentation officielle (PDF et EPUB). Vous y trouverez les meilleures pratiques pour travailler avec OBS (il y a des exemples et des cas).



Rundeck


Un outil ouvert ( GitHub ) qui automatise les tâches dans le centre de données et le cloud à l'aide de scripts. Un serveur de script spécial est responsable de leur exécution. On peut dire que Rundeck est la "fille" de la plateforme de gestion des applications ControlTier. Rundeck s'en est séparé en 2010 et a acquis de nouvelles fonctionnalités - par exemple, des intégrations avec Puppet, Chef, Git et Jenkins.

Le système est utilisé par The Walt Disney Company , Salesforce et Ticketmaster . Mais le projet convient également aux startups. En effet, Rundeck est sous licence Apache v2.0. De plus, l'outil est assez simple à utiliser.

Un résident de Reddit qui a travaillé avec Rundeck dit avoir résolu la plupart des difficultés par lui-même. Avec cela, la documentation et les livres électroniques publiés par les développeurs l'ont aidé.

Vous pouvez également trouver des guides rapides sur la configuration de l'outil en ligne:




Gocd


Un outil ouvert ( GitHub ) automatise le contrôle de version du code. Il a été introduit en 2007 par ThoughtWorks - puis le projet s'appelait Cruise.

AutoCD Autoder, un service de généalogie d'Ancestry, et Barclaycard, un fournisseur de cartes de crédit, travaillent avec GoCD. Cependant, un quart des utilisateurs de l'outil sont de petites entreprises .

La popularité du service auprès des startups s'explique par son ouverture - il est distribué sous la licence Apache v2.0. Dans le même temps, GoCD dispose de plugins pour l'intégration avec des logiciels tiers - systèmes d'autorisation et solutions cloud. Certes, le système est assez difficile à maîtriser - il compte un grand nombre d'opérateurs et d'équipes. De plus, certains utilisateurs se plaignent de la mauvaise interface et de la nécessité de configurer les agents pour la mise à l'échelle.


Photos - Matt Wildbore - Unsplash

Si vous voulez essayer GoCD dans la pratique, alors sur le site Web du projet, vous pouvez trouver la documentation officielle . Vous pouvez également recommander le blog des développeurs GoCD avec des guides de personnalisation comme source d'informations supplémentaires.



Jenkins


Jenkins est largement connu et considéré comme une sorte de standard dans le domaine du CI \ CD - bien sûr, sans cela, cette sélection ne serait pas complète. L'outil est apparu en 2011, devenant une branche du projet Hudson d'Oracle.

Aujourd'hui, ils travaillent avec Jenkins à la NASA, Nintendo et d'autres grandes organisations. Cependant, plus de 8% des utilisateurs sont des petits groupes de jusqu'à dix personnes. Le produit est entièrement gratuit et distribué sous licence MIT . Cependant, vous devrez héberger et configurer Jenkins vous-même - cela nécessite un serveur dédié.

Pendant toute la durée de vie de l'instrument, une vaste communauté s'est formée autour de lui. Les utilisateurs communiquent activement dans les discussions sur Reddit et Google Groupes . Des documents sur Jenkins apparaissent également régulièrement sur Habré. Si vous souhaitez faire partie de la communauté et commencer avec Jenkins, il existe une documentation officielle et un guide des développeurs . Nous recommandons également les guides et livres suivants:


Jenkins a quelques projets tiers utiles. Le premier est le plugin Configuration as Code . Il simplifie la configuration de Jenkins avec des API lisibles qui sont compréhensibles même pour les administrateurs sans une connaissance approfondie de l'outil. Le second est le système cloud Jenkins X. Il accélère la livraison des applications déployées sur une infrastructure informatique à grande échelle en automatisant certaines tâches de routine.



Buildbot


Il s'agit d'un système d'intégration continue pour automatiser le cycle d'assemblage et de test des applications. Il vérifie automatiquement la fonctionnalité du code chaque fois que des modifications y sont apportées.

L'auteur de l'outil était l'ingénieur Brian Warner (Brian Warner). Aujourd'hui, il a été remplacé par le groupe d'initiative Buildbot Oversight Committee, qui comprend six développeurs.

Buildbot est utilisé par des projets tels que LLVM, MariaDB, Blender et Dr.Web. Mais il est également utilisé dans des projets plus petits comme wxWidgets et Flathub. Le système prend en charge tous les VCS modernes et dispose de paramètres de construction flexibles grâce à l'utilisation de Python pour les décrire. La documentation officielle et les didacticiels tiers vous aideront à les gérer tous, par exemple, voici un guide rapide d'IBM .



Bien sûr, ce ne sont pas tous les outils DevOps auxquels les petites organisations et les startups doivent prêter attention. Donnez vos outils préférés dans les commentaires, et nous essaierons d'en parler dans l'un des documents suivants.



Ce que nous écrivons sur un blog d'entreprise:

Source: https://habr.com/ru/post/fr460735/


All Articles