Like I had stated in the introductory post for this series, I had thought the cloud was really just someone else’s data center, and that’s it. So, if I’m hosting someone’s applications in my data center, I’m the cloud, right? Well…maybe. While hosting of data and applications is big piece to the puzzle, there is much more to the cloud than that. I am not a big fan of nebulous concepts and topics. I typically like structure, detail, and boundaries. One thing I have really appreciated about what I have found in my cloud studies so far is that we can put some high level characteristic definitions to cloud computing.
So, what is the cloud? At a high level, it is a way to deliver applications and services to consumers in an on-demand, scalable, and measurable way. The National Institute of Standards and Technology (NIST) is a US government entity with the following mission: “To promote U.S. innovation and industrial competitiveness by advancing measurement science, standards, and technology in ways that enhance economic security and improve our quality of life.” NIST developed and documented a list of characteristics to define cloud computing services. Here, I will list the characteristics, giving my interpretation of them inline. For a service to be labeled a cloud service by NIST definition, it should have the following characteristics.
- On-demand self-service
- Consumers of the service should be able to leverage it and spin up (and down) resources on their own without the need of IT or cloud service provider assistance. An example is having a self-service portal that consumers can leverage to get access to products and services.
- Broad network access
- Cloud services should be accessible from many different client types and operating systems, across many different network types (private connectivity, internet, etc.).
- Resource pooling
- Compute and storage resources are aggregated in bulk and divided and assigned dynamically, as needed to consumers. Specifically where or how the resources are allocated from the pool is abstracted from the consumer. The consumer does not need to know where the resources are coming from, they just need to know that they have access to the resources that they need, when they need them.
- Rapid elasticity
- Compute and storage resources should be able to be scaled up or scaled down either on-demand or dynamically. This is a huge benefit and a key differentiator between cloud computing and traditional on-premises computing. In the traditional model, resources typically had to be purchased outright, which makes scaling more difficult. To ensure that you have enough resources for peak times you had to scale your purchases to match that need. However, outside of peak times, resources were going unused and that investment is less effective. With cloud, you can scale up and down much more efficiently. During peak times, you can get access to more resources (you just have to pay more) and in non-peak times you can scale down to conserve resource usage and cost.
- Measured service
- A big value proposition of cloud services is that they are typically pay-as-you-go services. There is no capital, upfront costs to purchase resources and you only pay for the resources you consume. For a service to be deemed a cloud service, there must be a way to meter, document, and bill upon resources consumed.
I feel that these documented characteristics give me a much better understanding of what makes the cloud, the cloud. With these definitions in mind, I feel more confident having discussions about cloud computing, knowing that it is much more than just “someone else’s data center”.