Automating the Provisioning of Application Services

IBM T.J. Watson Research Center
Automating the Provisioning
of Application Services with
the BPEL4WS Workflow Language
Alexander Keller
IBM T.J. Watson Research Center
Remi Badonnel
LORIA-INRIA Lorraine
11/15/2004 | IFIP/IEEE Workshop on Distributed Systems: Operations & Management | Davis, CA, USA
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Problem Statement
ƒ ITIL Change Management Process increasingly widely adopted
ƒ Provisioning addresses the technical side of Change Management
¾
Comprises deployment, installation, configuration management tasks
ƒ CHAMPS* Change Management System generates provisioning workflows
¾
from dependency descriptions, SLAs
¾
with a significant degree of concurrent execution
¾
In a general-purpose workflow language (BPEL4WS)
?
HOWEVER
ƒ Today’s Provisioning Systems
¾
use proprietary scripting/workflow languages
¾
do not leverage the full potential of general-purpose workflow languages
• concurrent task execution, links, branching and loop constructs
¾
make it hard to extend the set of workflows dynamically
¾
are not well integrated into the Change Management Process
* Keller et al., The CHAMPS System, Proceedings of NOMS 2004
2
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
CHAMPS
Conceptual Architecture
ƒ Approach: Integrate general-purpose
Workflow Engine with Provisioning System
Bill of Materials:
ƒ CHAMPS Change Manager
¾Input:
Dependency Models (static & runtime)
¾Output:
Schedule, expressed as Workflow
¾Task
& Target & Time (& precedence
constraints)
ƒ Off-The-Shelf Provisioning System
¾Tivoli
Intelligent Orchestrator
¾Exposes
Package
repository
Change Manager
Change
Plan
Workflow Status
Provisioning General-purpose
System
Workflow
Engine
Provisioning
Operations
its operations as Web Services
Status Data
Deployment
Engine
each Resource Type has own .wsdl file
¾Scripts/workflows implement these operations
ƒ General-purpose Workflow Engine
¾Able
to interpret workflows in BPEL4WS
¾BPEL
Invoke statements refer to operations
exposed by Provisioning system
¾Keeps
3
Installation
Configuration
Targets
track of operation execution status
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Details on
CHAMPS/TIO
Integration
CHAMPS
BPEL
Change
Plan
Workflow
Status
Change Manager
BPEL Workflow Engine (BPWS4J)
BPEL
Change Plan
Software.install
(IHS.Linux.v2.0,
9.2.9.63)
RequestID
=
10021
Request.getStatus
(10021)
Status
=
in progress
WSDL Interfaces
Tivoli Intelligent Orchestrator
Deployment Engine
Tivoli Intell.
Orchestrator
Database
Installation
Targets
4
Automated Provisioning with BPEL4WS
IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
2 Views on the Provisioning Process
ƒ BPWS4J Engine
¾Logs
the Activities in
the Change Plan on a
per-Sequence Basis
¾Order:
CHAMPS
BPEL
Change
Plan
Change Manager
BPWS4J Workflow Engine
Top to Bottom
ƒ Tivoli Int. Orchestrator
BPEL
Change Plan
¾Displays
the
Sequence of TIO
Workflows
¾Order:
Workflow
Status
Bottom to Top
Software.install
(IHS.Linux.v2.0,
9.2.9.63)
RequestID
=
10021
Request.getStatus
(10021)
Status
=
in progress
WSDL Interfaces
Tivoli Intelligent Orchestrator
Deployment Engine
Installation
Targets
5
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Demo: Concurrent Provisioning of 2 Websites with BPEL
ƒ Start:
IHS.Linux.V20.tar
¾2
Linux Systems without http Server
¾1
IHS 2.0 Package; 2 zip-Files w/ Web Content
¾1
Change Plan for provisioning them
WSLA.zip
BPEL
Change
Plan
ƒ Load the BPEL Change Plan in BPWS4J:
¾Sequences/Flows
¾Partner
DSOM2003.zip
of Actions
Identifications
ƒ Execute the BPEL Change Plan
¾Done
by BPWS4J Engine
¾Trigger
TIO Logical Operations
¾Monitor
Execution Status:
From BPWS4J
From TIO
¾When
1 Task completes, start next
ƒ Result:
¾2
different Websites serving different
Web Content
6
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
WSDL Invoke-by-Name Wrappers for TIO
ƒ WSDL interfaces allow us to access functions of TIO as Web Services.
ƒ We created 3 WSDL interfaces that wrap the TIO Web Services:
¾
¾
To invoke logical operations using real parameters (not TIO IDs) and get back a
requestID.
Extract SoftwareName and Target IP address from execution request
Map SoftwareName and Target IP address to the corresponding TIO IDs
Invoke the “real” TIO SoftwareComponentService
To check the status of an operation execution from a requestID.
WSDL Interface SoftwareComponent
install (SoftName,IP): requestID
uninstall (SoftName,IP): requestID
start (SoftName,IP): requestID
…
WSDL Interface FileRepositoryComponent
getFile (SoftName,IP): requestID
putFile (SoftName,IP): requestID
removeFile (SoftName,IP): requestID
…
7
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
WSDL Interface RequestComponent
getStatus (RequestID): status
getStartTime (RequestID): startTime
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Concurrent Invocation of Provisioning Operations
ƒ Executing flows
Flow
Sequence 1
Target
System
Cuda
Sequence 2
Target
System
Charger
8
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Monitoring Task Execution Status in the Change Plan
Operation
Invocation
Operation
Status
Checking
WSDL interface
SoftwareComponent
9
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
WSDL interface
RequestComponent
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Enforcing Deadlines and Durations
Change
Management
Operation
Scope
Event
Handler
for Scope
Corrective
Operation
Duration or Deadline
Specification
10
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
Send Alarm to the
CHAMPS Change Manager
11/15/2004
© 2004 IBM Corporation
IBM T.J. Watson Research Center
Status, Lessons learned & Outlook
ƒ Workflow-driven Provisioning with general-purpose Workflow Engine
¾
Integration of Change Manager & COTS Provisioning System
¾
Dynamically extends Provisioning system Capabilities without modifying its code
¾
Makes it understand general-purpose BPEL4WS workflow language
ƒ BPEL4WS is a viable approach to express Change Management Workflows
¾
Concurrent execution, Deadlines, Links across different workflows
¾
Open Standard (OASIS WSBPEL Technical Committee)
¾
Change Plans can be created/modified with general-purpose Workflow Editors
¾
Workflow Engine can be used as pluggable Component in Provisioning Systems
Current Work Items
ƒ Replace the polling based approach for status retrieval with Subscriptions
ƒ More complex scenario: SPECjAppServer2004 + its Middleware Stack
ƒ Quantitative Analysis of Automation Benefits – at IM 2005(?)
11
¾
Reduction of configuration complexity
¾
Speedup of provisioning task execution
Provisioning with BPEL4WS IFIP/IEEE DSOM 2004
11/15/2004
© 2004 IBM Corporation