Skip Headers
Oracle® Virtual Assembly Builder User's Guide
11g Release 1 (11.1.1)

Part Number E15835-02
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

1 Introduction

The following sections provide an introduction to the major concepts and components of Oracle Virtual Assembly Builder:

1.1 Introduction to Oracle Virtual Assembly Builder

Increased operating costs, inefficient hardware utilization and rapidly expanding data centers have made virtualization the most compelling IT technology in years. Virtualization for the desktop and the server environment has evolved to finally deliver on its promise to lower operating costs by increasing the utilization of hardware and reducing the overall amount of hardware required.

While virtualization has solved a multitude of problems, it is still difficult to deploy and manage complex applications made up of multiple tiers and components. Furthermore, virtualization is quickly becoming a commodity and the focus now shifts to directly virtualizing the applications to reap the next level of benefits associated with virtualization.

1.1.1 What is Virtualization?

Virtualization is the process of abstracting hardware resources, such as CPU, memory, storage, and network interfaces, from the operations system and applications. The hardware runs virtualization software (for example, a hypervisor) that enables the installation of multiple operating systems, each capable of running simultaneously and independently, in its own secure environment.

In a virtualized environment, each isolated partition runs its own operating system and set of applications. Each partition behaves as if it were a dedicated physical computer with its own (virtualized) CPU, network interfaces, storage, and operating system.

1.1.2 Middleware Virtualization Challenges

The development and deployment of applications in your virtual environment involves a sequence of operational stages including testing, staging, and the move to production. The transition between these stages can be difficult as there are few facilities within existing virtualization infrastructure that guarantee consistency and correctness of the collection of software components. Implementing the physical to virtual (P2V) or virtual to virtual (V2V) transitions seems simple: create virtual images of the original deployments, then instantiate them in the target environment. Oracle VM and the tools it provides can be used to implement such solutions.

Handcrafting the virtualization solution has many pitfalls. Details of network connectivity may change in the deployment environment, but no automatic mechanism exists to perform or even to track these changes. Images may be specific to particular details of the deployment environment. The proliferation of images results in sprawl, creating maintenance overhead as each of the images must be patched at the OS and application layers. These pitfalls create unanticipated costs.

1.1.3 What is Oracle Virtual Assembly Builder?

Oracle Virtual Assembly Builder is a tool for capturing the state of installed Oracle components, modifying those components, and then deploying them into a virtual environment. Using Oracle Virtual Assembly Builder you capture the state of existing software components in artifacts called software appliances. Appliances can then be grouped and their relationships defined into artifacts called software assemblies.

Oracle Virtual Assembly Builder allows the logical connections between appliances within an assembly to be reconfigured by a process known as assembly editing. When a desired assembly configuration has been achieved, you use Oracle Virtual Assembly Builder to prepare the assembly for deployment and then deploy it into a virtual environment.

Figure 1-1 Oracle Virtual Assembly Builder

Description of Figure 1-1 follows
Description of "Figure 1-1 Oracle Virtual Assembly Builder"

1.1.4 Software Appliances

A software appliance (appliance) represents a single software component and its local execution environment. Depending on your choice of deployment technology, the component's local environment may be a single operating system instance or, using Oracle JRockit Virtual Edition, a Java virtual machine instance without a conventional operating system.

1.1.5 Software Assemblies

A software assembly (assembly) is a collection of interrelated software appliances that are automatically configured to work together upon deployment. Assemblies are deployed onto a pool of virtual hardware resources with minimal user input.

While assemblies are simply a collection of appliances with defined interconnects, assemblies must adhere to a set of base principles in order to be useful in a production environment, including:

  • Allow for the composition of appliances as well as external systems

  • Externalize configuration in the form of metadata that can easily be customized

  • Optionally define start order of appliances to reflect interdependencies

  • Provide a management domain which integrates into existing management infrastructure allowing for metadata definition, deployment, oversight and diagnostics

In addition to being comprised of appliances, assemblies can also contain references to external systems. This is necessary to represent infrastructure such as databases, servers or security providers that cannot or should not be included in an assembly.

To summarize, the notion of being able to create pre-built assemblies for deployment is extremely powerful and has a number of advantages that drive down operational costs and complexity. These include:

  • The ability to easily replicate assemblies in production, even allowing for variations of the assembly without adding complexity.

  • Reduce risk of configuration errors as assemblies are moved between development, test and production environments.

  • Replicated environments facilitate high level standardization and consistency across application infrastructures, allowing for simple implementation of best practices.

  • Accelerates deployment of new infrastructures and applications.

1.1.6 The Role of Oracle Virtual Assembly Builder

In order to realize these benefits, a simple means of composing assemblies of appliances is required. Specifically what is needed is tooling that allows for the composition of appliances as well as end point mapping of externalized systems and other larger non-virtual appliance based systems such as databases and IDM Servers.

Oracle Virtual Assembly Builder is a set of tooling comprised of an intuitive visual environment, command line interface, and supporting infrastructure. Oracle Virtual Assembly Builder allows administrators to constitute and deploy complete assemblies encompassing all the components and systems that make up a potentially complex application structure or infrastructure.

