Executive & Talent Search
  • Home
  • Services
    • Executive Search
    • Talent Search
  • Fokus
  • Karriere
  • Blog
  • Referenzen
  • Über uns
    • Management
  • Kontakt
  • Menü Menü

CI/CD Einfach Erklärt

Software Development
Fotograf Shahadat Rahman auf Unsplash

Wir haben kontinuierliche Integration und kontinuierliche Bereitstellung (continuous integration/continuous delivery, auch CI/CD genannt) in einigen unserer LinkedIn-Beiträgen und in mindestens einem unserer früheren Blogbeiträge über Kubernetes erwähnt. All diese Beiträge bezogen sich immer auf eine bestimmte Phase in der gesamten Deployment-Pipeline. In diesem Artikel möchten wir einen breiteren Überblick über den Deployment Prozess geben und kurz auf eines der beliebten Tools zum Aufbau von Deployment-Pipelines im großen Stil eingehen.

Die Anatomie einer Deployment-Pipeline

Deployment-Pipeline und CI/CD werden manchmal als Synonyme verwendet. Dies ist jedoch nicht korrekt. Die Deployment-Pipeline ist ein Prozess zur Bereitstellung von Softwareanwendungen in der Produktionsumgebung, der mit dem Schreiben des Quellcodes beginnt und mit dem Rollout der Anwendung endet. Dieser Prozess wird als Pipeline bezeichnet, da die Anwendung reibungslos von einer Stufe zur anderen übergehen soll. Das ist aber nicht immer der Fall. Es funktioniert nur dann so, wenn der gesamte Prozess mit verschiedenen Werkzeugen automatisiert wird. CI/CD ist das Konzept, das besagt, dass die Pipeline ohne Unterbrechung funktionieren muss.

Eine Deployment-Pipeline umfasst die folgenden vier Stufen:

1. Versionskontrolle. In dieser Phase erstellt ein Entwicklerteam einen neuen Quellcode. Wenn wir von der Pipeline und nicht vom manuellen Deployment sprechen, wird der Quellcode in ein Versionskontrollwerkzeug eingespeist. Das Tool – in den meisten Fällen wird dies GitHub sein – ordnet den neuen Teil des Codes innerhalb des bestehenden zu. 

2. Testen. Um Teil der Deployment-Pipeline zu sein und zur Idee von CI/CD zu passen, müssen die Tests so weit wie möglich automatisiert werden. Sie wollen ja auch, dass die Endbenutzer einen guten (und frühen) Eindruck von der Benutzerfreundlichkeit und der visuellen Ästhetik bekommen. Dies kann nur von menschlichen Testern geleistet werden. Aber abgesehen davon muss die Automatisierung von Tests ein Vorrecht haben.

3. Sandbox/unabhängige Bereitstellung. Selbst wenn die Testphase erfolgreich abgeschlossen wurde, ist der sofortige Rollout in die Produktion weit von den heutigen Best Practices entfernt. Jede neue Anwendung wird zunächst in der Testumgebung bereitgestellt, die eine Kopie der produktiven Umgebung ist.

4. Einsatz in der Produktion. In der letzten Phase rollen Sie die Anwendung in die produktive Umgebung aus, wo die Arbeit für das Unternehmen beginnen kann.

Wie bereits erwähnt, kann man nur dann von CI/CD sprechen, wenn die Bewegung entlang der Pipeline automatisiert ist. Dies wird mit den folgenden Tools ermöglicht.

Werkzeuge zur Deployment-Automatisierung

Jetzt wird klar, warum Deployment-Pipeline und CI/CD oft austauschbar verwendet werden. Jeder Schritt in der Pipeline kann automatisiert werden. Das bedeutet aber nicht zwangsläufig, dass die Pipeline autonom zu arbeiten beginnt und kein menschliches Eingreifen mehr benötigt wird. In der Tat kann man sie nicht zu einem Roboter machen, aber das ultimative Ziel – was als CI/CD bezeichnet wird – ist es, so wenig wie möglich manuell steuern zu müssen.

