• IT-Karriere:
  • Services:

DevOps: ein Erklärungsversuch

"Was bedeutet DevOps für euch?", habe ich kürzlich Mitarbeiter einer großen Firma gefragt, als wir am Rande einer Konferenz zusammensaßen. Die Antworten fielen so vielfältig aus, als hätte ich nach einer Definition von "Glück" oder "Erfolg" gefragt. DevOps, Agilität, Container - all diese Begriffe wurden meist in einem Atemzug genannt, aber nicht jeder wusste sie voneinander abzugrenzen.

Stellenmarkt
  1. Universitätsmedizin der Johannes Gutenberg-Universität Mainz, Mainz
  2. neo Management Services GmbH & Co. KG, Krailling Raum München

Während es sich bei Containern um eine Technologie handelt, sind agile Methoden und DevOps organisatorische Konzepte. Insbesondere die Idee hinter DevOps kann, richtig angewandt, meiner Erfahrung nach ungeahnte Energien freisetzen. In klassischen Organisationseinheiten arbeiten verschiedene Teams wie Dev, Ops, Sec, Q&A und UX zwar an einem gemeinsamen Ziel, etwa einem Produkt, sind aber im Alltag - nicht nur räumlich - getrennt voneinander.

Kommunikation und Wissensaustausch finden zwischen den Teams nur wenig statt. Es bilden sich Inseln, im DevOps-Kontext auch Silos genannt. So etwas konnte ich in fast jedem Konzern beobachten, für den ich bisher arbeiten durfte. DevOps macht es sich nun zur Aufgabe, diese Silos aufzubrechen, etwa indem Menschen aus verschiedenen Bereichen, wie eben Dev, Ops, Sec und so weiter, zu einem (virtuellen) Team zusammengeführt werden.

Die Organisation verspricht sich davon eine bessere Kommunikation, mehr Flexibilität und Geschwindigkeit, eine breitere Streuung von Wissen, eine höhere Qualität der Arbeit und nicht zuletzt eine höhere Qualität des Produkts, beispielsweise von Software oder einer Dienstleistung.

DevOps sind also nicht nur ein organisatorisches Thema, sondern auch eine Frage der Arbeitsphilosophie, -kultur und -mentalität, denn Offenheit und Zusammenarbeit stehen im Vordergrund. Die Grundsätze lauten: Arbeitet mit den gleichen Umgebungen, egal ob während der Entwicklung oder im Betrieb. Bezieht jeden mit ein, der ein Interesse an dem Endergebnis hat, und das schon möglichst früh. Und: Es ist normal, dass Dev, Ops und andere Teams sehr eng zusammenarbeiten und nicht, wie oft üblich, nur über Tickets miteinander kommunizieren.

Klassische Projektmethoden passen zu DevOps nicht, da sie zu starr, träge und unflexibel sind. Bei "gelebten DevOps" gibt das Management einen Teil der Verantwortung an eigenständig agierende Teams ab und muss sich nun darauf verlassen, dass diejenigen, die auf technischer Ebene die Aufgaben umsetzen, in vielen Bereichen eher wissen, welche Lösungen zum Ziel führen.

Agile Arbeitsweisen und DevOps gehen daher Hand in Hand. Gerade weil bei DevOps die klassische Trennung zwischen Dev, Ops, Sec und Q&A aufgeweicht wird, können DevOps-Teams neue Produkte vergleichsweise schnell entwickeln. Hilfreich ist dabei das Prinzip der MVPs ("Minimum Viable Products"), bei dem agile Teams ein kleinstes, funktionierendes Produkt schon sehr früh als Zwischenstand im Entwicklungszyklus dem Endanwender zur Verfügung stellen können.

Jedes weitere Sprint-Intervall legt neue Schichten (Fortschritt) um das MVP, wodurch dieses Stück für Stück zum fertigen Produkt heranreift. Durch die Anwendung von DevOps sind nicht nur Entwickler, sondern auch Kollegen aus Operations und anderen Teams früh involviert. Beide Konzepte, also Agilität und DevOps, profitieren bei richtiger Anwendung voneinander.

