Sie brauchen einen DevOps Berater und/oder möchten, dass wir Ihnen unser Angebot in diesem Umfeld vorstellen?
Bitte hinterlassen Sie uns Ihren Namen und die Kontaktdaten. Dann melden wir uns bei Ihnen.
mindsquare » Knowhow » DevOps
DevOps ist ein Kunstwort, das sich aus den Begriffen Development (Dev) und Operations (Ops) zusammensetzt. Somit vereint DevOps zwei organisatorisch voneinander getrennte IT-Bereiche: Die Softwareentwicklung (Development) und den IT-Betrieb (Operations).
Diese beiden Fachabteilungen können ungemein voneinander profitieren und ihre Expertise in die jeweiligen Teams einfließen lassen. So kann die Entwicklung qualitativ hochwertiger Produkte beschleunigt und ein zuverlässiger Betrieb gewährleistet werden.
Das Ziel von DevOps ist es, die organisatorischen Trennungen zu respektieren und zu wahren, aber gleichzeitig durch Anpassungen der Prozesse die Entwicklung der Software effizienter und zuverlässiger zu gestalten. Zudem wird in diesem Ansatz der Fachbereich direkt integriert, wodurch im Zusammenhang mit Methoden der agilen Softwareentwicklung schnellere Abnahmen und Auslieferungen ermöglicht werden können. DevOps ist demnach ein Prozessverbesserungs-Ansatz, der den gesamten Prozess der Softwareentwicklung optimieren soll und somit dem gesamten Geschäft schnelle und effiziente Services anbietet.
In diesem E-Book erfahren Sie mehr über DevOps und ob es für Ihr Unternehmen sinnvoll ist.
Die DevOps-Bewegung ist aus der Marktanforderung heraus entstanden, die Produktqualität zu erhöhen und Projekte liefergetreu fertigzustellen. Die Kundenerwartungen werden immer anspruchsvoller und Unternehmen stehen zusehends unter Zugzwang. Während die Entwicklung jedoch auf Agilität setzt und eine ständige Optimierung der bestehenden Systeme anstrebt, beruht der Betrieb auf Stabilität. Der Betrieb verfolgt das Ziel, möglichst stabile Software, Infrastrukturen und Systemlandschaften zu betreuen. Die Teams blieben somit isoliert und befassen sich nur mit ihren eigenen Zuständigkeitsbereichen und – natürlich – den eigenen Zielen und Werten.
Die innovative Methode wird von integrierten IT-Teams umgesetzt, die die Verantwortung sowohl für die Entwicklung als auch für den Betrieb von Applikationen übernehmen. Das Team unterstützt somit den gesamten Software Lifecycle. Ganz nach dem Credo:
You build it, you ship it, you run it.
DevOps ist als eine Unternehmenskultur zu verstehen, die einen ganzheitlichen Ansatz verfolgt. Um eine effizientere Zusammenarbeit und eine bessere Qualität des Endproduktes erreichen zu können, sind die vier Komponenten Teams, Tools, Methoden sowie Transparenz & Stabilität aufeinander ausgerichtet:
Der Anspruch von DevOps ist es, dass sich alle Projekt-Beteiligten gegenseitig unterstützen und mit ihren Fähigkeiten und ihrem Wissen das komplette Team bereichern. Das Wissen soll demnach nicht in den einzelnen Bereichen “gehortet” werden – Kopfmonopole werden gemieden.
Neben den Hauptakteuren Softwareentwicklung und IT-Betrieb können auch Mitarbeiter aus Fachbereichen, aus der Test-Abteilung und dem Support das Team mit ihrem Fachwissen unterstützen. Durch diese integrierten Teams ergibt sich der Vorteil, dass die notwendige Expertise direkt im Team vorhanden ist und nicht erst umständlich erfragt werden muss – aus der räumlichen Nähe resultieren schnellere Kommunikationswege. Zudem können benötigte Freigaben direkt aus dem Team herausgegeben werden. Das Ergebnis:
Tools sollen uns Menschen bei Standardaufgaben entlasten. So müssen in einem ersten Schritt wiederkehrende Aufgaben in einem Prozess identifiziert werden, die dann in einem weiteren Schritt den Maschinen überlassen werden sollen. Die Verwendung von Tools, die eben jene Aufgaben automatisiert erledigen sollen, wird in jeder einzelnen Phase des Software-Lifecycles angestrebt. Dabei sollen diese Tools nicht losgelöst voneinander stehen, sondern möglichst viel interagieren und eine Toolchain (Werkzeugkette) bilden. Letztendlich sollen möglichst viele Schritte automatisiert erledigt werden. So könnten Maschinen
DevOps selbst ist kein Werkzeug, jedoch bilden unterschiedliche Software-Tools wichtige Bausteine zur Automatisierung und Implementierung der Produkte. Die Infrastruktur der Kunden bietet häufig schon Grundvoraussetzungen, um den Ansatz problemlos durchführen zu können.
Der Einsatz der Tools variiert dabei von Kunde zu Kunde umso stärker: Datenschutzanforderungen sorgen dafür, dass ein Teil der Infrastruktur direkt beim Kunden gehostet werden muss, wieder andere Applikationen/Komponenten können in die Cloud ausgelagert werden, was den hybriden Ansatz beschreibt: Die Vermischung von Cloud und On-Premise. Die verstärkte Integration von Anforderungs- und Projektmanagement-, Entwicklungs-, Build-, Deployment- sowie Test-Tools ermöglicht eine deutliche Verkürzung der Time-to-Market. Die gesamte Entwicklung bis hin zum produktiven Einsatz des Produktes profitiert von dieser Toolchain.
Neben den Bereichen Entwicklung und Betrieb können Maschinen auch im Projektmanagement unterstützen. Das Kanban-Board beispielsweise, eine Projektmanagement-Methode zur transparenten Darstellung des Projektverlaufs, kann digitalisiert und in einer Software-Lösung implementiert werden.
Open-Source-Lösungen wie Jenkins oder Docker für die Build-Phase oder das Container-Management können sich nahtlos in das DevOps-Projekt einfügen und bilden eine zusammenhängende Toolchain.
Jedes Unternehmen sollte sich die Frage stellen, wie sein ganz persönlicher Software-Mix aussehen sollte und welche Software das Unternehmen bei der Erreichung seiner Ziele bestmöglich unterstützt. Soll die Software On-Premise, in der Cloud oder in einem hybriden Ansatz genutzt werden? Zudem sollten die Themen Datenschutz, Lizenzmodelle oder Abhängigkeiten von einem Lieferanten (Vendor-Lock-In) beachtet werden.
Überblick zur DevOps-Toollandschaft.
DevOps setzt methodisch sowohl auf technologischer als auch auf prozessualer Ebene an und stellt dabei klassische ITIL-Prozesse auf die Probe. ITIL (IT Infrastructure Library) beschreibt eine strukturierte Prozesssammlung von Best Practices für Service Management in der IT. ITIL gehört mittlerweile zum Tagesgeschäft vieler IT-Organisationen, die die bewährten Standardverfahren anwenden, um wirtschaftlich und qualitätsbewusst arbeiten zu können. Nun sieht das innovative DevOps-Konzept ein “ausbrechen” aus standardisierten Verfahren vor, was Unternehmen mit stabilen Prozessframeworks vor Herausforderungen stellt.
Auf technologischer Ebene bietet DevOps Entwicklungs-, Codeverwaltungs-, Test- und Deployment-Methoden an:
Continuous Integration ist eine Methode, in der fortlaufend Komponenten zu einer Anwendung zusammengefügt werden. Durch die kontinuierliche Integration soll die Softwarequalität gesteigert werden. Damit die Komponenten des Produktes für alle Teammitglieder transparent einzusehen sind, dienen Artefakte der Repräsentation von Produkt-Bestandteilen. DevOps zielt mittels Continuous Integration auf ein automatisiertes Bauen von Software-Artefakten aus Quell-Code ab.
Continuous Delivery ist der nächste Schritt, der auf Continuous Integration aufbaut. Ziel der Continuous Delivery ist es, die zuvor automatisierten Artefakte (ebenfalls) automatisiert zu deployen. Das heißt, dass das Artefakt automatisch getestet und daraufhin in der Produktivumgebung installiert wird.
Continuous Deployment bedeutet, dass Builds auf die Produktionsumgebung automatisiert eingespielt werden. Continuous Deployment ist die letzte Ausbaustufe und nur für ausgewählte Softwareentwicklungen sinnvoll einsetzbar.
Continuous Monitoring erlaubt den Einblick in die Leistung und Integrität des gesamten Anwendungsstacks in Echtzeit. Mithilfe umfangreicher Telemetriedaten können Erkenntnisse auch aus großen Datenmengen gewonnen werden, um Probleme schnell zu lösen und zukünftige Verbesserungsmöglichkeiten zu erkennen.
Im Rahmen der Implementierung entwickelter Anwendungen spielt die IaC-Methode eine wichtige Rolle. Infrastructure as Code wird auch als eine programmierbare Infrastruktur bezeichnet und bedeutet, dass die Systemkonfiguration wie die Programmierung von Software behandelt wird. Hardware wird also nicht manuell konfiguriert, Systemressourcen und Topologien werden stattdessen deskriptiv definiert und lassen sich daher über Software (automatisch) verwalten und bereitstellen. Anwendungen können bspw. Skripte enthalten, über die virtuelle Maschinen erstellt und orchestriert werden.
Dies bringt eine Reihe von Vorteilen für Entwickler mit sich, die essentiell für Cloud Computing und DevOps-Ansätze sind: Ressourcen lassen sich wie Programmcode behandelt, wodurch sie leichter konfigurierbar und überprüfbar sind. Systemumgebungen können in verschiedenen Versionen gespeichert werden, wodurch relevanten Ressourcen zuverlässig, wiederholbar und kontrolliert zur Verfügung stehen. So lassen sich mit der Produktionsumgebung identische Testumgebungen leicht für die Applikationsentwicklung nutzen.
Traditionelle Unternehmen haben ihre etablierten Prozesse. Nun ist DevOps aus der Erkenntnis heraus entstanden, dass die standardisierten Prozesse heutzutage nicht mehr ausreichen, um wettbewerbsfähig bleiben zu können. So sind die etablierten Prozesse durch höhere Kundenanforderungen getrieben, sich anpassen zu müssen: DevOps ist der Treiber.
Ein guter Ausgangspunkt zur Implementierung von DevOps ist es, auf Prozessebene zu beginnen: Hier bietet sich zum Beispiel das Change Management an. Das Change Management nach ITIL ist ein Prozess, in dem alle Veränderungen an der IT-Infrastruktur kontrolliert und risikoarm durchgeführt werden. So werden alle Anpassungen überwacht und den vorgegebenen Zielen entsprechend gesteuert. Ist dieser Prozess transparent umgestaltet, können Teams häufiger Funktionalitäten in Produktivumgebungen nachvollziehbar livesetzen. Durch die Transparenz ist gewährleistet, dass die gesamte Infrastruktur nachvollziehbarer und somit stabiler zur Verfügung steht – im Falle eines Ausfalls kann somit schneller und direkter reagiert werden.
In regelmäßigen Feedbackschleifen Fehler beheben und das Risiko eines fehlerhaften Endproduktes minimieren.
Effiziente Messungen sorgen für eine skalierbare IT-Infrastruktur und transparente Projektfortschritte. DevOps setzt zum einen auf das klassische Projektmanagement-Reporting – agil oder stabil – und zum anderen auf Messungsansätze in der Infrastruktur. Das Projektmanagement-Reporting variiert dabei je nach gewählter PM-Methode, DevOps kann sich flexibel anpassen.
Wird ein Projekt unter Verwendung einer agilen Methode wie Scrum durchgeführt, dann ist die Messung der Projektqualität ein aussagekräftiges Kriterium. Die Geschwindigkeit macht den Kerntreiber der Projektentwicklung aus. Im Scrum-Vokabular wird die Velocity als Maßeinheit für die Schnelligkeit der Teams definiert. Sprints beschreiben temporäre, sich wiederholende Phasen im Projektprozess, in der das Team ein funktionsfähiges Zwischenprodukt entwickelt und dem Kunden vorstellt. Also: Wie viel Funktionalität kann ein Team in einem Sprint liefern? Die Lieferfähigkeit des Teams kann entsprechend der Anforderungen gemessen werden – daraus lassen sich Entscheidungen ableiten.
Häufig führen externe Einflüsse und Abhängigkeiten zu langlaufenden Sprints. Durch die Messung dieser Dauer können die Verantwortlichen entscheiden, ob externe Entscheider zeitweise in das Projekt geholt werden sollen. So verkürzen sich die Kommunikationswege und die Ansprechpartner sind mit ihrem Fachwissen direkt vor Ort.
Zudem sind stetige Feedbackschleifen mit den Anwendern essentiell. In den Messungen sollte beachtet werden, wie hoch die Akzeptanz der Lösung bei den Anwendern ist und sich selbstverständlich im weiteren Verlauf des Projekts wiederspiegeln. Das ist ein klarer Vorteil der agilen Methode und der Entwicklung in Sprints: Die Entwicklung wird in Teil-Etappen durchgeführt, wodurch Veränderungen basierend auf dem Feedback der Anwender flexibel angepasst werden können. Bei DevOps ist das Anwenderfeedback aus dem Livebetrieb essentiell, um wiederkehrende Probleme direkt im Team schnell beheben zu können. In klassischen Wasserfall-Projekten richtet sich die Produktqualität nach der Liefertreue in Bezug auf vordefinierte Meilensteine und das Budget.
Neben der Messung der Projektqualität sind insbesondere auch technische Messungen elementar. Die Messung der Infrastruktur untergliedert sich in die Messung der Entwicklung durch automatisierte Tests und in die Messung des Betriebs.
Automatisierte Tests können Fehler in der Oberfläche messen – die Verfügbarkeit lässt sich in Last-Performance-Tests ermitteln. Messungen im Betrieb laufen über ein Monitoring der Verfügbarkeit von Applikationen, der Infrastruktur und dem Monitoring von Business Services. Hier wird getestet, ob die Funktionalitäten der Software ohne Einschränkungen zur Verfügung stehen.
Anhand dieser Messungen kann das Team eine Roadmap für das nächste Projekt erstellen und die Erkenntnisse aus den Messungen direkt anwenden. Open-Source-Tools wie Nagios sind geeignete Lösungen zum Monitoring komplexer IT-Infrastrukturen, die sich nahtlos in das Projekt eingliedern lassen.
Wenn in der IT-Welt der Begriff DevOps zu hören ist, wird er häufig zusammen mit den Schlüsselwörtern Agilität oder SCRUM genannt. Üblicherweise beschränken sich agile Modelle wie SCRUM auf die reine Softwareentwicklung. DevOps denkt die agile Methode weiter und bezieht diese auch auf den Betrieb der Software.
DevOps ist die konsequente Weiterentwicklung des agilen Gedankens in Unternehmen.
Somit wird hier der gesamte Unternehmens-Stack aufgegriffen: Governance, Prozesse, Anwendungen und die Infrastruktur:
Die Darstellung zeigt, dass die Bereiche “Plan” und “Build” agil umgesetzt werden. Die agile Methode fokussiert sich dabei auf das Spannungsfeld “Anforderungen vs. Machbarkeit”. Die Anforderungen an das Produkt werden zuvor definiert und in kleinen Sprints in Funktionalität umgesetzt, wodurch die Machbarkeit der Anforderung getestet wird. Während der Build-Phase setzt DevOps ein.
Die Darstellung macht deutlich, dass DevOps auf den agilen Part nicht angewiesen ist, aber durchaus von ihm profitieren kann. Der Mehrwert für das Unternehmen entsteht dadurch, dass die Integration des Fachbereichs in das IT-Projekt die Liefertreue sowie die Liefergeschwindigkeit erhöhen kann.
DevOps fokussiert das Spannungsfeld “Agilität vs. Stabilität” und strebt eine Balance beider Parameter in der Build- sowie in der Run-Phase an. Die Arbeitsebenen Governance, Prozesse, Anwendungen und Infrastruktur werden durchgehend mittels beider Methoden bedient.
Agile Methoden subsummieren verschiedene Vorgehensmodelle in der Softwareentwicklung. Primär fokussieren die Modelle zwei Themen: Die Zusammenarbeit zwischen Fachbereich und IT sowie die IT-interne Projektarbeit der Softwareentwicklung. Sprich: Das Aufnehmen von Anforderungen und das Tracken der Umsetzung ebendieser.
IT-Teams liefern in kleinen Inkrementen Softwareanpassungen – und dies in enger Abstimmung mit den Anwendern. Der Auftraggeber hat hierdurch bessere Steuerungsmöglichkeiten in die IT hinein und der Auftragnehmer liefert vermehrt entsprechend der Anforderungen. Ergebnisse werden nicht erst nach Monaten, sondern in der Regel innerhalb von einigen Tagen bis Wochen sichtbar.
Um die mit DevOps verfolgten Ziele erreichen zu können, müssen allerdings viel mehr Aspekte mit eingebunden werden, da der gesamte Produktlebenszyklus betrachtet wird. Im Fokus steht eine starke Produktorientierung. Alle an der Entwicklung, Weiterentwicklung und an der Nutzung eines Produkts beteiligten Personen werden in diesem Rahmen betrachtet. So werden nicht nur Entwicklungsteams unter die Lupe genommen.
Stattdessen betrachten wir bei der Umsetzung einer DevOps-Einführung oder eines Projekts viele Bereiche. Neben den Entwicklern werden auch Mitarbeiter von IT-Operations, aus dem Fachbereich, aus den Testabteilungen und bei Bedarf noch weitere Kollegen hinzugezogen.
Das Zusammenarbeitsmodell all dieser Bereiche wird analysiert. In jedem Bereich kann eine Optimierung umgesetzt werden, die dazu beiträgt, den verfolgten Zielen näher zu kommen.
Auch das würden wir verneinen. Die Grundkonzepte agiler Methoden decken sich mit denen von DevOps (Geschwindigkeit erhöhen, Zusammenarbeit verbessern). Dementsprechend kann eine agile Vorgehensweise bei der Softwareentwicklung dabei helfen, Ziele schneller zu erreichen.
Deswegen kann zum Beispiel das Einführen agiler Softwareentwicklungsmethoden eine Maßnahme zur Erreichung der Ziele sein.
Sie möchten Ihre Softwareentwicklung effizienter gestalten, wissen aber nicht genau wie? Stellen Sie uns Ihre Fragen in unserer kostenlosen Websession.
Bitte hinterlassen Sie uns Ihren Namen und die Kontaktdaten. Dann melden wir uns bei Ihnen.
Zusammenarbeit und Vertrauen, intelligenteres und transparenteres Arbeiten, schnellere Releases, kürzere Problemlösungszeiten und ein besseres Management unvorhersehbarer Aufgaben sind die elementaren Vorteile von DevOps.
Teams, die die DevOps-Methode anwenden, können durch Automatisierung und standardisierte Tools ihre Produktivität steigern und problemloser zu häufigeren Releases gelangen. Durch eine vollständige Transparenz verkürzt sich der Feedbackkreislauf und Probleme sowie Aufgaben können schneller gelöst und erledigt werden. Mit etablierten Prozessen und einer klaren Priorisierung, die sich durch die agile Methode flexibel an den Projektverlauf anpassen lässt, können die Teams ungeplante Aufgaben besser managen und ihre geplanten Aufgaben nicht aus den Augen verlieren.
Ein Nachteil ist sicherlich, dass standardisierte Herangehensweisen (ITIL) in vielen IT-Unternehmen fest verankert sind und das zunächst ein Umdenken der Mitarbeiter erfordert. Alte Strukturen werden gebrochen und “müssen” den DevOps-Methoden Platz machen. Die Beiden Bereiche IT-Betrieb und Softwareentwicklung stehen mit der Einführung von DevOps vor der Herausforderung, sich auf die “fremden” Prozesse einzulassen und diese anzunehmen. Mitarbeiter müssen die Bereitschaft zeigen, den Umgang mit einigen neuen Tools zu erlernen.
Nichtsdestotrotz bleibt die Tatsache, dass DevOps aus dem Wunsch heraus entstanden ist, Softwareentwicklungen schneller liefern und somit auf dem deutschen Markt profitabel bleiben zu können. Das Zusammenfügen der Softwareentwicklung und des IT-Betriebs ist ein strategischer Ansatz, um Prozesse rund um die Softwareentwicklung zu beschleunigen.
Das Thema Sicherheit gewinnt besonders durch die zunehmende Nutzung von Cloudservices an Bedeutung. Bestehende Sicherheitstests und Integrationstestverfahren, die am Ende einer Anwendungslieferung durchgeführt werden, sind nicht mehr zeitgemäß. Stattdessen sollten sie automatisiert und soweit wie möglich in allen Entwicklungsphasen eingesetzt werden, damit ein kontinuierlicher Betrieb aufrechterhalten werden kann.
Bestehende Prozesse müssen demnach mit angepasstem Sicherheits- und Risikomanagement umstrukturiert werden, sodass kritische Sicherheitslücken oder Verletzungen von Sicherheitsrichtlinien schnell erkannt und sicher behoben werden können. Aus diesem Grund wird DevSecOps als logische Weiterentwicklung des DevOps-Gedankens angesehen, der die Unternehmenskultur um Maßnahmen zur Gewährleistung der Sicherheit (Security) ergänzt, ohne dass Betrieb und Entwicklung beeinträchtigt werden.
Während DevOps also für die Bereitstellung und Auslieferung von Diensten verantwortlich ist, kümmert sich DevSecOps um die Sicherheit der Infrastruktur und die Einhaltung der IT-Compliance. Konkrete Aufgaben von DevSecOps umfassen bspw. Logging, Monitoring, Auditing, die Verwaltung digitaler Zertifikate oder die Einrichtung von Authentifizierungsverfahren.
DevOps ist eine Wortneuschöpfung, die sich aus den Begriffen “Development” (Dev) und “Operations” (Ops) zusammensetzt. Es beschreibt den Ansatz, die typischerweise getrennten IT-Bereiche “Entwicklung” (Development) und “Betrieb” (Operations) zu vereinen.
DevOps ist ein Ansatz zur Prozessoptimierung in der Softwareentwicklung. Ziel ist es, Prozesse so anzupassen, dass Software effizienter und in besserer Qualität entwickelt und ausgeliefert werden kann.
Der ganzheitliche Ansatz DevOps verfolgt die Idee, Entwicklung durch integrierte IT-Teams umzusetzen. Ein Team unterstützt den gesamten Lifecycle einer Software – die Verantwortung beginnt bei der Entwicklung und schließt die Inbetriebnahme mit ein.
DevOps arrangiert sich um die Komponenten “Teams”, “Tools”, “Methoden” sowie “Transparenz & Stabilität”. Wichtige Bausteine sind insbesondere die Methoden Continuous Integration und Continuous Delivery bzw. Deployment.
Das Ziel von DevOps ist, die Entwicklung von Software effizienter, die Auslieferung schneller und den Betrieb stabiler zu machen. Eine höhere Produktqualität und verbesserte Liefertreue bei IT-Projekten gehören mit dazu.
Devops wird häufig in einem Atemzug mit agilen Methoden genannt. Während Scrum & Co. aber den Fokus rein auf die Softwareentwicklung im Team legen, erweitert DevOps den agilen Gedanken auf das Gesamtunternehmen.
Sie interessieren sich für DevOps und möchten die innovative Methode nutzen, um Ihre Softwareentwicklung effizienter zu gestalten und die Zusammenarbeit Ihrer Teams zu revolutionieren? Sie haben Fragen zu der Einführung von Devops und der Anwendung in Ihrem Unternehmen? Wir beraten Sie gerne, welche Schritte für Sie die größte Wirkung haben und beantworten Ihre Fragen rund um das Thema. Vereinbaren Sie ein unverbindliches Beratungsgespräch mit unseren Experten.
Hier erfahren Sie, welche Themen/Aspekte für eine erfolgreiche DevOps Implementierung essentiell sind und worauf Sie dabei achten müssen.
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen: