Was ist DevOps?
Es gibt verschiedene Interpretationen von DevOps (development and operations). Im Grunde existieren bereits viele Merkmale dieses Konzepts in den meisten gut funktionierenden Cloud-Organisationen. Unter diesem Gesichtspunkt ist DevOps eher eine Evolution, denn eine Revolution in der Funktionsweise des IT-Sektors eines Unternehmens.
DevOps kann aus drei Blickwinkeln betrachtet werden – Menschen, Prozesse und Technologien. Durch das Prisma der menschlichen Beziehungen gesehen, ist DevOps eine Philosophie, die traditionelle organisatorische Silos aufbrechen will, insbesondere die strikte Trennung von Teams, die sich mit Anwendungsentwicklung und Infrastrukturmanagement befassen. Es ist üblich, Entwicklungsteams als Boten des Wandels und Verwaltungsteams als Hüter der Stabilität, eben als zwei Teams mit entgegengesetzten Zielen zu sehen, was zu Ineffizienz führt. Der DevOps-Ansatz ändert das. Wenn es um Prozesse geht, integriert DevOps agile Entwicklungsprinzipien in den Modus. Standardmäßig werden agile Prinzipien verwendet, um kontinuierlich den Code für die Produktionsumgebung zu erstellen, aber bei DevOps wird dieses Denken auf die Verwaltung der gesamten Infrastruktur übertragen.
Letztlich geht es bei DevOps um die Anwendung einer Vielzahl von Technologien, die einen effizienteren Betrieb und eine Automatisierung ermöglichen, wann immer sie verfügbar sind. Daher wird Git zur Verwaltung des Quellcodes, zur Anzeige von Gerrit-Code und zur Verwaltung von Konfigurationswerkzeugen wie Puppet, Shef, Ansible und SaltStack verwendet. Die technologische Basis für den DevOps-Modus umfasst VMware vRealize Code-Stream-Tools für die Veröffentlichung von Anwendungen sowie vRealize Automation und vRealize Operations für die Ressourcenzuweisung und die Überwachung der Infrastruktur.
Warum benötigen Unternehmen DevOps?
Durch die ständigen und sich ändernden technologischen Trends gibt es einen starken Wettbewerb, und jedes Unternehmen möchte vorankommen und seine Konkurrenten übertreffen. Unternehmen wollen ihre neuen Funktionen so schnell wie möglich veröffentlichen. Dies kann durch DevOps schnell erreicht werden. DevOps beinhaltet agile Praktiken und eliminiert Engpässe, wodurch die Software-Bereitstellung so einfach und unkompliziert wie möglich ist. Daher sollte jedes softwarebasierte Unternehmen heute DevOps einsetzen.
Von DevOps verwendete übliche Praktiken
Im Folgenden sind einige der wichtigsten Praktiken aufgeführt, die DevOps anwendet.
Automatisierung
DevOps verlässt sich vollständig auf die Automatisierung und die Werkzeuge, mit denen es implementiert werden kann. Wenn es Aufgaben gibt, die häufig auf die gleiche Weise ausgeführt werden und identische Ergebnisse liefern, gibt es keinen Grund, Zeit zu verschwenden und sie jedes Mal manuell auszuführen. Das spart nicht nur Zeit, es vermeidet auch mögliche menschliche Fehler. Wenn es um die Entwicklung geht, ist die Automatisierung sehr wichtig. Eines der am häufigsten verwendeten Werkzeuge ist Vagrant. Mit diesem Werkzeug kann die Entwicklungsumgebung schnell und einfach optimiert werden. Es ist von größter Wichtigkeit für jeden Entwickler, ein fertiges Bild mit einem vorinstallierten System und allen notwendigen Komponenten zu erhalten, welches es ihm ermöglicht, sich innerhalb von 15 Minuten auf die Entwicklung zu konzentrieren. Darüber hinaus ist eines der Werkzeuge, das bei den Ingenieuren von DevOps zum Standard gehört, Jenkins – ein Werkzeug, das die Schaffung so genannter Jobs für die kontinuierliche Integration, kontinuierliche Lieferung, kontinuierliche Tests und ähnliches ermöglicht.
Wasserfall Entwicklung
Vor der eigentlichen Integration würden die Entwicklungsteams über drei bis vier Monate hinweg einen riesigen Satz Codes schreiben. Anschließend setzten diese Teams ihren Code zusammen, um ihn zu veröffentlichen. Die verschiedenen Versionen des Codes wären so unterschiedlich und hätten so viele Änderungen, dass der eigentliche Integrationsschritt Monate dauern könnte. Dieser Prozess ist sehr unproduktiv, deshalb wird die Wasserfall-Entwicklung verwendet, um die Projektaktivitäten in linear aufeinander folgende Phasen zu unterteilen, wobei jede Phase von den Ergebnissen der vorhergehenden abhängt und der Aufgabenspezialisierung entspricht.
Kontinuierliche Integration
Dies ist eine der wichtigsten Praktiken bei DevOps, was im Wesentlichen bedeutet: so oft wie möglich den Code, an dem gearbeitet wird festzuschreiben, zu übertragen und zusammenzuführen. Für jede Aufgabe erstellt der Entwickler einen separaten, so genannten Feature-Zweig, der nach den gewünschten Änderungen und den grundlegendsten Tests seinerseits zunächst in das entfernte Repository geschoben wird, um den Zweig für andere sichtbar zu machen, aber auch in eine größere Codebasis einzubinden. Dieser Zyklus in der agilen Entwicklung wird natürlich mehrmals täglich wiederholt – je nach Arbeitsvolumen einer bestimmten Aufgabe. Das bedeutet eigentlich, dass jeder Entwickler aktiv überwachen muss, was der Rest des Teams tut, um seinen Code nahtlos in andere zu integrieren, aber andererseits verbessert dieser Ansatz die Kommunikation im Team erheblich und ermöglicht es, einen fehlerhaften Code so früh wie möglich zu identifizieren und zu korrigieren.
Kontinuierliche Tests
Wie es Scrum vorschreibt, ist für die Vorabveröffentlichung immer mindestens eine Woche zum Testen aktiver Funktionen vorgesehen. Wie auch beim früheren Arbeiten sollte das Testen jedoch eine kontinuierliche Zusammenarbeit zwischen dem Entwickler und dem QA-Ingenieur darstellen. Außerdem bedeutet das Testen im DevOps-Kontext nicht das klassische Click-to-Click-Testen – die Automatisierung ist der Schlüssel. Natürlich ist daran nichts auszusetzen, jedes Team muss über QA-Mitarbeiter verfügen, die die Anwendung kontinuierlich durchlaufen und feststellen, dass sie sich entsprechend den Anforderungen verhält. Zu den neueren Praktiken gehört jedoch auch die testgetriebene Entwicklung, automatisierte Tests also, die ebenfalls durch ein Tool wie Jenkins laufen, normalerweise nach jedem Aufbau. Auf diese Weise ist es einfacher kritische Merkmale sofort zu identifizieren und aus der Codebasis zu entfernen, bevor ein größerer Schaden entsteht. Auf der anderen Seite werden nicht nur neue Funktionen getestet. Es gibt auch Belastungs-, Stress- und einige andere Tests, die automatisch zeigen, wie sich eine Anwendung unter bestimmten Umständen verhält.
Kontinuierliche Bereitstellung
Diese Praxis baut auf den beiden vorherigen auf und stellt die Bereitstellung von stabilem und vollständig getestetem Produktionscode dar, mit dem Ziel, diesen so kurz wie möglich zu halten. Die Zeitspanne sollte zwischen den beiden Entwicklungen liegen, was in der Regel von der Veröffentlichung des individuellen Produktplans abhängt. Grundsätzlich erfolgt die Auslieferung am Ende jedes Sprints, was bedeutet, dass sie einmal pro Monat oder einmal in anderthalb Monaten erfolgt.
Monitoring
Nach der Einrichtung und Inbetriebnahme ist der nächste Schritt die Überwachung. Hierbei geht es natürlich um die Automatisierung und die Tools, eigene Tools, Open-Source-Tools, proprietäre Tools. Im Endeffekt muss man die Produktionsarbeit ständig überwachen und messbare Ergebnisse erzielen, mit denen man viele unerwünschte Dinge verhindern oder die Umgebung im nächsten Zyklus verbessern kann. Allerdings erfolgt die Überwachung nicht nur seitens des Ops-Teams – jedes Teammitglied könnte die Produktionsumgebung überwachen und auf der Grundlage der gezeigten Informationen schließen, wie sich die Umgebung verhält und was sie in diesem Moment tut. Wenn es sich beispielsweise um eine Webanwendung handelt, können Sie die Leistung aller derzeit aktiven Server leicht überwachen und, falls erforderlich, ein Scale-up / -down durchführen, um die gewünschte Reaktionsfähigkeit bei minimalen Kosten aufrechtzuerhalten. Andererseits sollten immer Alarmsysteme vorgesehen werden, die das Ops-Team benachrichtigen, wenn es zu Ausfallzeiten oder Problemen an Schlüsselpunkten in Ihrem System kommt (z.B. Erkennung von Deadlocks usw.).
Was ist das Ziel von DevOps?
DevOps ist dazu da, die Zusammenarbeit zwischen allen Beteiligten von der Planung, Lieferung und Automatisierung des Lieferprozesses zu verbessern, bis hin zu:
Vorteile von DevOps
Sicherheit
Schnell handeln und gleichzeitig die Kontrolle und Einhaltung der Vorschriften gewährleisten. Ein Unternehmen kann das DevOps-Modell ohne Sicherheitseinbußen einführen, indem es automatisierte Compliance-Richtlinien, Feinkontrollen und Konfigurationsmanagementtechniken einsetzt. Mit Infrastruktur als Code und Richtlinie als Code kann die Konformität definiert und überwacht werden.
Geschwindigkeit
Unternehmen müssen Sie sich schneller bewegen und denken als ihre Konkurrenten, um Kunden zu begeistern, sich besser an sich verändernde Märkte anzupassen und effizienter zu wachsen, um beste Geschäftsergebnisse zu erzielen. Das DevOps-Modell ermöglicht es Entwicklern und Betriebsteams, diese Ergebnisse zu erreichen. Beispielsweise ermöglichen Mikrodienste und kontinuierliche Bereitstellung den Teams, sich die Dienste zu eigen zu machen und dann schneller Aktualisierungen zu veröffentlichen.
Zuverlässigkeit
Die Qualität der Anwendungsaktualisierungen und schnellere Änderungen der Infrastruktur werden sichergestellt, damit die Anwendungen zuverlässig und schneller bereitstehen und gleichzeitig eine positive Endbenutzererfahrung bieten können. Mit den Verfahren zur Nachverfolgung und Protokollierung bleibt man über die Echtzeit-Performance auf dem Laufenden. Verfahren wie die kontinuierliche Bereitstellung und die kontinuierliche Integration überprüfen, ob jede Änderung funktional und sicher ist.
Express-Lieferung
Die Häufigkeit und das Tempo der Veröffentlichungen wird erhöht, damit das Produkt schneller entwickelt und verbessert werden kann. Kontinuierliche Integration und kontinuierliche Lieferung sind sehr wichtige Praktiken, die den Software-Release-Prozess automatisieren. Umso schneller kann auf die Bedürfnisse der Kunden reagiert und ein Wettbewerbsvorteil erreicht werden.
Verbesserung der Zusammenarbeit
Eine verbesserte Zusammenarbeit nach dem DevOps-Modell bildet effizientere Teams. Werte wie Eigenverantwortung und Verantwortung werden gefördert. Entwickler und Betriebsteams arbeiten eng zusammen, teilen sich viele Verantwortlichkeiten und kombinieren ihre Arbeitsabläufe. Dies reduziert Ineffizienz und spart Zeit.
Meistgenutzte DevOps Technologien & Tools
Um all diese Vorteile zu erzielen, verwendet DevOs spezielle Werkzeuge:
Unterschiede zwischen Hardware und Software DevOps
Author: Miloš Denić
Ü: Annette Rühle
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Frühere Beiträge | ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Kontaktieren Sie uns | ![]() ![]() ![]() ![]() |