Trace Id is missing
Zum Hauptinhalt wechseln

DevOps-Tutorial – Einführung

Verbessern der Softwarebereitstellung mit einem DevOps-Tutorial

DevOps umfasst viele verschiedene Phasen, Konzepte und Komponenten. In diesem DevOps-Tutorial erfahren Sie, was DevOps ist und wie es helfen kann, Ihre Abläufe bei der Softwarebereitstellung zu verbessern.

Grundlegendes zu DevOps

Zu Beginn dieses DevOps-Tutorials werden einige grundlegende Definitionen erläutert, die Ihnen dabei helfen, zu verstehen, was DevOps ist und in welchem Zusammenhang es zu Ihrem allgemeinen Softwareentwicklungsprozess steht.

  • DevOps ist eine Methodik zur Softwareentwicklung, die die Zusammenarbeit zwischen Entwicklung und Betrieb fördert und damit die Softwarebereitstellung schneller und zuverlässiger macht. Das häufig als eine Kultur bezeichnete DevOps-Vorgehen verbindet Menschen, Prozesse und Technologie und trägt damit dauerhaft zur Optimierung bei.

    Mehr erfahren über DevOps

  • Der Vorgang der Softwareentwicklung läuft oftmals weitgehend manuell ab, sodass auch viele Codefehler auftreten können. Die Entwicklungs- und Betriebsteams arbeiten häufig nicht synchron. Dies kann einerseits die Softwarebereitstellung verlangsamen und andererseits Beteiligte im Unternehmen frustrieren. Mit DevOps erreichen Sie mehr Effizienz für alle Aufgaben bei der Entwicklung, Bereitstellung und Wartung der Software.

    Die Zusammenführung von Entwicklung und Betrieb sorgt für mehr Transparenz, präzisere Anforderungen, bessere Kommunikation und kürzere Markteinführungszeiten.

  • DevOps schließt die Lücke zwischen Entwicklung und Betrieb und fördert signifikante Effizienzsteigerungen bei der Entwicklung und Bereitstellung von Software. Der Fokus von DevOps liegt ganz klar auf der Automatisierung, mit der die Anzahl von Fehlern reduziert werden soll.

  • DevOps liegt die Philosophie zugrunde, dass für sämtliche Aspekte eines Projekts umfassende Verantwortlichkeiten festgelegt werden. Im Vergleich zu traditionellen Methoden bei der Entwicklung von Software schließt DevOps die Lücke zwischen den Entwickler- und Betriebsteams. Häufig geschieht dies nicht, sodass die Softwarebereitstellung behindert werden kann.

    Über ein umfassendes Framework für die Entwicklung und Veröffentlichung von Software bringt DevOps die Entwickler- und Betriebsteams zusammen. Diese Trennung führt häufig zu Schwierigkeiten und macht die Softwarebereitstellung ineffizient.

  • Auch wenn es sich bei DevOps und dem agilen Ansatz um Verfahren zur Softwareentwicklung handelt, unterschiedet sich bei beiden Ansätzen der Fokus. Bei DevOps handelt es sich um eine Kultur, die für mehr Effizienz bei allen Beteiligten an Entwicklung, Bereitstellung und Wartung von Software sorgen soll. Der agile Ansatz stellt ein Produktionsframework für die Softwareentwicklung bereit. Die agile Vorgehensweise wird oftmals nur vom Entwicklerteam angewandt, während sich DevOps auf alle Beteiligten auswirkt, die an der Produktion und Wartung der Software mitarbeiten. DevOps- und agile Verfahren können zusammen angewandt werden, um eine hocheffiziente Umgebung für die Softwareentwicklung zu schaffen.

Vertiefendes DevOps-Lernen mit diesen Aufgaben

Jeder Abschnitt in diesem DevOps-Tutorial umfasst einige Aufgaben, die Sie jeweils einige Schritte auf dem Weg zu einer DevOps-Methodik weiter bringen. Beantworten Sie die folgenden Fragen:

  • Welchen Herausforderungen haben Sie sich bei der Entwicklung und Bereitstellung von Software gegenüber gesehen?
  • In welchen Bereichen sehen Sie Möglichkeiten zur Verbesserung der Effizienz bei der Softwareentwicklung und -bereitstellung?

