0
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Asynchronous Provisioning Platform (APP)
Service Catalog Manager - IaaS Integration
1
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Overview
■ Threaded / timer-based provisioning (as background operation) (including resume after system shutdown)
■ Double-layered provisioning (provisioning on new created instance)
■ Concurrency handling
■ Persistency layer for service parameters (and custom data)
■ Asynchronous handling of synchronously invoked operations
(e.g. modify, delete, create users …)
■ Manual interactions during provisioning
■ Notification handling (e.g. mail-based exception handling)
Implementing an asynchronous provisioning service
(e.g. for IaaS) most often requires complex implementation effort:
CT-MG provides an “Asynchronous Provisioning Platform (APP)” for simplifying the implementation of such provisioning services.
2
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Basic Architecture
CT-MG Subscription Management APP Service Controller A Service Controller B Notification Handler DB DB Application Instance (A) Application Instance (A) Application Instance (B) Provisioning Service Mail Server Manual Notification (REST)CT-MG APP Custom
Provisioning Service
Proxy Timer
3
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
ISV-1
Usage Scenarios
CT-MG APP
ISV-1
Platform Operator
ISV-2
A. Cloud Store-1 (APP operated by platform operator)
B. Cloud Store-2 (APP operated by service provider)
CT-MG
APP Platform Operator
ISV-2
APP
C. Enterprise Solution Store
CT-MG APP
App-1
Platform Operator
4
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Roles & Organizations
■ BSS_USER_KEY/ BSS_USER_ID:
■ Defines user account for basic CT-MG web service access
■ Using a separate technical user account is recommended
■ APP Admin:
■ Any administrator of the organization defined by "BSS_USER_KEY”
■ Registering organization IDs for deployed controllers
■ Controller Admin:
■ Any technology manager of the organization registered for controller
■ Access to APP notification handler
■ Access to controller-specific configuration
APP supports separate roles for APP and controller administrators
5
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Architecture
■ Interfaces:
■ Remote interfaces defined in separate project
■ APPlatformController: APP core => Controller
■ APPlatformService: Controller => APP core
■ Lookup using JNDI
■
Deployment:
■
APP core as EAR file (
fujitsu-bss-app.ear
)
■
Each controller as EAR file
■
Persistence:
■
APP core uses Hibernate/JPA
6
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Data Model
■
configurationsetting:
■ Key/Value store for global settings
■ APP global setting (BSS URL, BSS user, mail server, …)
■ Controller-specific settings (organization ID, controller configuration)
■
serviceinstance:
■ Representing the deployed service instances
■ APP-specific information (flow state, locking, manual, …)
■ CT-MG-specific information (subscription ID, organization ID, …)
■
instanceparameter:
■ Key/Value store for controller-specific instance data
7
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Controller Development - Preparation
■ Get access to the target system. Log in and understand the basics of service patterns (VMs, orchestrations, additional services)
■ Get the current API documentation
■ Try to provision certain basic patterns
■ Define use cases in cooperation with stakeholders
8
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Controller Development - Implementation
■ Design service mapping from backend service to CT-MG
■ Design parameter mapping according to defined use cases
■ Implement component test cases (jUnit)
■ Implement the controller
■ Test and improve
■ Implement configurable template as sample
■ Implement a technical service as sample
9
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Implementation - Tasks
Key tasks:■ Define provisioning process
■ Identify necessary steps and respective API
■ Define flow states
■ Implement dispatcher (communication with target API, stepping through the process flow, generating feedback)
Questions:
■ Are manual provisioning steps required?
10
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Implementation - Manual Steps
■ Complex provisioning processes might include manual steps
■ Operations not (easily) reachable by API e.g. tenant creation, documentation
■ Controller detects need for manual steps
■ Create resume callback with event service URL for platform service
■ Notify responsible person by e.g. sending mail
■ Pause status polling from APP by setting flag of instance status
■ Notification handler gets resume request and restarts polling the controller => automated processing continues
11
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Controller Development - Deployment
■ Deploy the controller on the APP domain
■ Register the controller on APP (via the APP Configuration UI)
■ Apply the controller settings (either via SQL or the APP Configuration UI)
■ Import the technical service
■ Deploy the template
■ Create a marketable service for the customer store on a test system
■ Create a price model according to the available usage information
■ Test subscribing, updating and terminating the service
■ Start integration tests
12
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Example – VMware Service Subscription
CREATION REQUESTED
VMware APP Controller
Creation of a new VMware instance is requested.
CREATING VMware
VCenter (ESX Server)
New VMware instance is created by specified template (Clone).
CloneVM
UPDATING Custom VMware parameters are defined (CPU, RAM,...)
ReconfigureVM STARTING RETRIEVE GUEST_INFO PowerOnVM Guest Info (VM_Tools) FINISHED CT-MG/APP WAITING_FOR SYSTEM CREATION COMPLETED CT-MG/BES
asyncCreateInstance ( )
completeAsyncSubscription( )
FAILED
abortAsyncSubscription( ) updateAsyncSubscriptionProgress( )
VMware is started. This will configure DNS specific settings as well (on guest system)
IP and hostname is retrieved. success success success success error MANUAL INTERACTION Additional manual operation of the IT department MANUAL OPERATIONS send eMail notification via servlet interface getStatus( ) finished or failed? IT department
13
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Example – VMware Service Termination
VMware APP Controller STOPFOR DELETION VMware VCenter (ESX Server)
Stop VMware instance
PowerOffVM
DELETING Destroy VMware instance
DestroyVM DESTROYED CT-MG/APP COMPLETED (deletes service info) CT-MG/BES
deleteInstance ( )
FAILED success success error Remove Subscription RC: ok WAITING_FOR SYSTEM DELETION DELETION REQUESTED IT department
Send e-Mail Notification Handler Send e-Mail
14
INTERNAL USE ONLY
INTERNAL USE ONLY Copyright 2014 FUJITSU
Example – VMware Service Update
VMware APP Controller STOPFOR MODIFICATION VMware VCenter (ESX Server)
Stop VMware instance
PowerOffVM
UPDATING Updated VMware parameters are defined (CPU, RAM)
ReconfigureVM STARTING CT-MG/APP COMPLETED CT-MG/BES modifyParameterSet( ) success success WAITING_FOR SYSTEM MODIFICATION MODIFICATION REQUESTED RETRIEVE GUEST_INFO PowerOnVM Guest Info (VM_Tools) FINISHED FAILED
Revalidate IP and hostname
success
success
error
VMware is started.
RC: ok IT department Notification Handler Send e-Mail Send e-Mail
15
INTERNAL USE ONLY