Container machen das Leben leichter

Bei meiner Arbeit mit den Konzernen beobachte ich oft, wie die internen Kollegen dankbar die Gelegenheit ergreifen und, ganz im Sinne von DevOps, propagieren: Alle in der Kette - von der Entwicklung bis zur Auslieferung - müssen von nun an mit der gleichen Laufzeitumgebung arbeiten. Im Sinne der Agilität fordern Product Manager häufigere und schnellere Deployments, da sie sich durch die Anwendung von agilen Arbeitsmethoden natürlich häufigere Releases versprechen.

Organisationen tun sich im Alltag allerdings schwer, ihren Entwicklern und dem Betrieb identische Systeme mit Laufzeitumgebungen für die Anwendungen zur Verfügung zu stellen. Nicht selten erlebe ich, wie Entwickler sogar in einem anderen Rechenzentrum arbeiten müssen, in denen die Server anders gepflegt werden als in der Produktion. Die Folge sind oft unterschiedliche Versionsstände von Softwarebibliotheken oder sogar unterschiedliche OS-Versionen.

Container lösen dieses Problem auf elegante Art und Weise: Durch Templates (bei Containern Images genannt) wird die Laufzeitumgebung für eine Anwendung - unabhängig vom Host-Betriebssystem - standardisiert und, so oft es geht, auch in anderen Projekten wieder verwendet. Das Image wird nur einmalig gebaut und dann in jeder Phase der Produktentwicklung (Entwicklung, Testing, Deployment) verwendet.

Damit alles reproduzierbar bleibt und auch die Ausbringung standardisiert ist, lässt sich das Verfahren durch CI/CD-Pipelines automatisieren. Ein Tool, wie beispielsweise Jenkins, lädt die Software-Quellen aus der Versionsverwaltung, zum Beispiel Git, herunter, baut automatisch das Image und schiebt es in die Registry. Automatisierte Jobs bringen die Anwendung in den verschiedenen Stages der Pipeline aus, so dass sie verschiedene Tests durchlaufen können. Nach Bestehen aller Tests und/oder der Freigabe durch das Team wird das Image in Form von laufenden Containern in der Produktion ausgebracht. Monitoring-Tools helfen dabei zu überwachen, ob die Vorgänge wie gewünscht ablaufen und sich das Produkt wie erwartet verhält.

Dank Kubernetes und Co. gibt es zudem immer mehr Möglichkeiten, so ein Container-Image, beziehungsweise die darin befindliche Anwendung, hochverfügbar und skalierbar zu betreiben. Freilich, man muss dafür nicht zwingend Container verwenden. Die Orchestrierungswerkzeuge für Container-Landschaften stellen allerdings die oftmals benötigten Features - wie Verschlüsselung, Load Balancing, Skalierung, Automatisierung, Scheduling, Self-Healing, Service Registry und so weiter - bereit, so dass man diese nicht selbst umsetzen muss.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Container, DevOps, Agilität: Runter von der Insel!Woran DevOps scheitern kann 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Anzeige
Hardware-Angebote
  1. täglich neue Deals bei Alternate.de
  2. (reduzierte Überstände, Restposten & Co.)

eechauch 09. Mär 2020

Was für ein Blödsinn. Ich kann dir garantieren, dass wir im Sicherheitsbereich seit...

konsolent 06. Mär 2020

Der (durchaus lesenswerte) Beitrag beginnt mit diesem erstaunlichen Satz: "Konzerne...

dermamuschka 06. Mär 2020

Jo, verstehe auch nicht, für mich ist das offensichtliche Akquise. Euer Großkonzern ist...

VigarLunaris 05. Mär 2020

Aber auch wenn Abteilungen auch schon ohne DevOps und dem ganzen Agile gerede zusammen...

demonkoryu 05. Mär 2020

Hat mir sehr geholfen mein Verständnis zu erweitern und präzisieren. Danke!


Folgen Sie uns
       


    •  /