VMware Cloud: The Components of Design
This guide is intended to serve as a design reference for VMware Cloud and provides a general framework for successfully planning, building, and operating an implementation. Since there is no shortage of reference material covering the business aspects of solution design, this guide will not touch upon those areas but will instead focus on the technical details of design.
For the purposes of this guide, there are 3 major components of technical design:
- An architectural plan describing the technical aspects of the design
- An implementation plan describing how the architecture will be built and put into production
- An operations plan describing the tools and processes used to manage the newly implemented design
The purpose of an architectural plan is to provide the details necessary to implement the design. The requirements for this plan are as follows.
- The plan must be both practical and possible to implement.
- The plan must have been validated and proven to function as specified.
- The plan must be sufficiently detailed such that an implementation plan may be created from it.
Architectural plans are worthless if they are neither practical nor possible to implement. Simplicity enhances the practicality of a design; thus, simplicity should be a top priority for the design. Architectures which are overly complex are often difficult to implement and typically even more difficult to manage. Architectures which rely on products or features that do not currently exist are considered impossible to build. While it is valid to note such products or features, these notations must be specifically highlighted as possible future enhancements.
Every architectural plan should be validated in order to ensure that it is possible to implement. Detailed test plans, as well as the test results, should accompany the architectural plan. The goal of this testing is to mimic the real-world as much as is practical. This means testing the design at both small and large scales, testing both for function and performance, and intentionally attempting to break the design. A thorough set of tests will not only provide confidence in the architecture but will serve as a valuable reference for the later development of implementation and operational plans.
Since the authors of the architectural plan aren't necessarily the same individuals who will ultimately build or manage the final implementation, the plan must be sufficiently detailed to ensure that the implementation matches the design. Test plans are a useful tool in this respect since they serve as an implementation "dry run" and will aid in fleshing out design details which may otherwise be missed.
An implementation plan provides step-by-step instructions for deploying an architecture. This plan should contain the following components:
A build-out plan will describe the bill of materials required by the implementation as well as a detailed process for executing the build. It may also contain a portion which describes the hand-off process to the operations team who will ultimately manage the implementation.
Test plans should be integrated into the build-out plan and should be designed to validate each phase of the build. The test plans from the original architectural plan may serve as a template for testing. Provided that they contain step-by-step details for building the test environment, the architectural test plans may also serve as a template for the build-out plan itself.
A production plan will describe the mechanisms and processes required to move a newly implemented design into production use. The purpose of this plan is to outline initial turn-up of the implementation and should not be confused with an operations plan.
As with the initial build, testing should be integrated into each phase of the production plan. The testing will be broken up into 2 categories:
- Functional tests, which are designed to validate the basics functions of each phase of the turn-up.
- User acceptance tests, which are designed to validate that the more advanced features of the implementation are performing as expected.
An operations plan will describe the tools and techniques used to manage the production implementation. Although the exact structure of an operations plan will vary with every organization, there are a few common items which should always be considered.
- Tooling - What tools will be used to manage the environment? Who will manage these tools?
- Monitoring - How will monitoring be performed? What metrics will be collected?
- Alerting - How will alerts be generated for monitored events? Who will receive the alerts? What mechanism will be used to deliver alerts?
- Emergency Runbooks - How will service disruptions or outages be handled? What are the step-by-step processes for the most likely scenarios? What about rare and exceptional events?
- Maintenance - How will regular maintenance be performed? How often and at what times? How may change control be implemented such to avoid unnecessary production impact while also not discouraging required maintenance?
Authors and Contributors
Author: Dustin Spinhirne