{"id":87467,"date":"2020-07-08T13:42:11","date_gmt":"2020-07-08T11:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn"},"modified":"2020-07-08T13:42:11","modified_gmt":"2020-07-08T11:42:11","slug":"rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","title":{"rendered":"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Wenn Sie neu in DevOps sind, werfen Sie einen Blick auf diese Anleitung zur Erstellung Ihrer ersten Pipeline in f\u00fcnf Schritten.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/605ed7d81323d0b5e094f7f912f8c669.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>DevOps ist zur Standardl\u00f6sung geworden, um langsame, fragmentierte oder nicht funktionierende Softwareentwicklungsprozesse zu beheben. Das Problem ist, dass Sie, wenn Sie neu in DevOps sind und nicht wissen, wo Sie anfangen sollen, m\u00f6glicherweise nicht die n\u00f6tige Einsicht in diese Methoden haben. In diesem Artikel geht es um die Definition einer DevOps-Pipeline und es wird eine Anleitung zur Erstellung in f\u00fcnf Schritten angeboten. Obwohl dieses Tutorial nicht umfassend ist, sollte es Ihnen eine Grundlage geben, um Ihren Weg zu beginnen und in Zukunft Ihr Wissen zu erweitern. Fangen wir jedoch mit einer Geschichte an.<\/p>\n<h3>Meine DevOps-Reise<\/h3>\n<p>\nFr\u00fcher arbeitete ich im Cloud-Team von Citi Group und entwickelte ein Infrastructure-as-a-Service (IaaS)-Webanwendung zur Verwaltung der Cloud-Infrastruktur von Citi, aber ich interessierte mich immer daf\u00fcr, wie man den Entwicklungsprozess effektiver gestalten und positive kulturelle \u00c4nderungen in das Entwicklerteam bringen kann. Die Antwort fand ich in einem Buch, das von Greg Lavender, dem Chief Technology Officer von Citi f\u00fcr Cloud-Architektur und -Infrastruktur, empfohlen wurde. Das Buch hie\u00df \u201eDas Phoenix-Projekt\u201c (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Das Phoenix-Projekt<\/a><\/noindex>), und es erkl\u00e4rt die Prinzipien von DevOps, dabei liest es sich wie ein Roman.<\/p>\n<p>In der Tabelle auf der R\u00fcckseite des Buches wird gezeigt, wie oft verschiedene Unternehmen ihre Systeme in einer Release-Umgebung bereitstellen:<\/p>\n<p>Amazon: 23.000 pro Tag<br \/>\nGoogle: 5.500 pro Tag<br \/>\nNetflix: 500 pro Tag<br \/>\nFacebook: Einmal pro Tag<br \/>\nTwitter: Dreimal pro Woche<br \/>\nTypisches Unternehmen: Einmal alle 9 Monate<\/p>\n<p>Wie sind die Frequenzen von Amazon, Google und Netflix \u00fcberhaupt m\u00f6glich? Das liegt daran, dass diese Unternehmen herausgefunden haben, wie man eine nahezu perfekte DevOps-Pipeline erstellt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nWir waren weit davon entfernt, bis wir DevOps bei Citi implementierten. In meinem Team gab es unterschiedliche Umgebungen, aber das Deployment auf dem Entwicklungsserver war vollst\u00e4ndig manuell. Alle Entwickler hatten nur Zugriff auf einen einzigen Entwicklungsserver, der auf IBM WebSphere Application Server Community Edition basierte. Das Problem war, dass der Server jedes Mal heruntergefahren wurde, wenn mehrere Benutzer gleichzeitig versuchten, Deployments durchzuf\u00fchren, sodass die Entwickler sich gegenseitig \u00fcber ihre Absichten informieren mussten, was ziemlich m\u00fchsam war. Zudem gab es Probleme mit der niedrigen Testabdeckung des Codes, den umfangreichen manuellen Deployment-Prozessen und dem Fehlen der M\u00f6glichkeit, Code-Deployments, die mit einer bestimmten Aufgabe oder Benutzerstory verbunden waren, nachzuvollziehen.<\/p>\n<p>Ich erkannte, dass wir etwas unternehmen mussten, und fand einen gleichgesinnten Kollegen. Wir beschlossen, zusammenzuarbeiten, um eine erste DevOps-Pipeline zu erstellen \u2013 er richtete eine virtuelle Maschine und einen Tomcat-Anwendungsserver ein, w\u00e4hrend ich an Jenkins arbeitete, Atlassian Jira und BitBucket integrierte und an der Testabdeckung des Codes arbeitete. Dieses Nebenprojekt war sehr erfolgreich: Wir automatisierten fast vollst\u00e4ndig viele Prozesse, erzielten nahezu 100 % Betriebsbereitschaft unseres Entwicklungsservers, erm\u00f6glichten Nachverfolgbarkeit und verbesserten die Testabdeckung des Codes, und f\u00fcgten die M\u00f6glichkeit hinzu, Git-Branches mit Aufgaben in Jira oder Deployments zu verkn\u00fcpfen. Die meisten Werkzeuge, die wir zur Erstellung unserer DevOps-Pipeline verwendeten, waren Open Source.<\/p>\n<p>Jetzt verstehe ich, wie einfach unsere DevOps-Pipeline war: Wir verwendeten keine Erweiterungen wie Jenkins-Files oder Ansible. Dennoch funktionierte diese einfache Pipeline gut, m\u00f6glicherweise aufgrund des Pareto-Prinzips (auch bekannt als 80\/20-Regel).<\/p>\n<h3>Kurze Einf\u00fchrung in DevOps und CI\/CD-Pipeline<\/h3>\n<p>\nWenn Sie mehrere Personen fragen: \u201eWas ist DevOps?\u201c, werden Sie wahrscheinlich verschiedene Antworten erhalten. DevOps, \u00e4hnlich wie Agile, hat sich entwickelt, um viele verschiedene Disziplinen abzudecken, aber die meisten Menschen stimmen in einigen Punkten \u00fcberein: DevOps ist eine Praxis der Softwareentwicklung oder der Softwareentwicklungslebenszyklus (SDLC), dessen zentraler Grundsatz der Kulturwandel ist, in dem Entwickler und Nicht-Entwickler in einer Umgebung existieren, in der:<\/p>\n<p>Vorg\u00e4nge automatisiert sind, die zuvor manuell ausgef\u00fchrt wurden; <br \/>\nJeder tut das, was er am besten kann;<br \/>\nDie Anzahl der Implementierungen in einem bestimmten Zeitraum steigt; Die Durchsatzrate erh\u00f6ht sich; <br \/>\nDie Flexibilit\u00e4t der Entwicklung wird erh\u00f6ht.<\/p>\n<p>Obwohl die richtigen Softwaretools nicht das einzige sind, was ben\u00f6tigt wird, um eine DevOps-Umgebung zu schaffen, sind einige Werkzeuge unerl\u00e4sslich. Ein Schl\u00fcsselwerkzeug ist die kontinuierliche Integration und kontinuierliche Bereitstellung (CI\/CD). In diesem Pipeline-Umfeld gibt es verschiedene Phasen (z. B. DEV, INT, TST, QA, UAT, STG, PROD), viele Vorg\u00e4nge sind automatisiert, und Entwickler k\u00f6nnen hochwertigen Code schreiben, Flexibilit\u00e4t in der Entwicklung erreichen und hohe Bereitstellungsh\u00e4ufigkeiten erzielen.<\/p>\n<p>In diesem Artikel wird ein f\u00fcnfstufiger Ansatz zur Erstellung einer DevOps-Pipeline beschrieben, \u00e4hnlich der in der folgenden Abbildung, unter Verwendung von Open-Source-Tools.<\/p>\n<h3>Schritt 1: CI\/CD-Methoden<\/h3>\n<p>\nDas erste, was Sie ben\u00f6tigen, ist ein Tool f\u00fcr CI\/CD. Jenkins, ein Open-Source-Tool, das auf Java basiert und unter der MIT-Lizenz verbreitet wird, ist das Mittel, das die Richtung f\u00fcr DevOps popul\u00e4r gemacht hat und zum de-facto Standard wurde.<\/p>\n<p>Was ist also Jenkins? Stellen Sie sich vor, es ist eine Art magische universelle Fernbedienung, die mit verschiedenen Diensten und Werkzeugen kommunizieren und diese organisieren kann. An sich ist ein CI\/CD-Tool wie Jenkins nutzlos, aber es wird m\u00e4chtiger, je mehr es mit verschiedenen Werkzeugen und Dienstleistungen verbunden wird.<\/p>\n<p>Jenkins ist nur eines von vielen Open-Source-Tools f\u00fcr CI\/CD, die Sie verwenden k\u00f6nnen, um eine DevOps-Pipeline zu erstellen.<\/p>\n<p>Jenkins: Creative Commons und MIT<br \/>\nTravis CI: MIT<br \/>\nCruiseControl: BSD<br \/>\nBuildbot: GPL<br \/>\nApache Gump: Apache 2.0<br \/>\nCabie: GNU<\/p>\n<p>So sehen die DevOps-Prozesse mit dem CI\/CD-Werkzeug aus:<\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/e937f3da170b24c53cb5d67a67a365bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Sie haben ein CI\/CD-Werkzeug, das auf Ihrem localhost l\u00e4uft, aber im Moment k\u00f6nnen Sie damit nicht viel tun. Lassen Sie uns auf die n\u00e4chste Etappe unserer Reise in die Welt von DevOps \u00fcbergehen.<\/p>\n<h3>Schritt 2: Verwaltung von Versionskontrollsystemen<\/h3>\n<p>\nDer beste (und vielleicht einfachste) Weg, um sicherzustellen, dass Ihr CI\/CD-Werkzeug Magie entfalten kann, besteht darin, es mit einem Versionskontrollsystem (SCM) zu integrieren. Warum brauchen Sie eine Versionskontrolle? Angenommen, Sie entwickeln eine Anwendung. Jedes Mal, wenn Sie eine Anwendung erstellen, programmieren Sie, und es spielt keine Rolle, ob Sie Java, Python, C++, Go, Ruby, JavaScript oder eine der unz\u00e4hligen Programmiersprachen verwenden. Der Code, den Sie schreiben, wird als Quellcode bezeichnet. Zun\u00e4chst, insbesondere wenn Sie alleine arbeiten, ist es wahrscheinlich m\u00f6glich, alles in einem lokalen Verzeichnis zu speichern. Aber wenn das Projekt gr\u00f6\u00dfer wird und Sie andere zur Zusammenarbeit einladen, ben\u00f6tigen Sie eine M\u00f6glichkeit, Konflikte bei einem effektiven Austausch von Modifikationen zu vermeiden. Sie brauchen auch eine M\u00f6glichkeit, fr\u00fchere Versionen wiederherzustellen, denn Backups zu erstellen und diese zu kopieren\/einzuf\u00fcgen ist inzwischen veraltet. Sie (und Ihre Teamkollegen) ben\u00f6tigen etwas Besseres.<\/p>\n<p>Hier wird das Versionskontrollsystem praktisch unerl\u00e4sslich. Dieses Werkzeug speichert Ihren Code in Repositories, verwaltet Versionen und koordiniert die Arbeit der Projektteilnehmer.<\/p>\n<p>Obwohl es viele Versionskontrollsysteme gibt, ist Git der Standard, und das hat seine Berechtigung. Ich empfehle ausdr\u00fccklich die Verwendung von Git, obwohl es auch andere Open-Source-Alternativen gibt.<\/p>\n<p>Git: GPLv2 und LGPL v2.1<br \/>\nSubversion: Apache 2.0<br \/>\nConcurrent Versions System (CVS): GNU<br \/>\nVesta: LGPL<br \/>\nMercurial: GNU GPL v2+<\/p>\n<p>So sieht der DevOps-Pipeline aus, wenn man Versionskontrollsysteme hinzuf\u00fcgt.<\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/47793d73d3b496aa38e027ff116f729d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Das CI\/CD-Werkzeug kann die Prozesse zur \u00dcberpr\u00fcfung, zum Abrufen des Quellcodes und zur Zusammenarbeit zwischen den Mitgliedern automatisieren. Das ist nicht schlecht? Aber wie verwandeln wir das in eine funktionierende Anwendung, die Milliarden von Menschen nutzen und sch\u00e4tzen k\u00f6nnen?<\/p>\n<h3>Schritt 3: Erstellung eines Automatisierungswerkzeugs f\u00fcr den Build<\/h3>\n<p>\nAusgezeichnet! Sie k\u00f6nnen den Code \u00fcberpr\u00fcfen und \u00c4nderungen im Versionskontrollsystem vornehmen sowie Ihre Freunde zur Mitarbeit an der Entwicklung einladen. Aber Sie haben noch keine Anwendung erstellt. Um eine Webanwendung zu erstellen, muss sie kompiliert und in ein bereitstellbares Paketformat verpackt oder als ausf\u00fchrbare Datei gestartet werden. (Beachten Sie, dass interpretierte Programmiersprachen wie JavaScript oder PHP nicht kompiliert werden m\u00fcssen.)<\/p>\n<p>Nutzen Sie ein Build-Tool. Unabh\u00e4ngig davon, welches Build-Tool Sie w\u00e4hlen, verfolgen sie alle dasselbe Ziel: Den Quellcode in ein gew\u00fcnschtes Format umzuwandeln und die Aufgaben von Bereinigung, Kompilierung, Testen und Bereitstellung in einer bestimmten Umgebung zu automatisieren. Die Build-Tools variieren je nach Programmiersprache, aber hier sind einige g\u00e4ngige Open-Source-Optionen.<\/p>\n<p>Bezeichnung<br \/>\nLizenz<br \/>\nProgrammiersprache<\/p>\n<p>Maven<br \/>\nApache 2.0<br \/>\n Java<\/p>\n<p>Ant<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Gradle<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Bazel<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Make<br \/>\nGNU<br \/>\nN\/A<\/p>\n<p>Grunt<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Gulp<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Buildr<br \/>\nApache<br \/>\nRuby<\/p>\n<p>Rake<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>A-A-P<br \/>\nGNU<br \/>\nPython<\/p>\n<p>SCons<br \/>\nMIT<br \/>\nPython<\/p>\n<p>BitBake<br \/>\nGPLv2<br \/>\nPython<\/p>\n<p>Cake<br \/>\nMIT<br \/>\nC#<\/p>\n<p>ASDF<br \/>\nExpat (MIT)<br \/>\nLISP<\/p>\n<p>Cabal<br \/>\nBSD<br \/>\nHaskell<\/p>\n<p>Toll! Sie k\u00f6nnen die Konfigurationsdateien des Build-Tools in das Versionskontrollsystem einf\u00fcgen und Ihrem CI\/CD-Tool erlauben, alles zusammenzustellen.<\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/573d613914d278e738a0fc7f05644b62.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Alles in Ordnung, oder? Aber wo soll Ihre Anwendung bereitgestellt werden?<\/p>\n<h3>Schritt 4: Server f\u00fcr Webanwendungen<\/h3>\n<p>\nBisher haben Sie eine gepackte Datei, die sowohl ausf\u00fchrbar als auch installierbar sein kann. Damit eine Anwendung wirklich n\u00fctzlich ist, muss sie einen Dienst oder eine Schnittstelle bereitstellen, aber Sie ben\u00f6tigen einen Container, um Ihre Anwendung zu hosten.<\/p>\n<p>Ein Server f\u00fcr Webanwendungen ist genau ein solcher Container. Der Server stellt eine Umgebung bereit, in der die Logik des bereitgestellten Pakets definiert werden kann. Au\u00dferdem bietet der Server eine Schnittstelle und stellt Webdienste bereit, indem er Sockets f\u00fcr die Au\u00dfenwelt \u00f6ffnet. Sie ben\u00f6tigen einen HTTP-Server sowie eine Umgebung (z. B. eine virtuelle Maschine), um ihn zu installieren. Lassen Sie uns annehmen, dass Sie sp\u00e4ter mehr dar\u00fcber erfahren (obwohl ich weiter unten \u00fcber Container sprechen werde).<\/p>\n<p>Es gibt mehrere Open-Source-Server f\u00fcr Webanwendungen.<\/p>\n<p>Bezeichnung<br \/>\nLizenz<br \/>\nProgrammiersprache<\/p>\n<p>Tomcat<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Jetty<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>WildFly<br \/>\nGNU Lesser Public<br \/>\nJava<\/p>\n<p>GlassFish<br \/>\nCDDL &amp; GNU Less Public<br \/>\nJava<\/p>\n<p>Django<br \/>\n3-Clause BSD<br \/>\nPython<\/p>\n<p>Tornado<br \/>\nApache 2.0<br \/>\nPython<\/p>\n<p>Gunicorn<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Python<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Rails<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>Node.js<br \/>\nMIT<br \/>\nJavascript<\/p>\n<p>Ihr DevOps-Pipeline ist fast einsatzbereit. Gute Arbeit!<\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/9c314e8a42f154ded3b16ec7bdf01f99.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Obwohl Sie hier aufh\u00f6ren und selbst mit der Integration fortfahren k\u00f6nnen, ist die Codequalit\u00e4t ein wichtiges Anliegen f\u00fcr Anwendungsentwickler, und darauf sollte man achten.<\/p>\n<h3>Schritt 5: Testabdeckung<\/h3>\n<p>\nDas Implementieren von Tests kann eine weitere anspruchsvolle Anforderung sein, aber Entwickler sollten alle Fehler in der Anwendung fr\u00fchzeitig erfassen und die Codequalit\u00e4t verbessern, um sicherzustellen, dass die Endbenutzer zufrieden sind. Gl\u00fccklicherweise gibt es viele Open-Source-Tools, um Ihren Code zu testen und Empfehlungen zur Verbesserung seiner Qualit\u00e4t zu erstellen. Noch besser ist, dass die meisten CI\/CD-Tools mit diesen Programmen verbunden werden k\u00f6nnen, um den Prozess zu automatisieren.<\/p>\n<p>Das Testen von Code besteht aus zwei Teilen: Testframeworks, die beim Schreiben und Ausf\u00fchren von Tests helfen, und Tools zur Generierung von Vorschl\u00e4gen, die helfen, die Codequalit\u00e4t zu verbessern.<\/p>\n<p><b>Testsysteme<\/b><\/p>\n<p>Bezeichnung<br \/>\nLizenz<br \/>\nProgrammiersprache<\/p>\n<p>JUnit<br \/>\nEclipse Public License<br \/>\nJava<\/p>\n<p>EasyMock<br \/>\nApache<br \/>\nJava<\/p>\n<p>Mockito<br \/>\nMIT<br \/>\nJava<\/p>\n<p>PowerMock<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Pytest<br \/>\n MIT<br \/>\nPython<\/p>\n<p>Hypothesis<br \/>\nMozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p><b>Empfehlungssysteme zur Verbesserung des Codes<\/b><\/p>\n<p>Bezeichnung<br \/>\nLizenz<br \/>\nProgrammiersprache<\/p>\n<p>Cobertura<br \/>\nGNU<br \/>\nJava<\/p>\n<p>CodeCover<br \/>\nEclipse Public (EPL)<br \/>\nJava<\/p>\n<p>Coverage.py<br \/>\n Apache 2.0<br \/>\nPython<\/p>\n<p>Emma<br \/>\nCommon Public License<br \/>\nJava<\/p>\n<p>JaCoCo<br \/>\n Eclipse Public License<br \/>\nJava<\/p>\n<p>Hypothesis<br \/>\n Mozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Jasmine<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Karma<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Mocha<br \/>\n MIT<br \/>\nJavaScript<\/p>\n<p>Jest<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Bitte beachten Sie, dass die meisten der oben genannten Tools und Frameworks f\u00fcr Java, Python und JavaScript geschrieben sind, da C++ und C# propriet\u00e4re Programmiersprachen sind (obwohl GCC Open-Source ist).<\/p>\n<p>Jetzt, da Sie die Testabdeckungs-Tools implementiert haben, sollte Ihre DevOps-Pipeline wie das Diagramm aussehen, das zu Beginn dieses Leitfadens gezeigt wurde.<\/p>\n<h3>Zus\u00e4tzliche Schritte<\/h3>\n<p>\n<b>Container<\/b><\/p>\n<p>Wie bereits erw\u00e4hnt, k\u00f6nnen Sie Ihren Server auf einer virtuellen Maschine oder einem Server hosten, aber Container sind eine beliebte L\u00f6sung.<\/p>\n<p>Was sind Container? Kurz gesagt, eine virtuelle Maschine ben\u00f6tigt eine gro\u00dfe Menge an Betriebssystemspeicher, die den Anwendungsgr\u00f6\u00dfe \u00fcbersteigt, w\u00e4hrend ein Container nur einige Bibliotheken und Konfigurationen ben\u00f6tigt, um die Anwendung auszuf\u00fchren. Offensichtlich gibt es immer noch wichtige Anwendungsf\u00e4lle f\u00fcr virtuelle Maschinen, aber ein Container ist eine leichte L\u00f6sung zur Bereitstellung von Anwendungen, einschlie\u00dflich Anwendungsserver.<\/p>\n<p>Obwohl es auch andere Containeroptionen gibt, sind Docker und Kubernetes am beliebtesten.<\/p>\n<p>Docker: Apache 2.0<br \/>\nKubernetes: Apache 2.0<\/p>\n<p><b>Intermedi\u00e4re Automatisierungswerkzeuge<\/b><\/p>\n<p>Unsere DevOps-Pipeline konzentriert sich haupts\u00e4chlich auf die gemeinsame Erstellung und Bereitstellung von Anwendungen, aber es gibt viele andere Dinge, die mit DevOps-Werkzeugen gemacht werden k\u00f6nnen. Eines davon ist die Verwendung von Infrastructure as Code (IaC) Werkzeugen, die auch als intermedi\u00e4re Automatisierungswerkzeuge bekannt sind. Diese Werkzeuge helfen bei der Automatisierung von Installation, Verwaltung und anderen Aufgaben f\u00fcr Middleware. Beispielsweise kann ein Automatisierungstool Anwendungen wie Webanwendungsserver, Datenbanken und \u00dcberwachungswerkzeuge mit den richtigen Konfigurationen extrahieren und auf dem Anwendungsserver bereitstellen.<\/p>\n<p>Hier sind einige Open-Source-Werkzeuge zur intermedi\u00e4ren Automatisierung:<\/p>\n<p>Ansible: GNU Public<br \/>\nSaltStack: Apache 2.0<br \/>\nChef: Apache 2.0<br \/>\nPuppet: Apache oder GPL<\/p>\n<p><img decoding=\"async\" alt=\"Anleitung f\u00fcr Anf\u00e4nger: Erstellen eines DevOps-Pipelines.\" src=\"\/wp-content\/uploads\/2020\/07\/148ef7317ca5780b412241ddaec9dc76.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Erfahren Sie, wie Sie einen gefragten Beruf von Grund auf neu lernen oder Ihre F\u00e4higkeiten und Ihr Gehalt durch kostenpflichtige Online-Kurse bei SkillFactory verbessern k\u00f6nnen:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/devops?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DEVOPS&amp;utm_term=regular&amp;utm_content=07072002\">Kurs zu DevOps<\/a><\/noindex> (12 Monate)<\/li>\n<\/ul>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">weitere Kurse<\/b><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/ml-programma-machine-learning-online?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=ML&amp;utm_term=regular&amp;utm_content=07072002\">Kurs zu Machine Learning<\/a><\/noindex> (12 Wochen)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/data-scientist?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DST&amp;utm_term=regular&amp;utm_content=07072002\">Ausbildung im Beruf Data Science von Grund auf<\/a><\/noindex> (12 Monate)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/analytics?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=SDA&amp;utm_term=regular&amp;utm_content=07072002\">Beruf des Analysten mit jedem Einstiegsniveau<\/a><\/noindex> (9 Monate)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=PWS&amp;utm_term=regular&amp;utm_content=07072002\">Kurs \u201ePython f\u00fcr Webentwicklung\u201c<\/a><\/noindex> (9 Monate)<\/li>\n<\/ul>\n<p><\/p>\n<h3>N\u00fctzlich<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503196\/\">450 kostenlose Kurse von der Ivy League<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508450\/\">Trends in Data Science 2020<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508556\/\">Data Science ist tot. Es lebe Business Science.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506790\/\">Data Science auf Steroiden: Einf\u00fchrung in Decision Intelligence<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503504\/\">Das erfolgreichste und umstrittenste Data Science Projekt: Cambridge Analytica<\/a><\/noindex><\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/509964\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432. DevOps \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u0437\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps \u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0412 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87467","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-08T11:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T11:42:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Anf\u00e4ngerleitfaden: DevOps-Pipeline erstellen | ProHoster","description":"Wenn Sie neu in DevOps sind, werfen Sie einen Blick auf diese Anleitung zur Erstellung Ihrer ersten Pipeline in f\u00fcnf Schritten.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-08T11:42:11+00:00","article:modified_time":"2020-07-08T11:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87467","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:50:31","updated":"2022-09-29 03:37:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=87467"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87467\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/87468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}