CDS ist eine kontinuierliche Liefer- und DevOps-Automatisierungsplattform, die in Go (Lang) geschrieben wurde.
Dieses Projekt befindet sich unter aktiver Entwicklung
Dokumentation
CDS bietet eine intuitive Benutzeroberfläche, mit der Sie komplexe Workflows erstellen, diese ausführen und bei Bedarf in die Protokolle graben können.
Erstellen und führen Sie den Workflow mit der CDS -Benutzeroberfläche aus.
CDSCTL ist die CDS -Befehlszeile - Sie können alles mit cdsctl shell umkripten.
Sehen Sie alle CDSCTL -Befehle an
Erstellen Sie Workflow als Code mit CDS -Befehlszeile.
Docker-Compose ist Ihr Freund, siehe Bereit, Tutorials auszuführen
Die meisten CI/CD -Tools spielen mit Jobs in einer Pipeline. CDS führt ein neues Konzept mit dem Namen CDS Workflows ein. Mit einem CDS -Workflow können Sie Pipelines mit Triggern ketten. Eine Pipeline ist in sequentiellen Stadien strukturiert, die eine oder mehrere gleichzeitige Jobs enthalten.
Ja! CDS wird seit 2015 @ovh in der Produktion verwendet und startet mehr als 7 Mio. CDS -Arbeitnehmer pro Jahr. Sie können die offizielle Version unter https://github.com/ovh/cds/releases installieren
CDs liefert alles, was zur Überwachung und Messung der Produktionsaktivitäten erforderlich ist (Protokolle, Metriken, Überwachung).
Alle Daten werden in der Datenbank gespeichert - nichts im Dateisystem. Sichern Sie einfach Ihre Datenbank regelmäßig und Sie sind in Sicherheit.
Kernteam ist auf GitHub erhältlich
Fähigkeit, mehrere Jobs gleichzeitig auszuführen und gleichzeitig eine Isolation zwischen ihnen zu halten. Siehe Doc über Stufen und Jobs in einer Pipeline. Eine Pipeline wird mit einem Kontext gestartet: 0 oder 1 Anwendung, 0 oder 1 Umgebung.
Ein Workflow ermöglicht es, die Pipelines zu ketten. Dies ist ein wichtiges Merkmal von CDs. Sie können Workflows mit einem oder mehreren Pipelines erstellen, Pipelines, die mit Verbindungen oder Gabeln verknüpft werden können.
Sie können sich vorstellen, nur einen Workflow -Builder zu haben und Ihren gesamten Microservice -Stapel bereitzustellen. Die gleiche Pipeline kann mehrmals in einem Workflow verwendet werden. Sie können eine Anwendung oder eine Umgebung in Verbindung bringen. Sie haben nur eine Bereitstellungspipeline und eine Build -Pipeline, die Sie aufrechterhalten können, auch wenn Sie Hunderte von Anwendungen haben.
Mit einer Workflow -Vorlage können Sie Workflows in mehreren Teams teilen und wiederverwenden. Jeder Benutzer kann eine Workflow -Vorlage erstellen, sie als Code oder aus der Benutzeroberfläche verwalten und eine Reihe von Workflows mit einer einzigen Aktion aktualisieren.
Als Unternehmen können Sie einen vordefinierten Katalog von Workflows anbieten, mit dem Sie Test- und Bereitstellungsverfahren für alle Ihre Teams standardisieren können.
Dies verringert auch die Wartungsbemühungen, da Vorlagen ein skalierbares zentrales Management ermöglichen.
Sie können alles mit der Web -Benutzeroberfläche konfigurieren. Selbst wenn Sie komplexe Anwendungsfälle haben, ist es normalerweise einfacher, Ihre Workflows grafisch zu erstellen.
Pipeline als Code ist ein bekanntes Konzept von CI / CD-Tools. CDS geht noch einen Schritt weiter und bietet einen Workflow als Code an. Dies erfolgt durch Git-Pushing mit YAML-Konfigurationsdateien Ihres Workflows ( + Pipeline, + Anwendungen, + Umgebung). Dies ist besonders nützlich, da Sie Ihren neuen Workflow in einem Entwicklungszweig testen können, bevor Sie die Änderungen am Master -Zweig verschmelzen.
Sie können Ihren Workflow mit der Benutzeroberfläche ändern. Sie können die Konfiguration auch ändern, indem Sie die YAML -Datei direkt in der Benutzeroberfläche bearbeiten, wenn Sie dies wünschen. Dies ist eine hervorragende Möglichkeit, um zu lernen, wie man die Funktion für Workflow-as-Code verwendet.
Fähigkeit, Builds basierend auf einem Zweigmuster zu starten. Dies ermöglicht beispielsweise Dev/* Zweigstellen für "Inszenieren" und den Master -Zweig für "prod" bereit.
Beachten Sie, dass das Standardverhalten von CDS darin besteht, den gesamten Workflow in jedem Git -Commit zu starten. Dieses Verhalten kann mit "Laufbedingungen" verändert werden.
2-Wege-Integration in die beliebtesten GIT-basierten Produkte.
CDs unterstützt Github, Gitlab, Bitbucket Server und Gerrit nativ. Die Verbindung zwischen Ihrem Git Repo und CDS erfolgt über eine CDS -Anwendung: 1 Git Repository == eine CDS -Anwendung. Durch diese Integration treibt CDs den Build -Status Ihrer Commits vor: Aufbau, Erfolg oder fehlgeschlagen.
CDs geben Ihnen die Möglichkeit, in einem einzigen Workflow aus verschiedenen Git -Repositories zu klonen. Ein CDS -Workflow kann mehrere verschiedene Anwendungen beinhalten - oder keine, wenn Sie keine Verbindung zu einem Git -Repo haben möchten.
Möglichkeit, ephemerale Dienste (eine Datenbank, ein Webserver usw.) zu starten, um Ihren Job zu unterstützen. Dies ist besonders praktisch, wenn Sie Ihren Code testen.
In CDs werden diese Dienste als Dienstvoraussetzungen bezeichnet. Sie müssen nur das entsprechende Docker -Bild und die Ausführungsparameter angeben.
Nehmen Sie ein einfaches Beispiel: Sie haben eine Pipeline, die ein Docker -Bild mit Ihrer Anwendung erstellt. Ihre Bewerbung benötigt eine Redis und einen PostgreSQL, um zu arbeiten. Sie können in einem CDS -Job drei Voraussetzungen einsetzen: einen Redis, einen PostgreSQL und Ihre Bewerbung. CDs kümmern sich um ein privates Netzwerk zwischen seinen Diensten, damit sie miteinander kommunizieren können. Ihr CDS -Job kann somit Integrationstests in Ihrer Anwendung durchführen, beginnend mit einer realen Datenbank und einem echten Cache.
Bitte lesen Sie: https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
Ein Remote -Cache wird von einem Team von Entwicklern und/oder einem CI -System (Continuous Integration) verwendet, um Build -Outputs zu teilen. Wenn Ihr Build reproduzierbar ist, können die Ausgänge von einer Maschine sicher auf einer anderen Maschine wiederverwendet werden, was Builds erheblich schneller machen kann
DOC: https://ovh.github.io/cds/docs/components/worker/cache/
Als Plattform für Unternehmensqualität kann CDs in einem Veranstaltungsbus eine breite Palette seiner internen Ereignisse (z. B. erbaut) senden. Dieser Ereignisfluss kann dann andere Dienste (Berichterstattung, Benachrichtigungen usw.) ernähren.
Möglichkeit, einen Workflow manuell oder mit Git -Pushes oder über einen Scheduler oder über einen Webhook zu starten. Zusätzlich zu den oben genannten können CDs auch mit einem Ereignisbus (Kafka oder Rabbitmq) ausgelöst werden.
Fähigkeit, mehrere Umgebungen (z. B. dev/prod/staging) auf sichere Weise mit getrennten Zugriffsrechten zu verwalten. In der Praxis ist eine Umgebung eine Reihe von Variablen, die Sie in Ihren Workflows verwenden können.
Mit CDs können Sie eine Bereitstellungspipeline in Ihrer Vorproduktionsumgebung verwenden und dieselbe Bereitstellungspipeline in Ihrer Produktionsumgebung verwenden. Die Fähigkeit, sich für die Produktion einzusetzen, kann auf eine vorab festgelegte Gruppe von Benutzern beschränkt sein.
Benutzer können Gruppen erstellen und Benutzer in ihren Gruppen verwalten. Eine Gruppe kann das Recht haben, ihre Projekte und Workflows zu lesen, zu schreiben und auszuführen. Sie können auch die Ausführung einiger Pipelines auf einige Gruppen einschränken, wenn Sie dies wünschen.
Wenn Sie CDs als CI / CD -Tool verwenden, werden Sie wahrscheinlich Artefakte erstellt haben. CDS -Jobs sind voneinander isoliert, aber Sie können Artefakte von einem Job zum anderen über die Upload- und Artefakt -Download -Aktionen von Artefakten vergeben. Am Ende eines CDS -Jobs werden alle Dateien von den Arbeitern gelöscht. Um Artefakte zu bestehen, können CDs einen schnellen Speicher oder ein bestimmtes Dateisystem verwenden (nicht empfohlen).
CDs zeigt deutlich die Ergebnisse von Unit -Tests und Schwachstellen an, die während der Builds erkannt wurden.
Ein CDS -Projekt ist wie ein Mieter. Alle Benutzer können ein CDS -Projekt erstellen, dieses Projekt bringt Anwendungen, Umgebungen, Pipelines und natürlich Workflows zusammen.
CDS -Projekte sind voneinander isoliert, aber dieselbe Gruppe hat möglicherweise Zugriffsrechte für mehrere Projekte, wenn Sie dies wünschen.
Ein Arbeitermodell ist ein Arbeiterausführungskontext. Nehmen wir an, Sie müssen einen Job ausführen, der Golang v1.11.5 erfordert. In CDs müssen Sie nur ein Go -Worker -Modell erstellen, das eine Go in Version 1.11.5 enthält. Ein Arbeitermodell kann ein Docker -Bild, ein OpenStack -Bild oder ein vSphere -Bild sein. Obwohl CDS -Administratoren gemeinsam genutzte Arbeitermodelle anbieten können, können Benutzer ihre eigenen Vorlagenarbeiter erstellen, wenn sie dies wünschen.
Bei einem CDS -Projekt können Sie Integrationen wie OpenStack, Kubernetes usw. hinzufügen. Dadurch bieten Sie Funktionen in Ihren Workflows. Mit der Kubernetes -Integration können Sie beispielsweise Ihr eigenes Cluster zu Ihrem CDS -Projekt hinzufügen und somit mit der Bereitstellung von Bewerbungsaktionen Ihre neu erstellte Anwendung in Ihrem Cluster im Helm -Format bereitstellen, wenn Sie dies wünschen. Sie können natürlich Ihre eigenen Integrationen entwickeln.
Nachdem Sie die vorherigen Punkte gelesen haben, haben Sie verstanden: Selbstbedienung ist überall. Alle Benutzer können ihre Projekt-/Workflow-/Arbeitermodelle/Workflow -Vorlagen/-aktionen erstellen und Jobs in einer völlig isolierten Umgebung ausführen. CDS -Projekte sind Bauherren, bei denen Sie Integrationen hinzufügen können. All dies ermöglicht es Ihnen, nur eine Instanz von CDs für Ihr gesamtes Unternehmen zu haben.
Alles, was Sie mit der Benutzeroberfläche tun können, ist über die Befehlszeilenschnittstelle (CLI) mit dem Namen "CDSCTL" verfügbar. CDSCTL ist im gesamten Betriebssystem verfügbar: Darwin, FreeBSD, Linux, OpenBSD ... Mit CDSCTL können Sie Ihre Workflows erstellen, starten, exportieren, importieren, Ihre CDs überwachen und durch Ihre Projekte und Arbeitsabläufe navigieren. Sie müssen nicht zur Benutzeroberfläche von CDs oder Ihrem Repository -Manager gehen git push && cdsctl workflow --track um den Status Ihres Commits zu überprüfen.
Haben Sie noch fortgeschrittenere Automatisierungsanforderungen oder den Wunsch, eine Anwendung zu entwickeln, die CDs abfragt? Mit der Rest -API und dem SDK können Sie Ihre Software problemlos entwickeln.
CDS ist seit Oktober 2016 Open-Source. Sie können es frei in Ihrem Unternehmen oder zu Hause installieren. Einige Tutorials stehen Ihnen zur Verfügung, mit denen Sie mit Binärdateien ein CDS, Docker-Compose und die Installation von Binärdateien können.
Eine hohe Verfügbarkeit ist ein sehr wichtiger Punkt für ein CI / CD -Tool. CDS ist staatenlos, nichts wird auf dem Dateisystem gespeichert. Dies ermöglicht es, mehrere CDS -APIs hinter einem Lastausgleich zu starten. So können Sie die API von CDs auf Ihre Bedürfnisse skalieren. Es ermöglicht auch Upgrades von CDs an einem ganzen Tag ohne Auswirkungen auf Benutzer. In der Produktion @ovh können CDs mehrmals täglich aktualisiert werden, ohne sich zu beeinflussen oder CDS -Mitarbeiter zu stoppen. Es wäre ironisch, nicht mehr zu arbeiten, wenn Sie die Arbeit einstellen, während das kontinuierliche Lieferwerkzeug aktualisiert wird, nicht wahr? ;-)
CDs enthält nativ Überwachungsdaten. Sie können Ihr Instanz -Prometheus oder Warp10 mit Beamium füttern.
Ein CDS -Job besteht aus Schritten. Jeder Schritt ist eine integrierte Typ-Aktion (Skript, Checkoutapplication, Artefakt-Upload/Download ...). Sie können Ihre Aktionen erstellen, indem Sie vorhandene Aktionen verwenden oder Ihre Aktion als Plugin entwickeln. Alle Sprachen werden unterstützt, solange die Sprache GRPC unterstützt.
CDS ist für Sprachen und Plattformen agnostisch. Benutzer können Jobs unter Linux, Windows, FreeBSD, OS X, Raspberry ... in einem Virtual Machine Spawn on Demand in einem Docker -Container auf einem dedizierten Host starten.
Wenn Ihr Unternehmen also mehrere Technologien einsetzt, ist CDS kein Blocker für das Erstellen und Bereitstellen Ihrer internen Software.
Eines der anfänglichen Ziele von CDs bei OVH: Erstellen und Bereitstellen von 150 Anwendungen als Container in weniger als 7 Minuten. Dies ist seit 2015 Wirklichkeit. Was ist der geheime Schlüssel? Automatisch auf Bedarf!
Daher können Sie Hunderte von Arbeitermodellen haben und bei Bedarf starten CDs die Arbeiter mit den Brüterlungen.
Eine Brüterei ist wie ein Inkubator, er bringt die CDS -Arbeiter und das Recht auf Leben und Tod über sie zur Welt.
Es sind verschiedene Arten von Brüterei erhältlich:
Also ja, Schlagworte oder nicht, eine automatische Multi-Cloud
3-Klausel BSD