Close

DevOps-Tools

Wähle Tools für jede Phase des DevOps-Lebenszyklus.


Offene Toolkette

DevOps ist die nächste Weiterentwicklung der agilen Methoden – ein kultureller Wandel, der Entwicklungs- und Operations-Teams zusammenbringt. DevOps ist eine Praxis, die einen kulturellen Wandel, neue Managementprinzipien und Technologietools beinhaltet, die zur Implementierung von Best Practices beitragen.

Wenn es um die DevOps-Toolkette geht, sollten Unternehmen nach Tools Ausschau halten, die die Zusammenarbeit verbessern, Kontextwechsel reduzieren, Automatisierungsfunktionen einführen sowie Observability und Überwachung nutzen, um schneller bessere Software auszuliefern.

Es gibt zwei Hauptansätze für eine DevOps-Toolkette: eine universelle oder eine offene Toolkette. Eine universelle DevOps-Toolkette bietet eine Komplettlösung, die normalerweise nicht in andere Tools von Drittanbietern integriert werden kann. Eine offene Toolkette kann mit verschiedenen Tools an die Bedürfnisse eines Teams angepasst werden. Atlassian ist der Ansicht, dass eine offene Toolkette der beste Ansatz ist, weil sie sich mit erstklassigen Tools auf die individuellen Bedürfnisse eines Unternehmens abstimmen lässt. Mit diesem Ansatz kann häufig eine verbesserte Zeiteffizienz und eine kürzere Markteinführungszeit erreicht werden.

Lies mehr über DevOps-Toolketten.

Unabhängig von der Art der DevOps-Toolkette, die ein Unternehmen verwendet, muss ein DevOps-Prozess die richtigen Tools verwenden, um die wichtigsten Phasen des DevOps-Lebenszyklus abzudecken:

  • Planen
  • Erstellen
  • Continuous Integration und Deployment
  • Überwachung
  • Operate
  • Kontinuierliches Feedback

Mit einer Open-DevOps-Toolkette haben die ausgewählten Tools Berührungspunkte mit mehreren Phasen des DevOps-Lebenszyklus. In den folgenden Abschnitten werden einige der beliebtesten Tools für DevOps vorgestellt, aber angesichts der Marktdynamik ändert sich diese Liste häufig. Anbieter fügen neue Funktionen hinzu, die es ihnen ermöglichen, mehr Phasen des DevOps-Lebenszyklus abzudecken. Jedes Quartal werden neue Integrationen angekündigt und in einigen Fällen konsolidieren Anbieter ihre Angebote, um sich auf ein bestimmtes Problem ihrer Benutzer zu konzentrieren.

Planen


Erstellen


Kubernetes-Logo Docker-Logo

Produktionsidentische Umgebungen für die Entwicklung:

Während Puppet und Chef in erster Linie für Operations-Teams gedacht sind, verwenden Entwickler Open-Source-Tools wie Kubernetes und Docker, um individuelle Entwicklungsumgebungen bereitzustellen. Die Programmierung mit virtuellen, löschbaren Produktionsrepliken hilft dir dabei, deine Arbeit effektiver zu erledigen.

Wenn jedes Teammitglied in identisch bereitgestellten Umgebungen arbeitet, ist die Aussage "funktioniert auf meinem Computer!" gar nicht mehr so komisch, weil es stimmt (jetzt ist es einfach lustig).

Ansible-Logo Primäres Logo Docker-Logo Puppet Logo Terraform-Logo

Infrastructure as Code:

Entwickler erstellen modulare Anwendungen, weil diese zuverlässiger und leichter zu warten sind. Warum also sollte man das Prinzip nicht auch auf die IT-Infrastruktur ausweiten? Die Anwendung auf Systeme kann sich als schwierig erweisen, weil sie sich ständig ändern. Deshalb umgehen wir das Problem, indem wir Code für die Bereitstellung verwenden.

