2 Architecture

This chapter describes the architecture of Oracle Virtual Assembly Builder, and contains the following sections:

2.1 Major Components

This section describes the major components of Oracle Virtual Assembly Builder.

2.1.1 Oracle Virtual Assembly Builder Studio

Oracle Virtual Assembly Builder Studio is the component that allows users to create assemblies, and has two interfaces, the Oracle Virtual Assembly Builder Studio GUI and the abctl command-line interface.

Oracle Virtual Assembly Builder Studio and abctl interact with Oracle Virtual Assembly Builder Deployer as a Web client as shown in Figure 2-2. Oracle Virtual Assembly Builder Studio provides a Deployer user interface whereby deployments can be initiated from Oracle Virtual Assembly Builder Studio and leverage the Oracle Virtual Assembly Builder Deployer.

2.1.1.1 High-Level Catalog Overview

The Oracle Virtual Assembly Builder Studio catalog contains the metadata definitions of appliances and assemblies that are the result of introspection. The captured file sets, virtual machine templates and deployment plans for those appliances and assemblies are also stored in the catalog.

Figure 2-1 shows Oracle Virtual Assembly Builder Studio and its relationship to both its catalog as well as to the Deployer and Enterprise Grid Control Software Library.

Figure 2-1 Oracle Virtual Assembly Builder Studio and Deployer

Create Assembly wizard
Description of "Figure 2-1 Oracle Virtual Assembly Builder Studio and Deployer"

2.1.2 Deployer

The Oracle Virtual Assembly Builder Deployer is a J2EE application that maintains assembly archives created by Oracle Virtual Assembly Builder Studio, provides operations for registering assembly archives to virtualized systems such as Oracle VM and provides operations 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 Deployer runs in an Oracle WebLogic Server servlet container on the Oracle WebLogic Server Administration Server. Figure 2-2 shows the top-level components of the Oracle Virtual Assembly Builder Deployer.

Figure 2-2 Deployer Architecture

Create Assembly wizard
Description of "Figure 2-2 Deployer Architecture"

2.1.2.1 Web Application

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

Operations against the Web service are made by posting an HTTP request to the Oracle Virtual Assembly Builder Deployer's context path. The request includes a request parameter that defines the action followed by zero or more request parameters that define arguments for the operation. The response is usually an XML document related to the operation performed, except in cases where artifacts such as assembly archives, deployment plans or metadata files are being downloaded from the Deployer to the client. See Oracle Virtual Assembly Builder Developer's Guide for sample requests and responses.

Some operations may define an asynchronous action.

2.1.2.2 Deployments navigator

The Deployments navigator of the Deployer is a feature of Oracle Virtual Assembly Builder Studio which is a specific Web client. It contains the assembly archives and any deployment plans uploaded to the Deployer through the Web client. You create assembly archives and deployment plans using Oracle Virtual Assembly Builder Studio, however, the repository maintained by the Deployer is separate from the Oracle Virtual Assembly Builder Studio catalog. The runtime state for the Deployer is persisted on disk so that the Deployer instance can be recovered in the case of a failure (the Deployer process exits).

For Oracle VM, the Deployer interacts with one or more virtualization systems and orchestrates the deployment of assembly archives into these systems. For Oracle Exalogic, the Deployer has one preconfigured target and orchestrates the deployment of assembly archives into that system.

2.1.2.2.1 Assembly Archive Versioning

The Deployer repository allows you to keep multiple versions of an assembly archive in the repository at the same time. When you upload an assembly archive, the Deployer assigns it a version number. If another assembly archive of the same name is uploaded, then it will get the next version.

If you do not specify the version number in an operation (such as registerAssemblyArchive, or describeAssemblyArchives) the latest version will be used.

2.2 Setup Scenarios

This section describes the different ways that you can set up Oracle Virtual Assembly Builder.

2.2.1 Deployer-only Installation Scenario

You can set up Oracle Virtual Assembly Builder Deployer by itself, without Oracle Virtual Assembly Builder Studio. This installation scenario provides you the ability to configure deployment targets, upload assembly archives to Deployer, create assembly instances, deploy/undeploy/start/stop assembly instances and scale appliance instances.

This configuration contains the following interfaces:

  • You can use the Web service API to perform PaaS operations.

  • You can use abctl to interact with the Web service API for either PaaS or Administrative operations.

  • You can use the Web service API to perform administrative operations on the deployer.

2.2.2 Studio-only Installation Scenario

You can set up Oracle Virtual Assembly Builder Studio by itself, without Oracle Virtual Assembly Builder Deployer. This installation scenario provides you the ability to create appliances and assemblies, create appliance templates and assembly archives and create deployment plans.

This configuration contains the following interfaces:

  • The Oracle Virtual Assembly Builder Studio graphical user interface, and

  • abctl CLI (all functionality for creating and deploying assemblies)

Note:

This scenario does not apply to Oracle Exalogic, without additional installation.

2.2.3 Deployer Co-located with Studio

You can set up Oracle Virtual Assembly Builder Deployer co-located with Oracle Virtual Assembly Builder Studio on the same machine, but in a different process. This configuration contains the previously described interfaces for Oracle Virtual Assembly Builder Deployer and Oracle Virtual Assembly Builder Studio, and provides you the ability to perform all the operations described in the "Deployer-only Installation Scenario", plus those operations in the "Studio-only Installation Scenario".

2.2.4 Remote Deployer with Studio

You can set up Oracle Virtual Assembly Builder Studio to interact remotely with Oracle Virtual Assembly Builder Deployer. Oracle Virtual Assembly Builder Studio can interact remotely with both the Oracle VM Deployer and the Deployer running inside Oracle Exalogic. You can use both the graphic user interface and the abctl command-line interface of Oracle Virtual Assembly Builder Studio to interface with either Deployer.

This configuration contains the previously described interfaces for Oracle Virtual Assembly Builder Deployer and Oracle Virtual Assembly Builder Studio, and provides you the ability to perform all the operations described in the "Deployer-only Installation Scenario", plus those operations in the "Studio-only Installation Scenario".

2.3 Deployment Platforms

You can deploy Oracle Virtual Assembly Builder assembly archives to the Oracle VM or Oracle Exalogic platforms.

2.3.1 Deploy to Oracle VM x86

You can deploy to Oracle VM 3.0.3 or higher.

2.3.2 Deploy to Oracle Exalogic

Oracle Exalogic is a target platform for Oracle Virtual Assembly Builder. Oracle Virtual Assembly Builder Deployer is configured and provisioned to be running as part of the Oracle Exalogic runtime.