Oracle Virtual Assembly Builder provides the following capabilities:

  • The ability to browse a catalog of existing appliances and assemblies allowing for simple re-use of existing infrastructure.

  • An assembly editor that allows for declarative composition of new assemblies based on existing appliances and external systems.

  • The ability to modify connections between appliances using drag-and-drop.

  • A property inspector that displays the editable properties of appliances and assemblies.

  • The ability to create templatized definitions of complete configurations, allowing for simple deployment.

  • Single-step deployment of entire multi-tier application onto virtualized resources.

1.1.7 Using Oracle Virtual Assembly Builder

Assembly creation and deployment is a straightforward, four-step process. First, in the introspection phase, the necessary metadata and configuration information is captured from an existing deployment for all components that make up the appliances within the assembly. During the configure phase, the relationships are established among the appliances and any external resources. The prepare phase creates the deployment artifacts necessary for the assembly that is relevant to the particular virtualization platform (that is, virtual images). Finally, the deploy phase deploys the assembly into your virtualized environment.

1.1.7.1 Introspect

Capture configuration metadata for individual software components or collectively capture metadata for multiple distributed components.

Target components may reside locally or remotely on multiple distributed systems that may be physical or virtual.

1.1.7.2 Configure

Visual drag-and-drop interface for creating complex assemblies using appliances maintained in a navigable catalog.

Establish relationships and connections between appliances using a wiring tool that automatically checks for protocol compatibility.

Create connections from appliances to external resources (such as database, security provider, messaging, and so on) not included within assembly.

1.1.7.3 Prepare

Create bootable virtual machine disk images with customized operating system distributions (for example, Oracle Enterprise Linux) and configurable metadata allowing for deploy-time customization of the software component.

Appliances containing Java applications can be further optimized by incorporating Oracle JRockit Virtual Edition, a high-performance JVM specifically designed to run in a virtual environment without the overhead of a general-purpose operating system.

1.1.7.4 Deploy

Discover resource pools available on virtualized environment by establishing authenticated connections directly with a virtual machine manager.

Single-step staging of all appliance disk images and deployment of entire assembly onto resource pool.

Create customized deployment configurations for assemblies that override base configuration properties for appliances within the assembly.

Deployment-specific customization through automated fix-up of late-binding properties within appliances.

Scale appliance instances after initial deployment of the assembly and automatically wire the newly deployed instances into the existing assembly.

1.2 Understanding Oracle Virtual Assembly Builder

Oracle Virtual Assembly Builder captures the existing state of a specific set of Oracle Fusion middleware software components from your environment, represents them as assemblies and appliances, and enables their deployment into the virtual environment. Oracle Virtual Assembly Builder does not include the ability to administer the components and does not replace the administrative tools supplied with them.

Oracle Virtual Assembly Builder does not supply the virtual environment into which you deploy your Assemblies. You must establish the deployment environment using one of the target environments that Oracle Virtual Assembly Builder supports. For more information about supported deployment environments, see Oracle Virtual Assembly Builder Installation Guide.

1.2.1 Understanding Appliances and Assemblies

A minimal appliance consists of metadata (name/value pairs) describing the state of the original component together with a set of component-specific files that allow its configuration to be recreated at deployment time. As you use Oracle Virtual Assembly Builder to prepare the appliance for deployment into your virtual environment, additional artifacts are created and stored along with the metadata.

The appliance metadata includes a description of each of the component's logical inputs and outputs. These inputs and outputs are collectively called endpoints. The HTTP input of an Oracle HTTP Server component is an example of an input endpoint. The mod_wl_ohs output of the same Oracle HTTP Server component is an example of an output endpoint.

The metadata describing endpoints includes protocols, port numbers, URLs, and so on. Oracle Virtual Assembly Builder captures enough information about each endpoint to allow the connection to be updated after the component is captured and before it is deployed. This capability allows Oracle Virtual Assembly Builder to ensure that appliances will connect correctly within the deployment environment.

Appliances are grouped into Assemblies. An Assembly is a logical container for Appliances and the connections between them. You create assemblies using Oracle Virtual Assembly Builder and populate them with appliances and other assemblies. An assembly manages the connections between its contained appliances and sub-assemblies.

The process of capturing a software component from your environment as an Oracle Virtual Assembly Builder Appliance begins with introspection.

1.2.2 Understanding Introspection

During introspection, Oracle Virtual Assembly Builder creates an XML description of the component and captures a component-specific set of configuration files. This information forms a snapshot of the component's configuration at the time of introspection. The introspection architecture is plug-in based and there is a plug-in for each supported component type.

In most cases, the result of introspecting a component is an appliance. When you use Oracle Virtual Assembly Builder to introspect an Oracle WebLogic Server domain, however, the Introspector plug-in generates an Assembly. The generated assembly contains an appliance representing the domain's Administration Server and other appliances representing each of the domain's Managed Servers.

