CI \ CD für Startups: Welche Tools gibt es und warum werden sie nicht nur von großen und bekannten Unternehmen verwendet?

Entwickler von CI \ CD-Tools geben häufig große Unternehmen wie Microsoft, Oculus, Red Hat, sogar Ferrari und die NASA als Kunden an. Es scheint, dass solche Marken nur mit teuren Systemen funktionieren, die sich ein bedingter Start von einigen Entwicklern und einem Designer nicht leisten kann. Ein erheblicher Teil der Tools steht jedoch kleinen Teams zur Verfügung.

Worauf Sie achten können - wir werden weiter erzählen.


Fotos - Csaba Balazs - Unsplash



PHP-Zensor


Ein Open Source CI-Server, der das Erstellen von PHP-Projekten erleichtert. Dies ist eine Abzweigung des PHPCI- Projekts. PHPCI selbst entwickelt sich noch, aber nicht so aktiv wie zuvor.

PHP Censor kann mit Repositorys wie GitHub, GitLab, Mercurial und mehreren anderen arbeiten. Zum Testen des Codes verwendet das Tool die Bibliotheken Atoum, PHP Spec, Behat und Codeception. Hier ist eine Beispielkonfigurationsdatei für den ersten Fall:

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

Es wird angenommen, dass PHP Censor nicht schlecht für die Bereitstellung kleiner Projekte ist, aber Sie müssen es selbst hosten und konfigurieren (selbst gehostet). Diese Aufgabe wird durch eine ziemlich detaillierte Dokumentation vereinfacht - sie befindet sich auf GitHub .



Rex


Rex steht für Remote Execution. Das System wurde von Ingenieur Ferenc Erki entwickelt, um Prozesse im Rechenzentrum zu automatisieren. Die Arbeit von Rex basiert auf Perl-Skripten, aber es ist nicht erforderlich, diese Sprache zu kennen, um mit dem Tool zu interagieren. Die meisten Vorgänge (z. B. das Kopieren von Dateien) werden in der Funktionsbibliothek beschrieben, und Skripte passen häufig in zehn Zeilen. Hier ist ein Beispiel, um sich bei mehreren Servern anzumelden und die Betriebszeit auszuführen:

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

Wir empfehlen Ihnen, sich mit dem Tool aus dem offiziellen Handbuch und dem E-Book vertraut zu machen, das derzeit hinzugefügt wird.



Open Build Service (OBS)


Dies ist eine Plattform zur Optimierung der Distributionsentwicklung. Sein Code ist offen und liegt im Repository auf GitHub . Der Autor des Tools ist Novell . Sie war an der Entwicklung der SuSE-Distribution beteiligt, und dieses Projekt wurde ursprünglich als openSUSE Build Service bezeichnet. Es überrascht nicht, dass der Open Build Service zum Erstellen von Projekten in openSUSE, Tizen und VideoLAN verwendet wird. Das Tool funktioniert auch mit Dell, SGI und Intel. Aber es gibt unter regulären Nutzern und kleinen Startups. Speziell für sie haben die Autoren ein vorkonfiguriertes Softwarepaket gesammelt ( S. 10 ). Das System selbst ist völlig kostenlos - Sie müssen nur Geld für ein Hosting oder einen Iron Server ausgeben, um es bereitzustellen.

Für die gesamte Zeit seines Bestehens hat das Tool jedoch keine breite Community erhalten. Obwohl es Teil des Linux Developer Network war, das für die Standardisierung des offenen Betriebssystems verantwortlich ist. Es kann schwierig sein , eine Antwort auf eine Frage in Themenforen zu finden. Einer der Bewohner von Quora bemerkte jedoch, dass Mitglieder der Community im IRC-Chat auf Freenode eher bereitwillig reagieren. Das Problem der kleinen Gemeinschaft ist nicht global, da die Lösung vieler Probleme in der offiziellen Dokumentation (PDF und EPUB) beschrieben ist. Dort finden Sie Best Practices für die Arbeit mit OBS (es gibt Beispiele und Fälle).



Rundeck


Ein offenes Tool ( GitHub ), das Aufgaben im Rechenzentrum und in der Cloud mithilfe von Skripten automatisiert. Ein spezieller Skriptserver ist für deren Ausführung verantwortlich. Wir können sagen, dass Rundeck die "Tochter" der Plattform für die Verwaltung von ControlTier-Anwendungen ist. Rundeck trennte sich 2010 davon und erwarb neue Funktionen - zum Beispiel Integrationen mit Puppet, Chef, Git und Jenkins.

Das System wird von The Walt Disney Company , Salesforce und Ticketmaster verwendet . Das Projekt eignet sich aber auch für Startups. Dies liegt daran, dass Rundeck unter der Apache v2.0-Lizenz lizenziert ist. Darüber hinaus ist das Tool recht einfach zu bedienen.