Infrastructure as Code bedeutet, dass die erneute Bereitstellung nicht nur schneller ist als eine Reparatur, sondern auch konsistenter und besser reproduzierbar. Außerdem kannst du damit problemlos Variationen deiner Entwicklungsumgebung mit einer ähnlichen Konfiguration wie in der Produktionsumgebung aufsetzen können. Die Bereitstellung von Code kann immer wieder angewendet werden, um einen Server auf eine bekannte Baseline zurückzusetzen. Er kann in der Versionskontrolle gespeichert werden. Er kann getestet, in Continuous Integration (CI) integriert und durch Kollegen überprüft werden.

Wenn institutionelles Wissen quasi im Code kodifiziert ist, müssen seltener Runbooks und interne Dokumentation hinzugezogen werden. Und daraus entstehen wiederholbare Prozesse und zuverlässige Systeme.

Bitbucket-Logo Logo von GitHub Logo von GitLab

Quellcodeverwaltung und kollaborative Programmierung:

Es ist wichtig, eine Quellcodeverwaltung für Code zu haben. Tools zur Quellcodeverwaltung helfen dabei, den Code in verschiedenen Ketten zu speichern, sodass du jede Änderung sehen und einfacher mit anderen zusammenarbeiten kannst, indem du diese Änderungen teilst. Anstatt vor der Bereitstellung für die Produktion auf Änderungsgenehmigungsstellen zu warten, kannst du die Codequalität und den Durchsatz mit Prüfungen durch Kollegen über Pull-Anfragen verbessern.

Du fragst dich, was Pull-Anfragen sind? Pull-Anfragen informieren dein Team über Änderungen, die du an einen Entwicklungs-Branch in deinem Repository übertragen hast. Dein Team kann dann die vorgeschlagenen Änderungen überprüfen und besprechen, bevor sie in die Hauptcodezeile übernommen werden. Pull-Anfragen erhöhen die Qualität der Software, was zu weniger Bugs und Vorfällen führt. Dies senkt wiederum die Betriebskosten und verkürzt die Entwicklungszeit.

Tools zur Quellcodeverwaltung sollten sich in andere Tools integrieren lassen, damit du die verschiedenen Aspekte der Codeentwicklung und -auslieferung verbinden kannst. Auf diese Weise kannst du feststellen, ob der Code der Funktion in der Produktion ausgeführt wird. Wenn ein Vorfall auftritt, kann der Code abgerufen werden, um den Vorfall zu untersuchen.

Continuous Integration und Delivery


Logo von Jenkins Logo von AWS Bitbucket-Logo Logo von CircleCISnyk-Logo SonarSource-Logo

Continuous Integration:

Bei Continuous Integration wird Code mehrmals täglich in ein gemeinsam genutztes Repository eingecheckt und jedes Mal getestet. Auf diese Weise erkennst du Probleme automatisch und frühzeitig. So kannst du sie beheben, wenn es am einfachsten ist, und deinen Benutzern so früh wie möglich neue Funktionen zur Verfügung stellen.

Code Reviews durch Pull-Anfragen erfordern Branching und liegen voll im Trend. Das übergeordnete Ziel von DevOps ist ein Workflow, der zu immer weniger und schnelleren Branches führt und strenge Tests aufrechterhält, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.

Suche nach Tools, die deine Tests automatisch auf Entwicklungs-Branches anwenden und dir die Möglichkeit geben, diese zum Haupt-Branch zu pushen, wenn Branch-Builds erfolgreich sind. Gleichzeitig erhältst du mit einer einfachen Integration kontinuierliches Feedback durch Chat-Benachrichtigungen in Echtzeit von deinem Team.

Erlebe, wie Bitbucket Pipelines dir dabei hilft, Code vom Test bis zur Produktion zu automatisieren.

mabl-Logo Sauce Labs-Logo Xray-Logo Logo von Zephyr

Testen:

