VCAP6-DCV Design Journey – Objective 1.2 – Gather and Analyze Application Requirements

This post is intended to address the VCAP design objective around gathering and analyzing application requirements. At the time of writing, the required ‘Skills and Abilities’ listed by VMware for this topic are:

  • Gather and analyze application requirements for a given scenario
  • Determine the requirements for a set of applications that will be included in the design
  • Collect information needed in order to identify application dependencies
  • Given one or more application requirements, determine the impact of the requirements on the design

This objective is really about understanding the best practices around virtualising applications, and including the necessary requirements in the design. This begins by determining what those requirements are.

Gather and analyze application requirements for a given scenario and determine the requirements for a set of applications to be included in the design

Building upon the information collected earlier (Objective 1.1), it will be time to look at the applications in scope in more detail as they will influence the design. We can gather detailed requirements for the applications by:

  • Interviews with subject matter experts
  • Existing design documentation
  • Performance data capture

Performing a performance capture (using perfmon for example, or Capacity Planner), will help establish a performance baseline, which will help us make design decisions. We will also need to understand and document application requirements around the following areas:

  • Availability: requirements around application availability requirements. For example, considerations may be vSphere HA, Fault tolerance, or leverage application level HA.
  • Manageability: requirements for ease of managing the application.
  • Performance: Performance requirements for the application (using the captured baseline)
  • Recoverability: requirements for backup and recovery of the application.
  • Security: This covers the requirements for overall data control, confidentiality, integrity, accessibility, governance, and risk management, often including the ability to demonstrate or achieve compliance with regulation.

Collect information needed in order to identify application dependencies

It will also be necessary to understand any dependencies a given application may have as this can influence design decisions. Knowledge of these dependencies will come from interviews with the relevant SMEs, and any existing documentation.

Dependency mapping tools and scripts can be of use to assist with this.

Given one or more application requirements, determine the impact of the requirements on the design

Once we know what applications are in scope and what their requirements are, we can think about what design decisions need to be made to accommodate those requirements. Best practices will feature heavily here. For example, if SQL servers are in scope, then we need to think about what best practices there are for virtualising SQL. These can include, but are not limited to:

  • Virtual machine resource allocation – CPU and Memory sizing based on performance baseline data. NUMA considerations.
  • Memory Configuration – e.g. VM memory reservation, enabling large memory pages in guest OS.
  • Disk Configuration -e.g.  RDMs? Multiple VMDKs for different purposes, e.g. logging, DBs. Disk Placement.

The above examples can lead to certain design decisions being made. For example, memory reservations may affect vSphere cluster sizing and desired VM disk layout may affect decisions around VMFS datastores. The key here is understanding the impact the design for the application has on the rest of the design.

Useful Links and Resources

Related posts

VMware vSphere Virtual Machine Snapshots Explained

Understanding Type 1 and Type 2 Hypervisors

How to Enable SSH on All ESXi Hosts using PowerCLI

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More