Die Grundlagen von DevOps

Im nächsten Abschnitt dieses DevOps-Handbuchs werden die Hauptkonzepte von DevOps beschrieben. In diesem Abschnitt werden die Hauptkomponenten erläutert.

  • Die agile Entwicklung, die sehr häufig von Softwareteams angewandt wird, stellt einen Bereitstellungsansatz dar, der auf eine schlanke Umsetzung abzielt. Die Entwicklung erfolgt dabei in kurzen, inkrementellen Sprints. Auch wenn sich dieser Ansatz von dem bei DevOps unterscheidet, schließen sich die beiden nicht gegenseitig aus: Agile Vorgehensweisen und Tools können zur Effizienzsteigerung innerhalb des Entwicklungsteams und damit insgesamt zur Förderung einer DevOps-Kultur beitragen.

    Erste Schritte mit der agilen Planung mithilfe von Azure Boards

  • Bei der Zusammenarbeit in Teams ist die Versionskontrolle extrem wichtig für eine präzise und effiziente Softwareentwicklung. Ein Versionskontrollsystem wie z. B.  Git erstellt eine Momentaufnahme Ihrer Dateien, sodass Sie jederzeit und dauerhaft ältere Versionen wiederherstellen können. Mit einem Versionskontrollsystem können Sie sicher sein, dass durch Änderungen, an denen Sie gerade arbeiten, keine Konflikte auftreten.

    Beginnen Sie mit der Verwendung einer Versionskontrolle mit Azure Repos.

  • Continuous Integration ist der Vorgang der Automatisierung von Builds und Testvorgängen, die der Code durchläuft, während er fertig gestellt und im System committet wird. Nach dem Committen des Codes folgt ein automatisierter Prozess der Validierung. Es wird nur getesteter und validierter Code in den Hauptquellcode committet, der auch als Masterbranch, Main oder Trunk bezeichnet wird. Mit Continuous Integration wird dieser Prozess automatisiert und damit erheblich effizienter gemacht. Sämtliche Fehler werden schon sehr früh erkannt, bevor Code mit dem Masterbranch zusammengeführt wird.

    Beginnen Sie mit dem Implementieren von Continuous Integration mit Azure Pipelines.

  • Continuous Delivery ist die DevOps zugrunde liegende Vorgehensweise. Sie ermöglicht eine schnelle und zuverlässige Softwarebereitstellung. Continuous Delivery ähnelt dem allumfassenden Konzept von DevOps. Der Prozess stellt das Framework dar, in dem jede Codekomponente auf dem Weg zur Fertigstellung getestet, validiert und committet wird, sodass Software damit jederzeit bereitgestellt werden kann. Continuous Integration ist ein Teilprozess von Continuous Delivery.

    Beginnen Sie mit dem Implementieren von Continuous Delivery mit Azure Pipelines.

  • Egal ob lokal oder in der Cloud: Die Bereitstellung und Konfiguration von Ressourcen ist eine wichtige Aufgabe in der Umgebung. Prozessautomatisierung und die Verwendung von Tools, die eine deklarative Definition der Infrastruktur ermöglichen (z. B. in textbasierten Definitionsdateien), ermöglichen Teams, Ressourcen auf zuverlässige und wiederholbare Weise bereitzustellen und zu konfigurieren. Die textbasierten Definitionsdateien können als Code innerhalb der Versionskontrolle verwaltet werden. Dies ermöglicht Rollbacks und Neuerstellungen komplexer Umgebungen sowie deren Auflösung. Für die Implementierung von Infrastruktur als Code werden häufig Technologien wie Terraform oder Ansible genutzt.

    Erstellen einer Infrastruktur in Azure mit Terraform

    Weitere Informationen zur Verwendung von Ansible mit Azure

  • DevOps bezieht sich nicht nur auf die Entwicklung, sondern auch auf die Verteilung der Verantwortlichkeiten für die Software während der Bereitstellung, einschließlich der Softwareleistung. Für den gesamten DevOps-Ablauf entsteht eine Feedbackschleife mit Datenpunkten, die sowohl zur Verbesserung zukünftiger Projekte als auch zur Validierung der Entscheidung zur Bereitstellung der Software beitragen. Überwachung und Protokollierung sind dabei Schlüsselkomponenten für das validierte Lernen, da sie insgesamt für mehr Konsistenz und Effizienz bei der Softwareentwicklung und -bereitstellung sorgen.

    Weitere Informationen zum Sammeln und Analysieren von Telemetriedaten mit Azure Monitor

  • Während des gesamten Lebenszyklus werden Feedback und Telemetriedaten gesammelt, um fundierte Entscheidungen für den nächsten Zyklus zu treffen. Diese Informationen werden als validiertes Lernen bezeichnet. Durch validiertes Lernen erhalten Sie Erkenntnisse über neue Möglichkeiten, die Dauer von Zyklen zu verringern. Mithilfe der gesammelten Daten wird dann nach Wegen für die Automatisierung gesucht. Außerdem können damit Prozesse optimiert und die Bereitstellung schneller und effizienter gemacht werden.

