Auch in der Software-Ent­wick­lung spielt Agilität eine immer größere Rolle. DevOps ist al­ler­dings kein her­kömm­li­ches System der Software-Ent­wick­lung, sondern geht weit darüber hinaus. Denn DevOps verändert nicht nur die Pro­duk­ti­on der Software-Varianten, sondern das gesamte Zu­sam­men­spiel innerhalb des Un­ter­neh­mens. Es handelt sich also streng­ge­nom­men um ein System der Un­ter­neh­mens­kul­tur, das sich erheblich auf Pro­duk­ti­vi­tät und Effizienz im Bereich der Software-Ent­wick­lung auswirkt.

DevOps im Überblick

DevOps ist eine Form der Un­ter­neh­mens­kul­tur, die in Un­ter­neh­men im Bereich Software und Software-Ent­wick­lung in­te­griert werden kann. Dabei handelt es sich um eine Kom­bi­na­ti­on von Her­an­ge­hens­wei­sen, Praktiken und Werk­zeu­gen, mit deren Hilfe Un­ter­neh­men die Be­reit­stel­lung von Software und deren An­wend­bar­keit deutlich be­schleu­ni­gen und zugleich die Qualität ver­bes­sern können.

Zu­sam­men­spiel von De­ve­lo­p­ment und Operation

Ein we­sent­li­ches Merkmal von DevOps ist, dass Ent­wick­lungs- und Ope­ra­ti­ons-Teams direkt zu­sam­men­ar­bei­ten und ihre Arbeit besser verzahnt wird, was bei her­kömm­li­chen Ent­wick­lungs­pro­zes­sen nicht der Fall ist. Somit können po­ten­zi­el­le Probleme im Bereich Operation bereits bei der Ent­wick­lung be­rück­sich­tigt werden, während das Ope­ra­ti­ons-Team un­mit­tel­bar vom Wissen über aktuelle Neue­run­gen pro­fi­tiert. Dies wird vor allem dann deutlich, wenn die aktuellen Her­aus­for­de­run­gen des Marktes in den Mit­tel­punkt gestellt werden. Denn Con­ti­nuous In­te­gra­ti­on und Con­ti­nuous Delivery erfordern sehr kurze Re­ak­ti­ons­zei­ten bei der Er­stel­lung neuer Produkte, neuer Versionen und aktueller Updates. Hier kann DevOps als Konzept über­zeu­gen, da die Zeiten zwischen den einzelnen Aus­lie­fe­run­gen so kurz wie möglich gehalten werden.

DevSecOps – In­te­gra­ti­on von Si­cher­heit in DevOps

Bei DevOps liegt der Fokus auf der Be­reit­stel­lung von Diensten für den IT-Betrieb – das Thema Si­cher­heit und IT-Com­pli­ance bleibt hier jedoch zunächst außen vor. Deshalb wurde der Ansatz DevSecOps ge­schaf­fen, bei dem die Kom­po­nen­ten Ent­wick­lung (De­ve­lo­p­ment) und Betrieb (Ope­ra­ti­ons) um das Element Si­cher­heit (Security) erweitert wurden. Es handelt sich also um die un­mit­tel­ba­re In­te­gra­ti­on der wich­tigs­ten Si­cher­heits­ele­men­te in den Ent­wick­lungs­pro­zess.

Au­to­ma­ti­sie­rung im Ent­wick­lungs­pro­zess

Bei DevOps werden ver­schie­de­ne agile Ent­wick­lungs­me­tho­den aus der Software-Ent­wick­lung und dem IT-Bereich mit­ein­an­der verbunden. Damit sich daraus für das Un­ter­neh­men ein Vorteil ergibt, müssen un­ter­schied­li­che Prozesse innerhalb der Ent­wick­lung au­to­ma­ti­siert ablaufen. Die Au­to­ma­ti­sie­rung umfasst in vielen Un­ter­neh­men folgende Ar­beits­be­rei­che:

  • Lösungen im Bereich der Code-Ent­wick­lung, des Code-Reviews und für das Zu­sam­men­fü­gen von Code-Schnip­seln
  • Tools zur Er­stel­lung eines neuen Builds auf Basis der aktuellen Code- und Version-Ge­ne­ra­ti­on
  • Werkzeuge zur sta­ti­schen und dy­na­mi­schen Über­prü­fung von vor­han­de­nem Code
  • Werkzeuge zur Do­ku­men­ta­ti­on und Freigabe von Release-Versionen
  • Tools im Bereich System-Ma­nage­ment als In­fra­struc­tu­re as Code (IaC)
  • Mo­ni­to­ring-Werkzeuge zur Über­wa­chung von Ap­pli­ka­tio­nen
  • Werkzeuge zum Empfang und zur Ka­te­go­ri­sie­rung von Kunden-Feedback