Hierfür können Sie verschiedene Tools einsetzen. Der zweite Name für Continuous Integration ist Build-Automatisierung: Der neue Quellcode muss kompiliert, gebaut und zusammengeführt werden. Der zweite Name für Continuous Delivery ist Deployment-Automatisierung. Dazwischen liegen ein paar zusätzliche Schritte, die den neuen Code testen und seine Qualität überprüfen. 

Jenkins war das erste Tool zur Deployment-Automatisierung. Es wurde innerhalb MIT – Massachusetts Institute of Technology – geboren, das regelmäßig herausragende Open-Source-Projekte hervorbringt und die Alma Mater für die besten amerikanischen und internationalen Unternehmer, Forscher und einfach nur talentierte Menschen ist.  

Ursprünglich hatte Jenkins keine Integration mit GitHub, wo viele Entwickler routinemäßig den Quellcode ablegen. Ein GitHub-Plugin wurde erst kürzlich hinzugefügt. So bekam Jenkins bald seinen ersten ernsthaften Konkurrenten – CodeShip – der nicht nur eine Cloud-Plattform, sondern auch eine einfache GitHub-Integration anbot.

Heutzutage gibt es zahlreiche Anbieter, die in den Wettbewerb um die beste Deployment-Automatisierungsplattform eingestiegen sind. Sie alle streben danach, mit dem folgenden Benchmark-Modell gleichzuziehen.

Was sollte eine Deployment-Automatisierungsplattform können?

Neben der Versionskontrolle ist die Fehlerverfolgung (Bug Tracking) das Feature, das viele Entwickler an der Deployment-Automatisierung schätzen. 

Das Release-Management umfasst mehrere Schritte des Deployments und hilft bei der Steuerung von Berechtigungen. Der Unterschied zwischen Deployment und Software-Release besteht darin, dass letzteres die Software für Endanwender zugänglich macht, während das Deployment einer Anwendung bedeuten kann, dass nur Entwickler mit ihr arbeiten werden.

In jeder Phase Ihrer Deployment-Pipeline haben Sie möglicherweise verschiedene Variablen, die Sie hin und wieder verwenden, z. B. API-Schlüssel, Passwörter, Dateipfade usw. Die Variablenverwaltung kümmert sich um die Speicherung dieser Elemente und kann Ihre Deployment-Erfahrung wirklich verbessern.

Konfiguration als Code ist eine weitere Funktion, die Entwickler für ein einfaches Leben benötigen. Deployment-Pipelines können über eine grafische Benutzeroberfläche eines Tools oder über ein Skript, meist im YAML-Format, konfiguriert werden. Die zweite Option ermöglicht es Entwicklern, neue Pipelines schneller zu erstellen, indem sie die Vorlagen-YAML-Datei bearbeiten und auf die Deployment-Plattform hochladen.

In der Tat werden die meisten modernen Anwendungen in der Cloud bereitgestellt. Deshalb ist es sinnvoll, ein Tool zu verwenden, das auch das kann, oder zumindest in die beliebtesten Clouds wie Azure, Google Cloud und AWS zu deployen. Die Cloud-Unterstützung gehört also zum Benchmark der Deployment-Automatisierung.

Da viele Unternehmen über komplexe IT-Systeme verfügen, müssen sie nicht nur das Deployment verwalten, sondern auch den breiteren Entwicklungsbetrieb (DevOps): den Puffer zwischen Entwicklungsteams und IT-Administratoren. DevOps-Ingenieure haben eine Menge Routineaufgaben, die sie gerne automatisieren würden. Wenn die CI/CD-Plattform auch das kann, dann erfüllt sie die Anforderungen an ein Benchmark-Deployment-Tool. Die DevOps-Automatisierung sollte darin integriert sein.

Wie Sie vielleicht vermuten, haben sich einige Internet-Giganten, darunter Microsoft, darauf gestürzt, ihre eigenen Plattformen zur Deployment-Automatisierung zu entwickeln. Azure DevOps wurde unter ihnen ziemlich populär.

