After attending Microsoft Management Summit 2012 in Las Vegas this past week, a few things became quite clear in regards to implementing cloud-based solutions whether they are private, public or hybrid.
The first take-away from MMS was the need for “standards” at all layers of the enterprise architecture. Most IT organizations have IT standards defined for naming conventions, hardware vendors and platforms and software (i.e., operating systems and applications). But, how well these standards are defined, followed or enforced is another story. Problems created because an organization has poorly defined standards will only be exacerbated in the cloud. Most organizations wanting to move to a private or public cloud will have to revisit their current IT standards — and not just to revise or update them, but in many cases develop entirely new IT standards from a cloud computing perspective. More specifically, these new standards will need to be stringent, concise, and pervasive or to put it more bluntly—RUTHLESS.
Ruthless Standards
Typically, IT standards define “what” configuration items (CI) and services can be provisioned along with permitted attributes, constraints and exceptions. While ruthless standards might sound restrictive and limiting as well as contrary to an agile cloud computing model or a service delivery (e.g., Infrastructure-as-a-Service) point-of-view, they are essential to maximizing the benefits that can be derived from cloud computing.
In addition to being ruthless, compliance to these standards must be mandatory and rigorously enforced with few or no exceptions. These standards must be pervasive and cover each service level or classification (e.g., Gold, Silver, Bronze, Green, etc.), application tier (e.g., front-end, mid and back-end) and environment (e.g., development, test, QA, pre-production, production, etc.) that will be supported by the cloud fabric. At a minimum, standards must be defined for each type of configuration item (CI) and service necessary to deliver cloud-based services. Standards should also be defined for the development of scripts and runbooks that will be used for automation within the cloud.
Explicit Processes
While standards define the “what”, processes (or workflows) define the step-by-step instructions on “how” to perform the activities to provision a standard configuration item or service in the cloud. Standards need to be translated into concrete actionable items as part of the workflow design process. A runbook developer cannot optimize and automate overly complex and convoluted manual processes that are neither understood or followed, or that require excessive approvals and do not comply with the standards. IT organizations will need to transform their processes to meet the needs of cloud environments. For example, automation and orchestration tools do not make poorly defined processes better — instead, they expose the inefficient, inflexible and noncompliant aspects of the workflow. Explicit processes should also include fault and exception handling.
Robust Automation
Ruthless Standards drive Explicit Processes, which, in turn, drive Robust Automation. Robust automation simply means that we want it to perform as expected in all possible real-world scenarios within the cloud fabric. Robust automation is flexible (i.e. it can be easily modified or extended at a later stage if required), efficient (i.e., performs efficiently at runtime), and compliant (i.e., conforms to ruthless standards).
Without ruthless standards, explicit processes and robust automation, few organizations will experience all of the benefits of cloud computing.