1 Overview of Oracle Virtual Assembly Builder Deployer

The following sections introduce the Web Service API and its development processes:

1.1 Introduction

The Oracle Virtual Assembly Builder Deployer is a J2EE application that maintains a repository of assembly archives, and manages deployment aspects of the software system contained therein. You create assembly archives in Oracle Virtual Assembly Builder Studio.

The Deployer provides operations for registering the assembly archives to virtualized systems such as Oracle VM and for orchestrating the deployment of the software system defined by the assembly archive.

The assembly archives created by Oracle Virtual Assembly Builder Studio contain information about a software system comprised of multiple, related software stacks which work together to form an application. This system is referred to as an assembly. The assembly archive contains metadata about the assembly and virtual machine templates that are used to instantiate an instance of the assembly in a virtualized environment.

The interface to the Oracle Virtual Assembly Builder Deployer is a Web service which provides operations for uploading assembly archives to its repository, registering the assembly archive with the virtualization system and managing deployment instances for the system defined in the assembly archive.

Oracle Virtual Assembly Builder provides additional interfaces as part of the complete product solution. Specifically, Oracle Virtual Assembly Builder Studio and the abctl command-line interface integrate with the Web Services.

As described in Section 1.4, "Targets", Oracle Virtual Assembly Builder Deployer can deploy to targets in Oracle VM. The minor functional differences between these environments are described throughout the documentation.

1.2 Deployment Lifecycle

This section describes the deployment lifecycle including the uploading of assembly archives to the Deployer repository, and the deployment phases of an assembly instance.

1.2.1 Uploading Assembly Archives

Oracle Virtual Assembly Builder Deployer is a Web service which provides operations for uploading assembly archives to its repository.

1.2.1.1 Versioning of Assembly Archives

The Deployer repository allows you to keep multiple versions of an assembly archive in the repository at the same time. When an assembly archive is uploaded, the Deployer will assign a version number to it.

The versioning format increments in whole number units (for example, versions 1, 2, 3, and so on). The latest version is generally considered the default for assembly operations that take a version. If another assembly archive of the same name is uploaded, then it will get the next version.

1.2.2 Deployment Phases

An assembly instance is a deployable artifact. You would need to create an assembly instance by selecting an assembly, one of the its deployment plans and the target to which it must be deployed to. CreateAssemblyInstance can be used to create the assembly instance.

At deployment time, you choose the assembly instance to be deployed. Deployment of an assembly instance will transition through various phases (Figure 1-1). The phases include: Staged, Deployed, and Failed. Each state allows a subset of operations.

An appliance instance is an instance of an appliance running and/or created in the target virtual environment. When an assembly instance is deployed, you may start and stop the appliance instances, or you may increase or decrease the number of appliance instances associated with that deployed assembly instance. Oracle Virtual Assembly Builder does not monitor the health of the deployed application; it will only inform you of whether or not an assembly is deployed or staged, as well as the success or failure of a deployment-related operation.

Figure 1-1 Deployment Life Cycle

Description of Figure 1-1 follows
Description of "Figure 1-1 Deployment Life Cycle"

Here is a summary of the assembly instance phases:

  • Deployed When the assembly instance is deployed and the operation has successfully completed, it reaches the deployed state. The operations that can be performed on a Deployed assembly instance are:

    • StopAssemblyInstance This operation will shut down all the running appliance instances for the assembly instance. The assembly instance is transitioned to the Staged phase after this operation is completed. It leaves the appliance instances in the virtualized environment so that they can be restarted later.

    • UndeployAssemblyInstance This operation will stop all the running appliance instances and remove them from the environment. After this operation is completed, the assembly instance will kept in the system so that it can be deployed again.

    • RestartAssemblyInstance This operation will restart all the running appliance instances of the assembly instance. The assembly instance will transition to the Staged and then transition back to Deployed.

    • RedeployAssemblyInstance This operation will redeploy the assembly instance. As part of this operation all appliance instances will be stopped and removed from the target environment. New appliance instances will be created and started.

    • Scale Scales the scaling group within an assembly instance. Scaling can be performed to scale up or down a scaling group with the assembly instance. The number of appliance instances that can be running for a scaling group must lie between its configured minimum and maximum instance limits. The Deployment continues to remain in the Deployed state.

  • Failed When there is a failure in a deploy or undeploy operation, the assembly instances reaches this phase. A deployment operation may fail for a variety of reasons, such as insufficient resources. The operations that can be performed on a failed deployment are:

    • DeleteAssemblyInstance This operation will do the necessary cleanup (such as stopping and removing the appliance instances). After this operation is completed, the assembly instance no longer exists.

  • Staged The staged phase is reached by stopping an assembly instance. In this phase all the appliance instances have been shut down. The operations that can be performed from this phase are:

    • StartAssemblyInstance This operation will start up all the appliance instances that have been shut down. After this operation is completed, the assembly instance is returned to the Deployed state.

    • UndeployAssemblyInstance This operation will remove all the appliance instances that have been shut down from the virtualized environment. After this operation is completed, the assembly instance will be kept around so that it can be deployed again.

1.3 Deployer Architecture

Oracle Virtual Assembly Builder Deployer is configured as a Web application in a WebLogic Server domain.

Figure 1-2 shows the top-level components of the Oracle Virtual Assembly Builder Deployer. The Deployer Repository contains the assembly archives and any deployment plans uploaded to the Deployer by the Web client. Assembly archives and deployment plans are created in Oracle Virtual Assembly Builder Studio, however, the repository maintained by the Deployer is separate from the Oracle Virtual Assembly Builder Studio catalog. Plans created in Oracle Virtual Assembly Builder Studio are uploaded to the Deployer through the Web service API. Runtime and configuration state for the Deployer is maintained in a distributed Coherence cache that is persisted so that single instance installations may recover in the case of a failure (that is, the Deployer process exits). The Deployer interacts with one or more virtualization systems and orchestrates the deployment of assembly archives into these systems.

Figure 1-2 Deployer Architecture

Deployer architecture

1.4 Targets

Different virtualization systems organize their resources in different ways and require different information for referencing and accessing them. In order to provide a common user experience across different systems, Oracle Virtual Assembly Builder Deployer defines the notion of a target. Targets are configured using administration interfaces defined later in this document and are used to reference a resource or pool of resources in the virtualized system. The configuration information provided for each target is specific to the virtualization system containing the target.

Oracle Virtual Assembly Builder Deployer provides support for deploying assembly instances to targets on Oracle VM.

1.5 Tags

Certain virtualization systems allow tags to be associated with artifacts such as templates and VM instances which may be queried by tools interacting with the system to locate artifacts or to find relationships between artifacts, for example finding the artifacts that are associated with a particular deployment.

In systems that support tagging, the Oracle Virtual Assembly Builder Deployer automatically adds tags to certain artifacts it creates. Table 1-1 provides information on these tags. The values for the tags are always strings, but certain ones may be interpreted as other types. The Data Type column indicates these types. For example, if the Data Type is Integer, then the value will be a string like “123”, which can be interpreted as the number 123. The Oracle VM Artifact column indicates what kind of artifact or artifacts a particular tag is to be associated with.

Table 1-1 Oracle Virtual Assembly Builder Deployer Tags

Key Name Data Type Oracle VM Artifact Description Example

ovab:AssemblyArchiveName

String

Instance,

template

The name of the assembly archive used to create the template that is the source of the instance

MySite.ova

ovab:TemplateId

String

Instance

The Oracle VM name of the template that is the source of the instance.

234jlk234jj3lkj43

ovab:TemplateRepositoryName

String

Instance

The name of the repository containing the template that is the source of the instance.

MyRepository

ovab:AppliancePath

String

Instance

The path to the appliance within the Oracle Virtual Assembly Builder assembly. This is used to determine the instance's place in the original assembly structure.

/MyWls/EjbCluster

ovab:ApplianceInstanceIndex

Integer

Instance

The appliance instance index.

2

ovab:ComponentType

String

Instance

The appliance type determined by Oracle Virtual Assembly Builder introspection.

WLS

ovab:DeployerId

String

Instance,

assembly archive,

template

An identifier for the Deployer instance that created the artifact.

 

ovab:AssemblyInstanceId

String

Instance

An identifier for the assembly instance that is unique within the scope of the Deployer instance

Lkj234lk32j4lkj34

ovab:DeploymentPlan

String

Instance

The name of the deployment plan used for the deployment that the instance is a part of.

MyPlan

ovab:UserName

String

Template,

assembly archive,

instance

The name of the user that initiated the deployment operation that lead to the creation of the artifact.

John

ovab:InitialTargetCount

Integer

Instance

The initial target for the number of instances at deployment time.

5

ovab:ScalabilityMin

Integer

Instance

The minimum number of instances allowed for the appliance.

1

ovab:ScalabilityMax

Integer

Instance

The maximum number of instances allowed for the appliance.

10


1.6 Metadata-Driven Functionality

The details of the deployment orchestration are driven by OVF metadata which is embedded in the assembly archive that represents the application, and information stored in a deployment plan which you provide when creating a deployment.