Ein kurzer Überblick über Azure DevOps

Im Kern seiner Funktionalität erlaubt es Azure DevOps, zwei Arten von Triggern zu erstellen:

  • Diejenigen, die einen Build initiieren, sobald ein neues Stück Code von einem Entwickler committed wurde; so ermöglicht es kontinuierliche Integration; 
  • Diejenigen, die ein Deployment initiieren, sobald das neue Stück gebaut und getestet wurde; so wird eine kontinuierliche Bereitstellung ermöglicht. 

Ähnlich wie GitHub speichert Azure DevOps die Historie aller Commits, Builds, Deployments und Releases. Es hat jedoch eine andere Oberfläche, die im Allgemeinen für Personen ohne viel Programmiererfahrung bequemer ist, wodurch es für DevOps-Ingenieure nützlicher ist. Obwohl die Konfiguration der Pipeline in YAML-Dateien gespeichert wird, ist das gesamte Tool no-code. 

Standardmäßig ermöglicht Azure DevOps die Bereitstellung in der Azure-Cloud, aber Sie können auch Marketplace-Erweiterungen für die Bereitstellung in AWS und einigen anderen Clouds hinzufügen. 

Azure DevOps ermöglicht Ihnen, wie viele andere Tools zur Deployment-Automatisierung, die Planung von Deployments und das Sammeln von Protokolldaten, die Ihnen bei der Überwachung von Deployments und der Anwendungsleistung helfen. Azure DevOps kann mit GitHub zusammenarbeiten und zwingt Sie nicht dazu, letzteres aufzugeben.

Fazit

Die Entwicklung einer Anwendung erfordert viel mehr als nur das Schreiben eines Codes. Den Code zum Leben zu erwecken – Testen, Bereitstellen, Freigeben – ist ein kniffliger Teil. Wenn Sie Spezialisten brauchen, die beides können und die gängigsten Deployment-Automatisierungstools kennen, wenden Sie sich an JCFINCH. Wir haben definitiv talentierte Kandidaten in unserer Datenbank.

Schlagworte: azure, cicd, deployment, deployment automation, devops, software development, testing automation
Eintrag teilen
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
https://www.jcfinch.com/wp-content/uploads/2021/07/17_shahadat-rahman-gnyA8vd3Otc-unsplash.jpg 1280 1920 Yulia Lukashina https://jcfinch.com/wp-content/uploads/2017/05/jcfinch-transparent-logo-300x138.png Yulia Lukashina2021-07-21 17:17:452021-08-03 17:27:28CI/CD Einfach Erklärt
Das könnte Dich auch interessieren
Fotograf Ian Taylor auf Unsplash Docker Images verwalten

Search

Search Search

Recent Posts

  • Führungs-diagnostik im Onboarding
  • Erfolgsfaktor Onboarding
  • Soll ich mich beruflich nochmal verändern?
  • Container Monitoring für bessere Leistung und schnellere Deployments
  • Docker Images verwalten

Categories

  • Big Data Engineering
  • Business Intelligence & DWH
  • Cloud Architecture
  • Cyber Security
  • Data Science
  • Digital Leadership
  • Digital Strategy & Consulting
  • Financial IT
  • Machine Learning & AI
  • Software Development
  • Unkategorisiert
© 2017-2026 JCFINCH | Impressum | Datenschutz
  • Link zu LinkedIn
  • Link zu Xing
Link to: Datenmanager vs. Datenanalyst: Freunde, Feinde oder Konkurrenten? Link to: Datenmanager vs. Datenanalyst: Freunde, Feinde oder Konkurrenten? Datenmanager vs. Datenanalyst: Freunde, Feinde oder Konkurrenten?Fotograf Santiago Lacarta auf Unsplash Link to: Selbstbedienungs-BI: Erleichterung oder Zumutung? Link to: Selbstbedienungs-BI: Erleichterung oder Zumutung? Fotograf krakenimages auf UnsplashSelbstbedienungs-BI: Erleichterung oder Zumutung?
Nach oben scrollen Nach oben scrollen Nach oben scrollen

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu.

