There’s been a lot of discussion about what makes cloud computing different than other forms of computing that have come before. Some refer to the set of attributes set forth by NIST, while others rely on less succinct qualifications simply satisfied to identify network accessible services as cloud, and others define cloud by applicable business models. In the past, I have written about scale as a common abstraction based on upon some of these other definitions. However, more recently, I’ve come to the realization that we need to define cloud by where it’s going and not what it is in its infancy.
Cloud computing is following in the vein of the automobile and fast food industries. These industries introduced their first products with little to no customization and then changed and competed on value based upon significant customization. The automobile industry started out offering only a black Ford Model T and today allows buyers to order a completely custom designed car online delivered to their home. Likewise, cloud computing started out as vanilla infrastructure services and is rapidly moving towards greater levels of customization. Ultimately, cloud computing will not be defined by service model monikers, but will be a complete provision, package and deliver (PPD) capability facilitating control over the type of hardware, operating systems, management systems, application platforms and applications.
When building a new home, buyers go through a process of choosing carpeting, fixtures, countertops, etc., but ultimately, their expectations are that they will be moving into a completed house and not showing up to a pile of items that they then need to further assemble themselves. This is the perspective that we should be applying to delivery of cloud computing services. Consumers should have the opportunity to select their needs from a catalog of items and then expect to receive a packaged environment that meets their business needs.
Much of today’s cloud service provider offerings either approximate raw materials that require additional refinement or are a pre-configured environment that meets a subset of the overall requirements needed. The former approach assumes that the consumer for these services will take responsibility for crafting the completed service inclusive of the supporting environment. The latter approach simplifies management and operations, but places restrictions on the possible uses for the cloud service. Both of these outcomes are simply a result of the level of maturity in delivering cloud services. Eventually, the tools and technologies supporting PPD will improve leading to the agility that epitomizes the goals for cloud computing.
Meeting the goals for PPD entails many prerequisite elements. Chief among these is automation and orchestration. Cloud service providers manage pools of resources that can be ‘carved’ up many different ways. Due to the complexity in pricing and management, most cloud service providers limit the ways this pool is allocated. As the industry matures, service providers will improve at developing pricing algorithms and have greater understanding for what consumers really need. Meanwhile, we will see great improvements in cloud manager software that will facilitate easier management and allocation of resources within the pool allowing for much more dynamic and fluid offerings. Coupled with automation and orchestration, cloud service providers will find it easier to offer consumers greater numbers of options and permutations while still being able to balance costs and performance for consumers.
Defining cloud computing by its nominal foundations is akin to specifying the career choice for a young child. Infrastructure, platform and software services illustrate possibilities and solve some important business problems today. However, most businesses still find cloud environment too limiting for their mission critical applications, such as manufacturing and high-volume transactions. It won’t be long, though, before users can specify the speed of the network, the response requirements for storage, the security profile, number and types of operating system nodes and quality-of-service parameters that the environment must operate under, among many other attributes, and have the service provision, package and deliver to us our requested virtual environment. This is what we should be using as the profile by which we define cloud computing.