{"id":829,"date":"2013-09-27T13:37:33","date_gmt":"2013-09-27T11:37:33","guid":{"rendered":"https:\/\/cabp.server-ip.info\/?p=829"},"modified":"2023-12-05T11:25:18","modified_gmt":"2023-12-05T10:25:18","slug":"continuousagilelean-delivery","status":"publish","type":"post","link":"https:\/\/www.cabp.de\/index.php\/continuousagilelean-delivery\/","title":{"rendered":"[continuous|agile|lean] delivery"},"content":{"rendered":"<p>Es ist gesch\u00e4ftskritisch die Durchlaufzeit von \u00c4nderungen an Software zu reduzieren um eine neue Version so schnell wie m\u00f6glich in ein funktionierendes System zu wandeln. W\u00e4hrend manche Unternehmen sich heute noch Zykluszeiten von mehreren Monaten erlauben, bringen andere schon mehrfach t\u00e4glich eine neue Version in Produktion.<\/p>\n<p>Zur Verk\u00fcrzung der cycle-time und zur Reduktion des Release-Risikos ist eine konsequente Vollautomatisierung der Delivery und Quality Assurance \u00fcber alle Stages hinweg essentiell \u2013 und das sowohl f\u00fcr Dev als auch Ops! Wie lange dauert ein Change in Ihrer Organisation, eine \u00c4nderung an einer einzigen Zeile Code in Produktion zu bringen?<\/p>\n<p><a href=\"https:\/\/cabp.server-ip.info\/continuousagilelean-delivery\/deployment-pipeline\/\" rel=\"attachment wp-att-830\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-830\" alt=\"Deployment-Pipeline\" src=\"https:\/\/cabp.server-ip.info\/wp-content\/uploads\/Deployment-Pipeline-300x184.jpg\" width=\"493\" height=\"302\" \/><\/a><\/p>\n<p>Im Gesch\u00e4ftsbereich Software Engineering (SE) reifen \u2013 insbesondere in der Entwicklung (Dev) &#8211; 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\u00e4t den Erfordernissen noch deutlich hinterher.<\/p>\n<p>F\u00fcr Middleware-Ops muss eine die Deployment-Pipeline implementierend Werkzeugkette vor Allem individuelle Konfigurationsprozesse abbilden k\u00f6nnen und diesen durch kontinuierlich und dezentral (weiter)entwickelter Automatisierungsketten und \u2013bausteinen flexibel halten.<br \/>\nNeben einem anpassbaren Datenmodell in XML zur dezentral verantworteten Datenhaltung und inter-system-kommunikation \u00fcber Webservices ist die strikte Versionierung der Konfiguration und die Nachvollziehbarkeit von \u00c4nderungen durch Logging und Reporting ist schlicht notwendig.<\/p>\n<p>Nicht zuletzt ist auch eine Integrationen in weitere Prozessbereiche wie z.B. Product Lifecycle Management (PLM), IT-St\u00f6rungsmanagement, etc. w\u00fcnschenswert. So wird ein zentraler IT-Betrieb, bei gleichzeitiger dezentraler Konfiguration f\u00fcr Projekte, Mandanten oder Gruppen m\u00f6glich.<\/p>\n<p>&nbsp;<\/p>\n<h2>Continous Delivery<\/h2>\n<p>Jeder kennt und viele f\u00fcrchten diese Wochenenden, an denen ein System Upgrade ausgerollt werden soll, bevor am Montag sich die Sonne \u00fcber 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.<\/p>\n<p style=\"text-align: left; padding-left: 30px;\">\u00a0<i> \u201eDeploy the same artifacts in every environment\u201c<\/i><\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><i>\u201eKeep everything in version control\u201c<\/i><\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><i>\u201eAutomate almost everything\u201c<\/i><\/p>\n<p>\u00a0Die Continous Delivery beschreibt den Prozess f\u00fcr 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\u00dfgabe implementiert. Dazu geh\u00f6rt:<\/p>\n<ul>\n<li>continuous integration and deployment<\/li>\n<li>data management<\/li>\n<li>configuration management<\/li>\n<li>environment management<\/li>\n<li>automated testing<\/li>\n<li>release management<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u00a0Agile Delivery<\/h2>\n<p>Der zunehmende Einsatz komplexer Middleware verschiebt ma\u00dfgebliche Aufw\u00e4nde aus der Softwareentwicklung\u00a0 (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.<\/p>\n<p>System Engineering ist im Betrieb (OPS) hingegen noch immer weitgehend einem statischen Idealbild verhaftet. Und die notwendigen Schritte hin zu einer anforderungsgetriebenen zunehmend m\u00e4chtigen und komplexen Middleware stehen aus. Jede \u00c4nderung ist\u00a0 ein ma\u00dfgeblichen Risiko, das die Stabilit\u00e4t gef\u00e4hrdet; im Zeitalter eines \u201eagile\u201c Megatrends.<\/p>\n<p>&nbsp;<\/p>\n<h2>Lean Delivery<\/h2>\n<p>Eines der Dinge, die Lean Management lehrt ist, das Ganze zu optimieren. Dazu geh\u00f6rt es, kurze und effektive feedback-Schleifen zu etablieren, die eine kontinuierliche und dezentrale Entstehung und Verbesserung erm\u00f6glichen. Der nat\u00fcrlich iterative Evolutionsprozess gilt gleicherma\u00dfen 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!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es ist gesch\u00e4ftskritisch die Durchlaufzeit von \u00c4nderungen an Software zu reduzieren um eine neue Version so schnell wie m\u00f6glich in ein funktionierendes System zu wandeln. W\u00e4hrend manche Unternehmen sich heute noch Zykluszeiten von mehreren Monaten erlauben, bringen andere schon mehrfach t\u00e4glich eine neue Version in Produktion. Zur Verk\u00fcrzung der cycle-time und zur Reduktion des Release-Risikos [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/posts\/829"}],"collection":[{"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/comments?post=829"}],"version-history":[{"count":13,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/posts\/829\/revisions"}],"predecessor-version":[{"id":3647,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/posts\/829\/revisions\/3647"}],"wp:attachment":[{"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/media?parent=829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/categories?post=829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cabp.de\/index.php\/wp-json\/wp\/v2\/tags?post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}