In a recent blog, I made the case that the role of IT needs to fundamentally change. My argument was that the value of the IT function is its ability to enable a business to compete in what is for most companies an increasingly competitive marketplace. The conclusion I drew was that to enable businesses to compete in highly competitive, rapidly changing marketplaces, IT organizations need to become more agile, and that one way to become more agile is to adopt a cloud computing model. Because the phrase cloud computing is used to cover a huge range of technologies and architectures, I will use this blog both to define and to drill into what I mean by cloud computing.
What is the NIST definition?
As part of defining cloud computing I want to avoid two pitfalls. One pitfall is to adopt the definition of any particular vendor, as vendors have a tendency to create definitions that match closely with the products and services they provide. I also want to avoid the pitfall of trying to create my own unique definition that is based on wordsmithing the definition of other analysts.
To avoid those pitfalls, I am going to use the definition of cloud computing that was created by the National Institute of Standards and Technology (NIST) back in 2011. According to NIST, “Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
What are the essential characteristics of cloud computing?
The NIST definition expands on what it referred to as five essential characteristics of cloud computing. Those characteristics are:
The vast majority of IT organizations have implemented one or more forms of virtualization, most commonly server virtualization. While server virtualization is included in what NIST means by resource pooling, it is only a small piece of what NIST means. In addition to compute resources, the NIST definition of cloud computing includes the virtualization of all the other components of IT, including storage and networking. The NIST definition also assumes that all the resources are pooled using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. While not a part of the NIST definition, in today’s environment these pooled resources are typically accessed via an API.
-Broad network access
There are two ways to look at this characteristic of cloud computing. Looked at just from the perspective of the NIST definition, this essential characteristic means that the resource pools are made available to all, independent of the user’s device; e.g., mobile phones, tablets, laptops, and workstations. However, looked at from a pragmatic perspective, IT organizations must temper the requirement to provide broad access to IT resources with the requirement to provide effective security.
Pooling resources has many benefits, including reducing the cost of those resources. While reducing cost is always an important goal, reducing cost does not necessarily enable an IT organization to be more agile. In contrast, allowing users to provision the resources they need automatically without requiring any assistance is one of the key reasons why the adoption of cloud computing makes the IT function more agile.
-Rapid elasticity or expansion
According to NIST, this essential characteristic means that IT functionality can be elastically provisioned and released, in most cases automatically, to scale rapidly outward and inward commensurate with demand. While the phrase was not popular when NIST created its definition of cloud computing, today we associate the elasticity of IT resources with the ability to orchestrate those resources. As is the case with on-demand self-service, this capability is one of the key reasons why the adoption of cloud computing makes the IT function more agile.
Having been a member of the networking organization at two Fortune 500 companies, the idea of on-demand self-service both excites me and scares me. It excites me because it takes a large operational burden off the IT organization while simultaneously enabling users to quickly gain access to the IT resources they need. It scares me because if not controlled, it could lead to a massive increase in cost.
NIST responded to my concerns about the potential abuse associated with on-demand self-service by stating that an essential characteristic of cloud computing is that it enables resource usage to be monitored, controlled, and reported. The fact that resource usage is reported doesn’t necessarily mean that IT organizations implement formal chargeback mechanisms. Based in large part on the culture of the company, chargeback may or may not make sense. However, I strongly believe in IT organizations being able to showback to a company’s business units how much usage they are making of IT resources and to also show the business units the associated cost.
What does all of this mean?
Most companies begin their journey to cloud computing by adopting server virtualization. Because it reduces costs and makes the IT function a bit more agile, this is an important first step. But it is only that – a first step. IT organizations must virtualize all components of IT, make these virtualized components accessible via APIs, and they must provide broad, secure access to these resources. However, the journey to cloud computing doesn’t stop at the virtualization of IT resources. The two characteristics of cloud computing that that stand out the most to me relative to making IT more agile are providing on-demand self-service and enabling the rapid expansion and contraction of IT resources.
Unlike those two characteristics, being able to control, measure and report on service usage doesn’t tend to delight users. However, I wouldn’t want to manage a cloud environment without this capability.