OKDatenschutzerklärung

Cookie- und Datenschutzeinstellungen



Wie wir Cookies verwenden

Wir können Cookies anfordern, die auf Ihrem Gerät eingestellt werden. Wir verwenden Cookies, um uns mitzuteilen, wenn Sie unsere Websites besuchen, wie Sie mit uns interagieren, Ihre Nutzererfahrung verbessern und Ihre Beziehung zu unserer Website anpassen.

Klicken Sie auf die verschiedenen Kategorienüberschriften, um mehr zu erfahren. Sie können auch einige Ihrer Einstellungen ändern. Beachten Sie, dass das Blockieren einiger Arten von Cookies Auswirkungen auf Ihre Erfahrung auf unseren Websites und auf die Dienste haben kann, die wir anbieten können.

Notwendige Website Cookies

Diese Cookies sind unbedingt erforderlich, um Ihnen die auf unserer Webseite verfügbaren Dienste und Funktionen zur Verfügung zu stellen.

Da diese Cookies für die auf unserer Webseite verfügbaren Dienste und Funktionen unbedingt erforderlich sind, hat die Ablehnung Auswirkungen auf die Funktionsweise unserer Webseite. Sie können Cookies jederzeit blockieren oder löschen, indem Sie Ihre Browsereinstellungen ändern und das Blockieren aller Cookies auf dieser Webseite erzwingen. Sie werden jedoch immer aufgefordert, Cookies zu akzeptieren / abzulehnen, wenn Sie unsere Website erneut besuchen.

Wir respektieren es voll und ganz, wenn Sie Cookies ablehnen möchten. Um zu vermeiden, dass Sie immer wieder nach Cookies gefragt werden, erlauben Sie uns bitte, einen Cookie für Ihre Einstellungen zu speichern. Sie können sich jederzeit abmelden oder andere Cookies zulassen, um unsere Dienste vollumfänglich nutzen zu können. Wenn Sie Cookies ablehnen, werden alle gesetzten Cookies auf unserer Domain entfernt.

Wir stellen Ihnen eine Liste der von Ihrem Computer auf unserer Domain gespeicherten Cookies zur Verfügung. Aus Sicherheitsgründen können wie Ihnen keine Cookies anzeigen, die von anderen Domains gespeichert werden. Diese können Sie in den Sicherheitseinstellungen Ihres Browsers einsehen.

Google Analytics Cookies

Diese Cookies sammeln Informationen, die uns - teilweise zusammengefasst - dabei helfen zu verstehen, wie unsere Webseite genutzt wird und wie effektiv unsere Marketing-Maßnahmen sind. Auch können wir mit den Erkenntnissen aus diesen Cookies unsere Anwendungen anpassen, um Ihre Nutzererfahrung auf unserer Webseite zu verbessern.

Wenn Sie nicht wollen, dass wir Ihren Besuch auf unserer Seite verfolgen können Sie dies hier in Ihrem Browser blockieren:

Andere externe Dienste

Wir nutzen auch verschiedene externe Dienste wie Google Webfonts, Google Maps und externe Videoanbieter. Da diese Anbieter möglicherweise personenbezogene Daten von Ihnen speichern, können Sie diese hier deaktivieren. Bitte beachten Sie, dass eine Deaktivierung dieser Cookies die Funktionalität und das Aussehen unserer Webseite erheblich beeinträchtigen kann. Die Änderungen werden nach einem Neuladen der Seite wirksam.

Google Webfont Einstellungen:

Google Maps Einstellungen:

Google reCaptcha Einstellungen:

Vimeo und YouTube Einstellungen:

Andere Cookies

Die folgenden Cookies werden ebenfalls gebraucht - Sie können auswählen, ob Sie diesen zustimmen möchten:

Datenschutzrichtlinie

Sie können unsere Cookies und Datenschutzeinstellungen im Detail in unseren Datenschutzrichtlinie nachlesen.

Datenschutz
Accept settingsHide notification only