Werkzeuge müssen mit Bedacht ein­ge­führt und optimiert werden

DevOps ist mitt­ler­wei­le so weit ver­brei­tet, dass es eine sehr große Auswahl an passenden Werk­zeu­gen und Tools für diesen Bereich gibt. Das bedeutet al­ler­dings nicht, dass sich jedes Werkzeug oder jede Lösung für jedes Un­ter­neh­men eignet. Es ist daher besonders wichtig, erst einmal den in­di­vi­du­el­len Bedarf zu eva­lu­ie­ren, ehe man sich für bestimmte Werkzeuge ent­schei­det. Auch hierbei spielt die Kom­mu­ni­ka­ti­on zwischen den einzelnen Teams und Ar­beits­be­rei­chen eine wichtige Rolle, da alle glei­cher­ma­ßen von der Funk­tio­na­li­tät dieser Tools überzeugt sein müssen.

Es gibt auch eine ganze Reihe von Werk­zeu­gen, wie die häufig genutzten Con­ti­nuous-In­te­gra­ti­on-Tools, die im Kontext von DevOps sinnvoll und ziel­füh­rend genutzt werden können.

Die Bedeutung der Au­to­ma­ti­sie­rung für den DevOps-Prozess

Aufgrund der sehr schnellen Produkt- und Versions-Zyklen kann kaum jemand die dabei ent­ste­hen­den Zeilen an Code noch allein be­wäl­ti­gen. Das bedeutet, dass vor allem im Bereich der Feh­ler­su­che auf au­to­ma­ti­sier­te Systeme zu­rück­ge­grif­fen werden muss, um bei­spiels­wei­se einfache Code-Fehler oder Lo­gik­brü­che in der Pro­gram­mie­rung finden zu können. Die ver­schie­de­nen au­to­ma­ti­sier­ten Systeme sorgen zudem für eine ein­fa­che­re Kom­pi­lie­rung, Prüfung und ein leich­te­res Mo­ni­to­ring des gesamten Prozesses, sodass sich die zu­stän­di­gen Mit­ar­bei­ter auf die ent­deck­ten Fehler kon­zen­trie­ren können. Das ver­hin­dert nicht nur, dass feh­ler­be­haf­te­te Software auf den Markt gebracht wird, sondern erlaubt es den Experten auch, schwer­wie­gen­de Fehler schnell zu beheben.

Ohne die Lösungen im Bereich der Au­to­ma­ti­sie­rung wären die Prozesse im Bereich DevOps nur mit einem sehr hohen Personal- und Zeit­auf­wand rea­li­sier­bar, womit der Vorteil dieser Ent­wick­lungs­struk­tu­rie­rung wieder hinfällig wäre. Daher lässt sich das System nur mit passenden Werk­zeu­gen und Tools aus dem Bereich der Au­to­ma­ti­sie­rung und Struk­tu­rie­rung effizient nutzen.

Vorteile von DevOps

Das System DevOps bietet Anwendern, Käufern und Pro­du­zen­ten gleich mehrere Vorteile. Unter anderem pro­fi­tie­ren Sie von:

  • schnel­le­rer Ent­wick­lung
  • schnel­le­rer Be­reit­stel­lung von Updates und Ent­wick­lungs­ver­sio­nen
  • höherer Si­cher­heit durch kon­ti­nu­ier­li­che Prüfung
  • mehr Neue­run­gen dank schnel­le­rer Pro­duk­ti­ons­schrit­te
  • größerer Zu­ver­läs­sig­keit durch parallel laufende Tests während der Ent­wick­lung
  • mehr Si­cher­heit durch die In­te­gra­ti­on von DevSecOps
  • höherer Pro­duk­ti­vi­tät durch bessere Team-Arbeit über Team­gren­zen hinweg

