Multi-tiered applications are becoming increasingly common in large organizations, and administrators have often found that dealing with such applications in a virtual data center can be challenging. Thankfully, VMware's vApp feature can help reduce the complexity of dealing with multi-tier applications.
The thing that makes multi-tier applications so tough to manage is that they span multiple virtual machines (VMs). Think of SharePoint Server, for example. Even a relatively small SharePoint deployment might require a Web front end, an application server and an SQL Server.
With this in mind, imagine an organization that has dozens of multi-tiered applications. In such an environment, it would be easy to lose track of which VM is associated with which application. This is especially true when you consider that VM migrations from one host server to another have become the norm and that the VMs that make up a multi-tiered application can quickly become scattered across your data center.
This is where vApps come into play. VMware's vApp is a mechanism for defining a multi-tier application, thereby making it easier to manage.
How a vApp works
In reality, a vApp is just a container object. This container's primary job is to group together the VMs that make up a particular multi-tiered application. While this logical grouping of VMs can certainly be helpful, there are some other really compelling benefits besides simple grouping.
When you group VMs into a vApp, you gain the ability to collectively manage those VMs. This means that you can collectively power-on or power-off the VMs inside the vApp. You can also clone and export the entire vApp in OVF format.
VMware vApps also provide for discrete resource control, allowing you to move the application (and all of its corresponding VMs) from one infrastructure to another without having to deal with the various components individually.
How to create a VMware vApp
The exact method for creating a vApp varies slightly depending on the version of VMware that you are using. Typically, however, you would open the vSphere Client and select the New | vApp commands from the File menu. This causes the client to launch the New vApp wizard.
The wizard's initial screen asks you to provide a name for the vApp. You also have the option of specifying an inventory location for the vApp. If this is your first vApp, you might not have to worry too much about the inventory location; but if you have a lot of vApps, being able to define an inventory hierarchy can be very helpful. For example, some administrators like to define nested vApps as a way of grouping related applications together. Click Next, and you will be taken to the Resource Allocation screen. This screen allows you to set reservations and limits for memory and CPU resources, essentially configuring a resource pool for the vApp.
One important thing to know about vApps is that although you can only configure memory and CPU-specific resource usage through the wizard, there are many more settings that you can configure after you have created the vApp. For example, you can associate an IP allocation policy with the vApp.
After you finish configuring the resource allocations for the vApp, click Next and you will be taken to a summary screen where you can review your configuration choices. Assuming that everything looks good, click Finish and the vApp will be created.
Keep in mind that although we have created a vApp, it really doesn't do anything yet because there are no servers within the vApp. However, adding servers to the vApp is the easy part. If you have an existing multi-tier application, you can simply drag those servers and add them to the vApp. On the other hand, if you need to create new VMs for the vApp, you can simply right-click on the vApp and select the New VM command from the shortcut menu.
VMware vApps are a powerful mechanism for grouping application servers together to make the management process easier.