[continuous|agile|lean] delivery

Es ist geschäftskritisch die Durchlaufzeit von Änderungen an Software zu reduzieren um eine neue Version so schnell wie möglich in ein funktionierendes System zu wandeln. Während manche Unternehmen sich heute noch Zykluszeiten von mehreren Monaten erlauben, bringen andere schon mehrfach täglich eine neue Version in Produktion.

Zur Verkürzung der cycle-time und zur Reduktion des Release-Risikos ist eine konsequente Vollautomatisierung der Delivery und Quality Assurance über alle Stages hinweg essentiell – und das sowohl für Dev als auch Ops! Wie lange dauert ein Change in Ihrer Organisation, eine Änderung an einer einzigen Zeile Code in Produktion zu bringen?

Deployment-Pipeline

Im Geschäftsbereich Software Engineering (SE) reifen – insbesondere in der Entwicklung (Dev) – seit mehr als einem Jahrzehnt agile Praktiken und Methoden. Diese haben sich unter dem Stichwort Continuous Integration (CI) auch in einer unverzichtbaren Werkzeugkette niedergeschlagen. Im Betrieb (OPS) von Middleware hingegen, hinkt die Realität den Erfordernissen noch deutlich hinterher.

Für Middleware-Ops muss eine die Deployment-Pipeline implementierend Werkzeugkette vor Allem individuelle Konfigurationsprozesse abbilden können und diesen durch kontinuierlich und dezentral (weiter)entwickelter Automatisierungsketten und –bausteinen flexibel halten.
Neben einem anpassbaren Datenmodell in XML zur dezentral verantworteten Datenhaltung und inter-system-kommunikation über Webservices ist die strikte Versionierung der Konfiguration und die Nachvollziehbarkeit von Änderungen durch Logging und Reporting ist schlicht notwendig.

Nicht zuletzt ist auch eine Integrationen in weitere Prozessbereiche wie z.B. Product Lifecycle Management (PLM), IT-Störungsmanagement, etc. wünschenswert. So wird ein zentraler IT-Betrieb, bei gleichzeitiger dezentraler Konfiguration für Projekte, Mandanten oder Gruppen möglich.

 

Continous Delivery

Jeder kennt und viele fürchten diese Wochenenden, an denen ein System Upgrade ausgerollt werden soll, bevor am Montag sich die Sonne über den Horizont schiebt. Was nutzt ein integrierter (Oracle) Middleware Stack, wenn der Entwicklungs-, Deploy- und Releaseprozess nicht integriert sind? Wie stopft man das lang vergessene Loch zwischen Development und Operations? Wie bekommt man diese letzte Meile in den Griff? Eine funktionierende CI ist dabei nur ein erster Schritt! Neben Code sind Konfiguration, Middleware-Stack, Daten und Systemkontext fragil, komplex und kritisch.

  „Deploy the same artifacts in every environment“

„Keep everything in version control“

„Automate almost everything“

 Die Continous Delivery beschreibt den Prozess für DevOps. Ziel ist die Integration der verschiedenen Aufgaben und Funktionen in einer Deployment Pipeline, die Bereiche des Change-, Build-, Requirements-, Integrations-, Release- und Test-Management unter agiler Maßgabe implementiert. Dazu gehört:

  • continuous integration and deployment
  • data management
  • configuration management
  • environment management
  • automated testing
  • release management

 

 Agile Delivery

Der zunehmende Einsatz komplexer Middleware verschiebt maßgebliche Aufwände aus der Softwareentwicklung  (Dev) in den Betrieb (Ops). Auch die Middleware und damit Middleware-Ops, ist zunehmen im Sog dynamischer und sich entwickelnder Anforderungen. Und das meint wandelbare, sich im Zeitablauf entwickelnde Anforderungen an Middleware und deren effiziente und qualitativ hochwertige Umsetzung.

System Engineering ist im Betrieb (OPS) hingegen noch immer weitgehend einem statischen Idealbild verhaftet. Und die notwendigen Schritte hin zu einer anforderungsgetriebenen zunehmend mächtigen und komplexen Middleware stehen aus. Jede Änderung ist  ein maßgeblichen Risiko, das die Stabilität gefährdet; im Zeitalter eines „agile“ Megatrends.

 

Lean Delivery

Eines der Dinge, die Lean Management lehrt ist, das Ganze zu optimieren. Dazu gehört es, kurze und effektive feedback-Schleifen zu etablieren, die eine kontinuierliche und dezentrale Entstehung und Verbesserung ermöglichen. Der natürlich iterative Evolutionsprozess gilt gleichermaßen in beiden Bereichen; dem Software- und System-Engineering. Im Geiste des Lean Management gilt es, drei wesentliche Punkte in einer Continous Delivery zu implementieren: Feedback, Learning, Flow!