Vertiefendes DevOps-Lernen mit diesen Aufgaben

Nachdem Sie nun die wichtigsten Konzepte von DevOps kennengelernt haben, sollten Sie die folgenden Fragen beantworten:

  • Welche Teile Ihres Entwicklungsprozesses werden manuell durchgeführt und könnten von einer Automatisierung profitieren?
  • Gibt es Möglichkeiten zur Einführung von Continuous Integration im Erstellungsprozess Ihres Teams?
  • Wie verwaltet Ihr Team derzeit die Infrastruktur? Ist der Prozess wiederholbar und zuverlässig, oder könnte er durch den Einsatz von Infrastruktur als Code verbessert werden?
  • Welche Telemetriedaten bieten wertvolle Informationen für Ihre Arbeit?
  • Welche anderen Datenpunkte könnten zum validierten Lernen beitragen?

Umsetzen einer eigenen DevOps-Kultur

Im nächsten Teil dieses DevOps-Tutorials wird das Einrichten einer DevOps-Kultur besprochen. Sie werden bei der Vorbereitung der Einführung von DevOps in Ihrem Unternehmen sicherlich einige Unterschiede zu Ihrem derzeitigen Ansatz der Softwarebereitstellung feststellen.

Die Umsetzung einer neuen Kultur geschieht nicht über Nacht und ist auch nicht durch den Erwerb neuer Tools getan. Damit Ihr Team DevOps erlernen und ausprobieren kann, müssen Sie eventuell Änderungen an Ihrer derzeitigen Teamstruktur, Ihren Workflows und Ihren Verhaltensweisen vornehmen.

Erfahren Sie, wie Microsoft eine DevOps-Kultur geschaffen hat.

Vertiefendes DevOps-Lernen mit diesen Aufgaben

Jeder Abschnitt in diesem DevOps-Tutorial umfasst einige Aufgaben, die Sie jeweils einige Schritte auf dem Weg zu einer DevOps-Methodik weiter bringen. Beantworten Sie die folgenden Fragen:

  • Welchen Herausforderungen haben Sie sich bei der Entwicklung und Bereitstellung von Software gegenüber gesehen?
  • In welchen Bereichen sehen Sie Möglichkeiten zur Verbesserung der Effizienz bei der Softwareentwicklung und -bereitstellung?

Erste Schritte mit Azure DevOps

Liefern Sie Ihre Software dank moderner Entwicklungsdienste schneller und zuverlässiger. Verbessern Sie die Planung und Zusammenarbeit und liefern Sie schneller Ergebnisse. Hierfür können Sie sämtliche oder ausgewählte DevOps-Features nutzen.