Testtools decken viele Anforderungen und Funktionen ab, einschließlich exploratives Testen, Testmanagement und Orchestrierung. Für die DevOps-Toolkette ist Automatisierung jedoch eine wesentliche Funktion. Automatisiertes Testen zahlt sich im Laufe der Zeit aus, weil es deine Entwicklungs- und Testzyklen langfristig beschleunigt. Und in einer DevOps-Umgebung ist es aus einem anderen Grund wichtig: Du kannst damit Bewusstsein schaffen.

Testautomatisierung kann die Softwarequalität erhöhen und das Risiko reduzieren, indem automatisierte Tests frühzeitig und häufig durchgeführt werden. Entwicklerteams können wiederholt automatisierte Tests ausführen, die verschiedene Bereiche wie UI-Tests, Sicherheitsscans oder Belastungstests abdecken. Sie liefern auch Berichte und Trenddiagramme, mit denen Risikobereiche identifiziert werden können.

Risiken lassen sich in der Softwareentwicklung nie ganz vermeiden, du kannst sie aber mindern, wenn du mit ihnen rechnest. Tue deinem Operations-Team einen Gefallen und gewähre ihm Einblick hinter die Kulissen. Halte Ausschau nach Tools, die Wallboards unterstützen, und lasse alle Projektbeteiligten bei bestimmten Build- oder Deployment-Ergebnissen mitreden. Es gibt extra Punkte für Tools, die es dem Operations-Team erleichtern, schnelle und explorative Tests durchzuführen.

Jira Software-Logo

Deployment-Dashboards:

Einer der stressigsten Aspekte der Softwarelieferung besteht darin, alle Änderungs-, Test- und Deployment-Informationen für einen bevorstehenden Release an einem Ort zu bündeln. Das Letzte, was man vor einem Release braucht, ist eine langwierige Besprechung, um über den Status zu berichten. Und hier kommen Release-Dashboards ins Spiel.

Suche nach Tools mit einem einzigen Dashboard, das in dein Code-Repository und deine Deployment-Tools integriert ist. Finde etwas, das dir in einer zentralen Ansicht einen kompletten Überblick über Branches, Builds, Pull-Anfragen und Deployment-Warnungen gibt.

Bitbucket-Logo Logo von Zephyr

Automatisiertes Deployment:

Es gibt kein Wundermittel für ein automatisiertes Deployment, das für jede Anwendung und IT-Umgebung funktioniert. In der Regel fängt man aber damit an, das Runbook von Operations mit Ruby oder Bash in ein ausführbares cmd-Skript zu konvertieren. Gute Engineering-Praktiken sind unerlässlich. Verwende Variablen, um Hostnamen auszuklammern. Denn es macht bestimmt keinen Spaß, für jede Umgebung ein eigenes Skript oder einen eigenen Code zu erstellen (und verfehlt ohnehin ihr Ziel). Erstelle Hilfsmethoden oder Skripte, um doppelten Code zu vermeiden. Und lasse deine Skripte durch Kollegen auf ihre Korrektheit überprüfen.

Versuche zuerst, Deployments in deiner Umgebung auf unterster Ebene zu automatisieren, wo du diese Automatisierungsfunktionen am häufigsten verwendest, und übertrage das dann auf alle Schritte bis zur Produktion. Bei dieser Übung sollten zumindest die Unterschiede zwischen deinen Umgebungen hervorgehoben werden und eine Liste mit Aufgaben dabei herauskommen, um diese Umgebungen zu standardisieren. Ein weiterer Vorteil ist, dass die Standardisierung von Deployments durch Automatisierung "Konfigurationsabweichungen" innerhalb und zwischen Umgebungen reduziert.

Operate


AppDynamics-Logo Datadog-Logo Slack-Logo Splunk-LogoNew Relic-Logo Opsgenie-Logo Pingdom-Logo Nagios-Logo Dynatrace-Logo Hosted Graphite-Logo Sumo Logic-Logo

Überwachung der Anwendungs- und Serverleistung:

Es gibt zwei Überwachungsarten, die automatisiert werden sollten: Serverüberwachung und Überwachung der Anwendungsleistung.

