Automated IT Change Planning Hauptseminar Hochskalierbare betriebliche Datenbankanwendungen 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Inhalt Motivation ITIL und wichtige Begriffe Vorstellung von 4 Lösungsansätzen Fazit 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Motivation IT-Infrastrukturen müssen hochverfügbar sein Anforderungen und Bedingungen ändern sich häufig, weshalb die IT-Infrastruktur sich ständig ändert Änderungen können zu einer Downtime führen, was im Widerspruch zur Hochverfügbarkeit steht Da Änderungen unumgänglich sind, müssen diese sorgfältig geplant werden, um Downtime zu minimieren Heutige Systeme sind so komplex, dass die Planung lange dauert und somit fehleranfällig wird Wiederkehrende Aufgaben führen zu redundanter Planung 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Motivation Hochverfügbarkeit vs. häufige Änderungen Änderungen müssen sorgfältig geplant werden Planung ist fehleranfällig und häufig redundant 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Exkurs: ITIL IT Infrastructure Library De-facto Standard im Bereich Service Management Sammlung von Good Practices Ziel: Permanente Effizienzsteigerung Quelle: [1] 25. März 2017 Automated IT Change Planning
Change Management Prozess Erfassung & Klassifizierung Planung (& Genehmigung) Implementierung Review Quelle: [2] 25. März 2017 Automated IT Change Planning
Request For Change (RFC) Was? statt Wie? 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Install Linux OS Install Application Server Install Servlet Container Install Servlet „bestsell“ Application Server Database Server Install Table „ITEM“ Install Table „AUTHOR“ Install Table „ORDERS“ Install Table „CUSTOMERS“ Install AIX OS Das Transaction Processing Performance Council, kurz TPC, ist ein 1988 gegründetes Non-Profit-Konsortium aus verschiedenen in der IT-Branche tätigen Unternehmen, das mithilfe standardisierter Benchmarks Angaben über die Leistungsfähigkeit von Transaktionssystemen und Datenbankmanagementsystemen machen möchte. Install Database Quelle: [2] 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Lösungen CHAMPS ChangeLedge ChangeLedge + Runtime Constraint-Aware Automated Refinement Hybrid Approach 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CHAMPS Change Management with Planning and Scheduling Alexander Keller (IBM Research) et al. „Achieve a very high degree of parallelism for a set of tasks by exploiting detailed factual knowledge about the structure of a distributed system from dependency information at runtime.“ 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CHAMPS - Architektur Quelle: [3] 25. März 2017 Automated IT Change Planning
CHAMPS – Dependency Tree Quelle: [3] 25. März 2017 Automated IT Change Planning
CHAMPS – Task Graph Builder Erstellt den Change Plan aus dem Dependency Tree und dem RFC Nutzt Business Process Execution Language for Webservices (BPEL4WS) <definitions targetNamespace=http://... … </definitions> <process name=„InstallServletOrders“> <partners> <partner name=„InstallServletC ontainer“> </partner> </partners> 25. März 2017 Automated IT Change Planning
CHAMPS – Planner & Scheduler Gibt Reihenfolge der Tasks an Bindet Tasks an Server und Ressourcen Legt Zeitpunkt der Ausführung fest Bedingungen: Start/Finish, Colocation, Verfügbare Server, … Optimierungsproblem: Maximierung des Profits (Nutzen – Kosten) Time 1 2 3 4 5 6 7 8 9 App Srv Install Linux OS Install Application Server Install Servlet Container … DB Srv Install AIX OS Install Database Server Install Tables 25. März 2017 Automated IT Change Planning
CHAMPS – Vor- und Nachteile Vorteile Hoher Grad an Parallelisierung wird erreicht Zeit für Scheduling skaliert gut mit der Anzahl der Aufgaben Nachteile Generalisierung der Workflows nicht möglich Keine „echte“ Wiederverwendung von Wissen 25. März 2017 Automated IT Change Planning
Automated IT Change Planning ChangeLedge Template-basierte Wiederverwendung von Wissen und Erfahrungen Luis da Costa Cordeiro (Federal University of Rio Grande do Sul, Brasilien) et al. „Use of change templates as a mechanism to formalize, preserve, and reuse the experience accumulated within organizations in relation to IT changes.“ 25. März 2017 Automated IT Change Planning
ChangeLedge – IT Infrastructure Model Modell zur Repräsentation jetziger und zukünftiger Infrastruktur-Elemente Wichtigste Elemente: Check: Bedingung, die bei Änderung berücksichtigt werden muss Action: Prozess/Operation zur Änderung eines Software-Elements Quelle: [4] 25. März 2017 Automated IT Change Planning
ChangeLedge – Request & Plan Template Request Template High Level Enthält nötige Operationen Plan Template Plan, der RFC umsetzt Kernelement von ChangeLedge, da Erfahrungen hauptsächlich hier einfließen Quelle: [4] 25. März 2017 Automated IT Change Planning
ChangeLedge - Architektur 1: Change Requester starts change process by interacting with the Change Designer. 2: The Config Mgmt Database (CMDB) provides an updated view of the IT infrastructure. Change Requester can identify involved elements. 3: RFC created „from scratch“ or taken from Change Templates repository. Repository provides templates for routine and recurrent changes, called „request templates“ 4: Operator creates a preliminary change plan. Might use „plan templates“ (containing past knowledge) from Change Templates repository. 5: Final refinement of preliminary change plan is done by a „task refiner algorithm“ as part of the Change Planner. 6: Provides information for algorithm about acceptable configurations and dependencies. 7: Resulting change plan can be modified by operator and translated to a workflow language. 8: Operator may invoke execution of the workflow. 9: Provides software packages for execution. 10: After executing the change plan, the CMDB has to be updated with perfomed changes. Request Templates: High level objectives Plan Templates: Containing past knowledge Quelle: [4] 25. März 2017 Automated IT Change Planning
ChangeLedge – Vor- und Nachteile Vorteile Templates sparen Zeit bei Erfassung und Planung Templates enthalten Erfahrungen von vorherigen Planungen Lässt Generalisierung und Spezialisierung zu Nachteile Sieht keine Optimierung vor Verfeinerung eines Change Plans nur anhand von Abhängigkeiten 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Runtime Constraints Erweiterung von ChangeLedge Bezieht Auswirkungen von früher geplanten Aktivitäten auf später zu planende Aktivitäten ein Luis da Costa Cordeiro (Federal University of Rio Grande do Sul, Brasilien) et al. „Automated refinement of runtime constraint-aware change plans, built upon the concept of incremental change snapshots of the target IT environment.“ Nutzung von ChangeLedge bedeutet, dass es das IT Infrastructure Model benutzt. 25. März 2017 Automated IT Change Planning
Runtime Constraints - Algorithmus Quelle: [5] 25. März 2017 Automated IT Change Planning
Runtime Constraints - Algorithmus Quelle: [5] 25. März 2017 Automated IT Change Planning
Runtime Constraints – Vor- und Nachteile Vorteile Auswirkungen von früheren Aktionen auf spätere werden berücksichtigt Nachteile Möglichkeiten der Verfeinerung hängen stark vom Preliminary Change Plan ab Keine Optimierung 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Hybrid Approach Kombination aus Zuständen und Aktivitäten Sebastian Hagen (TU München) „The algorithm adresses an abstraction mismatch between refinement of tasks and reasoning about the lifecycle and state-constraints of domain objects.“ 25. März 2017 Automated IT Change Planning
Hybrid Approach – Abstraction Mismatch Verfeinerung von abstrakten in detailierte Change Requests Angabe von Zuständen eines Objekts Quelle: [6] 25. März 2017 Automated IT Change Planning
Hybrid Approach – Zustände Beispiel 1: Datenbank stoppen Beispiel 2: Webserver starten 25. März 2017 Automated IT Change Planning
Hybrid Approach - Drawbacks CR1=(“set-state”, db, [goal : Running]) Database : db Running Running start stop CR2 = (“install”, db, [:]) Stopped CR3 = (“start”, db, [:]) install uninstall uninstall Uninstalled 25. März 2017 Automated IT Change Planning
Hybrid Approach - Drawbacks CR1=(“set-state”, db, [goal : Running]) Database : db Running Running start stop CR3 = (“start”, db, [:]) Stopped install uninstall uninstall Uninstalled 25. März 2017 Automated IT Change Planning
Hybrid Approach - Architektur 25. März 2017 Automated IT Change Planning
Hybrid Approach - Beispiel 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Example CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Example CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) Example CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) Example CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR13 = (“start”, db, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) Example CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) Example CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. CR4=(“set-state”, lb, [goal : Stopped]) CR6 = (“stop”, ap, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. Example CR4=(“set-state”, lb, [goal : Stopped]) CR6 = (“stop”, ap, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. Example CR4=(“set-state”, lb, [goal : Stopped]) CR6 = (“stop”, ap, [:]) CR5 = (“stop”, lb, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Operators 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Domain Object Model +description : String +state : String +version : int LoadBalancer : lb +stop() : boolean +start() : boolean +install(): boolean +uninstall() : boolean Von Operator aufgerufen 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Domain Object Model +description : String +state : String +version : int Apache : ap +stop() : boolean +start() : boolean +install(): boolean +uninstall() : boolean called by operator 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR11=(“test2”, db, [:]) …………. CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Domain Object Model +description : String +state : String +version : int Database : db +stop() : boolean +start() : boolean +install(): boolean +uninstall() : boolean Von Operator aufgerufen 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR13 = (“start”, db, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Operators 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR6 = (“stop”, ap, [:]) Example Knowledgebase Domain Object Model +description : String +state : String +version : int Database : db +stop() : boolean +start() : boolean +install(): boolean +uninstall() : boolean Von Operator erhöht 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) Example CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. CR4=(“set-state”, lb, [goal : Stopped]) CR6 = (“stop”, ap, [:]) CR5 = (“stop”, lb, [:]) 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) CR2=(“set-state”, db, [goal : Stopped]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR12=(“set-state”, db, [goal : Running]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR4=(“set-state”, lb, [goal : Stopped]) CR5 = (“stop”, lb, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. CR6 = (“stop”, ap, [:]) Example 25. März 2017 Automated IT Change Planning
Automated IT Change Planning CR1=(“patch”, db, [:]) Example CR2=(“set-state”, db, [goal : Stopped]) CR12=(“set-state”, db, [goal : Running]) CR8 = (“update”, db, [:]) CR9=(“test”, db, [:]) CR13 = (“start”, db, [:]) CR3=(“set-state”, ap, [goal : Stopped]) CR7 = (“stop”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) …………. …………. CR4=(“set-state”, lb, [goal : Stopped]) CR6 = (“stop”, ap, [:]) 25. März 2017 Automated IT Change Planning CR5 = (“stop”, lb, [:])
Hybrid Approach – Change Plan CR5 = (“stop”, lb, [:]) CR6 = (“stop”, ap, [:]) CR7 = (“stop”, db, [:]) CR8 = (“update”, db, [:]) CR10=(“test1”, db, [:]) CR11=(“test2”, db, [:]) CR13 = (“start”, db, [:]) 25. März 2017 Automated IT Change Planning
Hybrid Approach – Vor- und Nachteile Vorteile Kombiniert zwei Abstraktionsebenen Berücksichtigt auch Informationen über Zustände von Objekten Nachteile Weiterhin keine Optimierung Unflexibel bei Änderungen der Bedingungen 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Fazit Es existieren verschiedene Ansätze um Change Planning zu automatisieren Alle Ansätze lösen nur ein bestimmtes Problem, eine ganzheitliche Lösung gibt es noch nicht Optimierung bleibt ein offenes Feld 25. März 2017 Automated IT Change Planning
Automated IT Change Planning Quellen [1] http://de.wikipedia.org/w/index.php?title=Datei:ITILV3Prozesse.jpg&filetimestamp=20090120154931 [2] http://de.wikipedia.org/wiki/ITIL [3] „The CHAMPS System: Change Management with Planning and Scheduling“, A. Keller [4] „A Template-based Solution to Support Knowledge Reuse in IT Change Design“, Luis da Costa Cordeiro [5] „A Runtime Constraint-Aware Solution for Automated Refinement of IT Change Plans“, Luis da Costa Cordeiro [6] „One Is Not Enough: A Hybrid Approach for IT Change Planning“, Sebastian Hagen 25. März 2017 Automated IT Change Planning