4 Appliance and Assembly Structure

This chapter describes the structure of appliances and assemblies in Oracle Virtual Assembly Builder, and contains the following sections:

4.1 Appliance Structure

An appliance is a set of self-contained virtual disk images with all the software to run a single instance of a single component. An appliance includes appliance configuration, appliance binaries, and an operating system (Figure 4-1).

Figure 4-1 Appliance Structure

Appliance structure

4.1.1 Appliance Configuration

Appliance configuration is captured during introspection of the appliance, and includes introspection properties, system and user properties, file sets, and optionally, customized scripts and properties files.

4.1.2 Appliance Binaries

Appliance binaries are software binaries included in the appliance. These include both the container or product binaries as well as the configured customer application binaries.

4.1.3 Operating System

A customer provides the operating system base image for the appliance, based on an Oracle Enterprise Linux template, and customized for his particular requirements. Oracle Virtual Assembly Builder publishes several sample base images.

4.2 Assembly Structures

Appliances can be grouped, and their relationships defined into artifacts called software assemblies which provide a blueprint describing a complete multi-tier application topology.

Assemblies include appliances, as well as references to external systems which represent infrastructure such as databases, servers or security providers that cannot or should not be included in an assembly.

4.3 New Concepts in Deployments to Oracle VM 3.0

This section describes structures introduced for Oracle VM 3.0 deployments:

4.3.1 Terminology

The following alphabetical list of terms are defined:

  • anti-affinity: placing multiple instances of a particular appliance across different physical hosts in a target, with even distribution of instances across physical machines.

  • NIC: network interface. A NIC may only be connected to one Vnet.

  • shared file sets: file sets shared with individual appliances within assemblies.

  • Vnet: virtual network. One or more NICs or vNICs connect to the Vnet.

  • vNIC: virtual network interface. A vNIC may only be connected to one Vnet.

  • zero-count appliance: an appliance initially deployed with zero appliance instances.

4.3.2 Configuring your Network Interface (NIC)

Creating a new assembly automatically creates one Vnet for that assembly, which can consist of one or more network interfaces or virtual network interfaces connecting to that Vnet. That Vnet becomes the default virtual network. You can create additional Vnets, or delete ones that you have created. You can bind network interfaces to a Vnet during assembly editing.

4.3.3 Shared File Sets

If supported by the underlying infrastructure platform, you can specify that file sets be shared with individual appliances within assemblies.

4.3.4 Zero-count Appliances

You can initially deploy an appliance with zero appliance instances. However, in subsequent scaling operations you could add appliance instances to those appliances that are part of the assembly configuration but were initially "deployed" with a zero-instance count. Only appliances that no other appliance in the assembly references can have a zero-instance count. This means no other appliance depends on it or connects to any of its inputs.

4.3.5 Anti-Affinity

You can specify the requirement to place multiple instances of a particular appliance across different physical hosts in a target.

You can specify the minimum number of physical machines across which the instances of an appliance will be distributed. The Deployer ensures that the instances are distributed evenly.For example, if the minimum number of physical machines is specified to be two, and there are four instances, then no physical machine would have more than two instances. Also, if there are not enough physical machines to satisfy the minimum requirement then deployment or scaling operations requesting a new instance for the appliance will be rejected.