DevOps hält also viele Vorteile für die Ent­wick­lung bereit, die nicht nur die Kunden betreffen, sondern sich auch im eigenen Un­ter­neh­men un­mit­tel­bar bemerkbar machen. Die Arbeit über Team­gren­zen hinweg sorgt nicht nur für einen besseren Zu­sam­men­halt und ein größeres Ver­ständ­nis für­ein­an­der, sondern ver­hin­dert auch die Bildung von Wissens-Silos innerhalb ver­schie­de­ner Ab­tei­lun­gen. Dadurch wird die Pro­blem­lö­sungs­kom­pe­tenz der Teams spürbar ver­bes­sert.

Nachteile von DevOps

Wenn die Un­ter­neh­mens­lei­tung es nicht schafft, den Mit­ar­bei­tern die Vorteile des Systems na­he­zu­brin­gen und die Mit­ar­bei­ter den damit ein­her­ge­hen­den Ver­än­de­run­gen der Ar­beits­pro­zes­se skeptisch ge­gen­über­ste­hen, besteht das Risiko, dass die Mit­ar­bei­ter das Konzept nicht mittragen und es deshalb zu Reibungen innerhalb der Teams oder zwischen einzelnen Ab­tei­lun­gen kommt. Daher ist es un­er­läss­lich, die Vorteile von DevOps gut zu kom­mu­ni­zie­ren, damit sich die Mit­ar­bei­ter nicht in ihrem per­sön­li­chen Ar­beits­be­reich ein­ge­schränkt fühlen.

Fazit

Da der DevOps-Ansatz eine er­heb­li­che Um­struk­tu­rie­rung in den ver­schie­de­nen Ab­tei­lun­gen erfordert und sich dadurch auch die Ar­beits­be­rei­che und Tä­tig­kei­ten vieler Mit­ar­bei­ter verändern, kann der Wechsel von her­kömm­li­chen Ent­wick­lungs­pro­zes­sen zu DevOps-Prozessen in einigen Un­ter­neh­men zu Schwie­rig­kei­ten führen. Ins­be­son­de­re muss die Un­ter­neh­mens­füh­rung um die Not­wen­dig­keit wissen, Ent­wick­lungs­pro­zes­se zu be­schleu­ni­gen, ohne dabei die Si­cher­heit des End­pro­dukts zu gefährden. Wurde diese Grund­be­din­gung erst einmal ver­in­ner­licht, gibt es kaum al­ter­na­ti­ve Lösungen, die sich durch so kurze Pro­dukt­zy­klen und ein so hohes Kon­troll­le­vel aus­zeich­nen wie DevOps.

Ist der Umstieg erst einmal be­schlos­sen, muss dieser umfassend geplant und mit den passenden Werk­zeu­gen gestaltet werden, damit die einzelnen Schritte der ite­ra­ti­ven Pro­zess­ent­wick­lung effizient und vor allem re­vi­si­ons­si­cher ablaufen können. Haben sich die Mit­ar­bei­ter und die Teams jedoch an die Ver­än­de­rung gewöhnt, zeigen sich bereits nach kurzer Zeit erste Erfolge. Die je­wei­li­gen Software-Angebote können nicht nur schneller auf den Markt gebracht und mit Updates versorgt werden, auch die Qualität der Lösungen ver­bes­sert sich meist deutlich, da jede Version durch die au­to­ma­ti­sier­ten Kon­trol­len und das Mo­ni­to­ring viel genauer geprüft und für den pro­duk­ti­ven Einsatz optimiert werden kann.

So lassen sich bei­spiels­wei­se Si­cher­heits­lü­cken und funk­tio­na­le Probleme einer Software schneller beheben, ohne dass dabei neue Lücken oder neue Probleme entstehen. Der Weg zur In­te­gra­ti­on des DevOps-Prozesses ist zwar häufig lang­wie­rig und her­aus­for­dernd, nach der Um­stel­lung pro­fi­tie­ren al­ler­dings sowohl die Un­ter­neh­men als auch die Kunden von dieser Lösung.

Zum Hauptmenü