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 has requirements for the base image which are documented in Installing Oracle Virtual Assembly Builder. 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 Structures for Deployments

This section describes structures available for 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. That Vnet is the default virtual network for the assembly and represents an actual network in the deployment environment. You can create additional Vnets (if you have additional networks in your deployment environment), or delete ones that you have created. You can bind network interfaces on appliances 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 the maximum number of appliance instances that can be deployed on each physical machine. For example, an anti-affinity of 1 ensures that each instance of an appliance is deployed onto a different physical machine, while an anti-affinity of 2 means a maximum of two appliance instances can be deployed on each physical machine - thus six appliances require three physical servers.

There must be enough physical servers to distribute the appliances instances with a maximum of n appliance instances per physical server. An anti-affinity of 2 means six appliance instances require at least three physical servers (each server does not have to have two appliances - this is only the maximum). Eight appliance instances would require at least four physical machines.

The benefit of this feature is limiting your exposure to failure. If a physical server goes down, you do not lose the entire appliance and cause the assembly to go down.