Für Stichproben reicht es völlig aus, eine Box von Hand zu markieren oder deine API einem spontanen Test zu unterziehen. Um jedoch Trends und den allgemeinen Zustand deiner Anwendung (und Umgebungen) nachvollziehen zu können, benötigst du Software, die rund um die Uhr Daten überwacht und aufzeichnet. Kontinuierliche Observability ist eine Schlüsselfunktion für erfolgreiche DevOps-Teams.

Suche nach Tools, die sich in deinen Gruppenchat-Client integrieren lassen, damit Benachrichtigungen direkt an den Raum deines Teams oder in einen speziellen Raum für Vorfälle weitergeleitet werden.

Jira Service Management-Logo Jira Software-LogoOpsgenie-Logo Statuspage-Logo

Vorfall-, Änderungs- und Problemnachverfolgung:

Um eine erfolgreiche Zusammenarbeit zwischen DevOps-Teams sicherzustellen, solltest du dafür sorgen, dass alle Einblick in dieselbe Arbeit haben. Was passiert, wenn Vorfälle gemeldet werden? Sind sie mit Softwareproblemen verknüpft und rückverfolgbar? Wenn Änderungen vorgenommen werden, sind sie mit Releases verknüpft?

Nichts behindert die Zusammenarbeit zwischen Entwicklungs- und Operations-Teams mehr als die Nachverfolgung von Vorfällen und Softwareentwicklungsprojekten in verschiedenen Systemen. Achte bei der Auswahl von Tools darauf, dass sie Vorfälle, Änderungen, Probleme und Softwareprojekte auf einer Plattform zusammenfassen, damit du Probleme schneller identifizieren und beheben kannst.

Fortlaufendes Feedback


GetFeedback-Logo Slack-Logo Jira Service Management-Logo Logo: Pendo

Kunden werden dir schon sagen, wenn du die richtige Lösung für sie erstellt hast. Du musst nur auf sie hören. Für kontinuierliches Feedback sind eine bestimmte Kultur und Prozesse erforderlich, um regelmäßig Feedback zu sammeln, sowie Tools, um Erkenntnisse aus dem Feedback zu gewinnen. Zu den Praktiken für kontinuierliches Feedback gehören das Sammeln und Überprüfen von NPS-Daten, Umfragen zu Abwanderungen, Fehlerberichte, Supporttickets und sogar Tweets. In einer DevOps-Kultur hat jeder im Produktteam Zugriff auf Benutzerkommentare. Denn diese dienen dir als Anhaltspunkt für alles: von der Release-Planung bis hin zu explorativen Tests.

Suche nach Anwendungen, die dein Chattool in deine bevorzugte Umfrageplattform integrieren, um Feedback im NPS-Stil zu erhalten. Auch Twitter und/oder Facebook können in den Chat integriert werden, um Feedback in Echtzeit zu erhalten. Für einen genaueren Blick auf das Feedback aus den sozialen Medien lohnt es sich, in eine Social-Media-Managementplattform zu investieren, die Berichte mithilfe historischer Daten abrufen kann.

Die Analyse und Einbeziehung von Feedback mag kurzfristig das Entwicklungstempo verlangsamen, aber auf lange Sicht ist das effizienter als neue Features herauszubringen, die niemand haben will.

Fazit


Bei Atlassian sind wir der Auffassung, dass eine DevOps-Toolkette in die Tools integriert sein sollte, die von Entwicklungs- und Operations-Teams bevorzugt verwendet werden. Aus diesem Grund haben wir unsere DevOps-Plattform für die Integration in mehr als 171 führende Drittanbieter-Lösungen entwickelt, sodass du für alle von dir verwendeten Tools die besten Entscheidungen treffen kannst. Schließlich sollten DevOps-Lösungen nicht von einem einzigen Anbieter stammen, sondern aufgebaut werden.

Probiere die DevOps-Lösung von Atlassian erst einmal kostenlos aus.


Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: DevOps

Simulations-Workshop

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up