Ein Einwohner von Reddit, der mit Rundeck zusammengearbeitet hat, sagt, er habe die meisten Schwierigkeiten selbst gelöst. Dabei halfen ihm die von den Entwicklern veröffentlichten Dokumentationen und E-Books .

Sie können auch Kurzanleitungen zum Online-Einrichten des Tools finden:




Gocd


Ein offenes Tool ( GitHub ) automatisiert die Versionskontrolle von Code. Es wurde 2007 von ThoughtWorks eingeführt - dann hieß das Projekt Cruise.

AutoCD Autoder, ein Ancestry-Genealogie-Dienst, und Barclaycard, ein Kreditkartenanbieter, arbeiten mit GoCD zusammen. Ein Viertel der Benutzer des Tools sind jedoch kleine Unternehmen .

Die Beliebtheit des Dienstes bei Startups lässt sich durch seine Offenheit erklären - er wird unter der Apache v2.0-Lizenz vertrieben. Gleichzeitig verfügt GoCD über Plugins zur Integration in Software von Drittanbietern - Autorisierungssysteme und Cloud-Lösungen. Das System ist zwar ziemlich schwer zu beherrschen - es hat eine große Anzahl von Bedienern und Teams. Einige Benutzer beschweren sich auch über die fehlerhafte Benutzeroberfläche und die Notwendigkeit, Agenten für die Skalierung zu konfigurieren.


Fotos - Matt Wildbore - Unsplash

Wenn Sie GoCD in der Praxis ausprobieren möchten, finden Sie auf der Projektwebsite die offizielle Dokumentation . Sie können auch das GoCD Developer Blog mit Anpassungshandbüchern als Quelle für zusätzliche Informationen empfehlen.



Jenkins


Jenkins ist weithin bekannt und gilt als eine Art Standard im Bereich CI \ CD - ohne ihn wäre diese Auswahl natürlich nicht vollständig. Das Tool erschien 2011 und wurde zu einem Zweig des Hudson-Projekts von Oracle.

Heute arbeiten sie mit Jenkins bei der NASA, Nintendo und anderen großen Organisationen zusammen. Mehr als 8% der Benutzer sind jedoch kleine Gruppen von bis zu zehn Personen. Das Produkt ist völlig kostenlos und wird unter der MIT-Lizenz vertrieben . Sie müssen Jenkins jedoch selbst hosten und konfigurieren - es ist ein dedizierter Server erforderlich.

Während des gesamten Lebens des Instruments hat sich eine umfangreiche Gemeinschaft um es herum gebildet. Benutzer kommunizieren aktiv in Threads auf Reddit und Google Groups . Materialien zu Jenkins erscheinen auch regelmäßig auf Habré. Wenn Sie Teil der Community werden und mit Jenkins beginnen möchten, gibt es eine offizielle Dokumentation und einen Leitfaden der Entwickler . Wir empfehlen außerdem die folgenden Anleitungen und Bücher:


Jenkins hat einige nützliche Projekte von Drittanbietern. Das erste ist das Plugin Konfiguration als Code . Es vereinfacht die Einrichtung von Jenkins mit lesbaren APIs, die auch für Administratoren ohne fundierte Kenntnisse des Tools verständlich sind. Das zweite ist das Jenkins X Cloud-System. Es beschleunigt die Bereitstellung von Anwendungen, die in einer großen IT-Infrastruktur bereitgestellt werden, indem einige Routineaufgaben automatisiert werden.



Buildbot


Dies ist ein kontinuierliches Integrationssystem zur Automatisierung des Montage- und Testzyklus von Anwendungen. Es überprüft automatisch die Funktionalität des Codes jedes Mal, wenn Änderungen daran vorgenommen werden.

Der Autor des Tools war der Ingenieur Brian Warner (Brian Warner). Heute wurde er durch die Initiativgruppe des Buildbot Oversight Committee ersetzt, der sechs Entwickler angehören.

Buildbot wird von Projekten wie LLVM, MariaDB, Blender und Dr.Web verwendet. Es wird aber auch in kleineren Projekten wie wxWidgets und Flathub verwendet. Das System unterstützt alle modernen VCS und verfügt über flexible Build-Einstellungen, die mithilfe von Python beschrieben werden. Die offizielle Dokumentation und die Tutorials von Drittanbietern helfen Ihnen bei der Bewältigung aller Probleme. Hier finden Sie beispielsweise eine Kurzanleitung von IBM .



Dies sind natürlich nicht alle DevOps-Tools, auf die kleine Unternehmen und Startups achten sollten. Geben Sie Ihre Lieblingswerkzeuge in den Kommentaren an, und wir werden versuchen, in einem der folgenden Materialien darüber zu sprechen.



Worüber wir in einem Unternehmensblog schreiben:

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


All Articles