Oracle Virtual Assembly Builder can introspect components on the local host or components located on remote, network accessible hosts. Oracle Virtual Assembly Builder uses the industry-standard SSH protocol to transport the introspection engine to the remote host and to return the introspection results.

Whether the introspection is local or remote, the results are stored in the catalog.

1.2.3 Understanding the Catalog

Assemblies and appliances are represented on disk in an area called the Catalog. You specify the location of your Catalog within the file system using environment variables defined by Oracle Virtual Assembly Builder. For more information about the environment variables, see Oracle Virtual Assembly Builder Installation Guide.

Assembly and appliance metadata is stored in nested directories within the metadata subfolder of the catalog root directory. Additional artifacts required for deployment are stored in other subdirectories defined by Oracle Virtual Assembly Builder. Since some of the on-disk artifacts may be very large, the catalog uses a sharing model for some artifacts of appliances and assemblies.

Only Oracle Virtual Assembly Builder supplied tools should be used to operate on the catalog. Manually editing of Oracle Virtual Assembly Builder metadata files is not supported.

1.2.4 Understanding External Appliances

When defining an assembly, it may be necessary to make reference to servers that lie outside it. Your I.T. environment may, for example, include database, identity management, or other servers that are shared by many unrelated virtual deployments. It may be undesirable or impossible to include these systems within any specific assembly. For this reason, Oracle Virtual Assembly Builder allows you to define external appliances representing server resources that exist in your environment and will not be deployed as appliances. Representing such resources as external appliances ensures that referencing appliance(s) within the assembly are correctly configured at deployment time, making it unnecessary to manually correct their network configuration after they are deployed to the virtual environment.

1.2.5 Understanding Packaging

The introspection process captures the state of a component and generates a metadata description of the actual component installation. Introspection does not capture the executables, shared libraries or other binaries of the component. Instead, the Introspector generates package definitions that specify one or more file system hierarchies that must be captured in order to reproduce the same component installation in the deployment environment. After the introspection is complete, you use Oracle Virtual Assembly Builder to capture a copy of the actual installation described by the metadata. This step is known as packaging.

When using the Oracle Virtual Assembly Builder command line interface, packaging is a distinct step. When using Oracle Virtual Assembly Builder Studio, the user interface combines packaging with template creation.

1.2.6 Understanding VM Templates

Templates are virtual machine images. These templates are used to create and start new VMs in virtualized environments. In most cases, templates are made available to the virtualized environment by registering them to that environment. In order to execute an appliance in a virtual environment, templates must be created for the appliance. The appliance templates contain a guest OS and the introspected appliance. Oracle Virtual Assembly Builder supports Oracle Enterprise Linux and Oracle JRockit Virtual Edition.

1.2.7 Understanding Resource Managers and Resource Pools

Resource Managers define and maintain a collection of virtualized hardware resources. Further, these environments generally have the resources partitioned into pools called Resource Pools. A single Resource Manager may include multiple pools. You must use Oracle Virtual Assembly Builder Studio to define which Resource Managers and their Pools to which Assemblies will be deployed.

1.2.8 Understanding Deployment Plans

Deployment Plans are used to customize Assemblies prior to deployment into virtualized environments. You can use the Deployment Plan to customize the default Assembly and Appliance properties. In some cases you must customize certain properties. The Deployment Plan contains all required overrides as well as all optional overrides.

1.2.9 Understanding the Deployment Life Cycle

At deployment time, you choose the Assembly to be deployed, one of its Deployment Plans, and the Resource Manager and Pool to which the Assembly will be deployed. This information is used to connect to the Pool, select all the necessary templates, and create VM instances. Upon deployment, the target number of VMs are started.

Deployment of an assembly may transition through various states. The states include: Staged, Deployed, and Failed. Each state allows a subset of operations. For example, when an assembly is deployed, you may start and stop the VMs, or you may increase or decrease the number of VMs associated with that deployed assembly. 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.

Here is the summary of the deployment states:

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

    • Stop: This operation will shutdown all the running VM instances for the deployment. The deployment is transitioned to the Staged state after this operation is completed. It leaves the VMs in the virtualized environment so that they can be restarted later.

    • Undeploy: This operation will stop all the running VMs and remove them from the virtualized environment. This operation will also clean up all failed VMs. After this operation is completed, the deployment no longer exists.

    • Scale Appliance: Appliances within a deployment can be scaled up or down. The number of VMs that can be running for an Appliance 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 deployment, the deployment reaches this state. A deployment may fail for a variety of reasons such as insufficient resources. The operations that can be performed on a Failed deployment are:

    • Undeploy: This operation stops all the running VMs and removes them from the pool. The operation will also clean up all failed VMs. After this operation is completed, the deployment no longer exists.

  • Staged: The Staged state is reached by stopping a Deployment. In this state all the VMs have been shut down. The operations that can be performed from this state are:

    • Start: This operation will start up all the VMs that have been shutdown. After this operation is completed, the Deployment is returned to the Deployed state.

    • Undeploy: This operation will cleanup all the VMs that have been shutdown from the virtualized environment. After this operation is completed, the deployment no longer exists.