- Pip install Boto3 - Thu, Mar 24 2022
- Install Boto3 (AWS SDK for Python) in Visual Studio Code (VS Code) on Windows - Wed, Feb 23 2022
- Automatically mount an NVMe EBS volume in an EC2 Linux instance using fstab - Mon, Feb 21 2022
I think there are still many IT pros who believe that “cloud computing” is just a buzz word invented by some smart marketing guys to tout conventional online services or on-premises tools under a new cool-sounding geek term. If you are one of those IT pros, you should read on and tell me at the end if you know of technology that we have already been before the cloud was looming that fits the description discussed here.
AWS for Dummies ^
I am currently reading the book Amazon Web Services for Dummies by Bernard Golden. So far, it appears to be a good introduction to Amazon’s cloud. Considering that Amazon is the leading cloud provider, it is amazing that only a few books are available about their services. Perhaps the reason is that Amazon adds new services and features so quickly that any book is deemed to be outdated on its publication date. This also applies to Golden’s book, which is only a few weeks old.
I am planning to summarize the essential parts of the book in a couple of blog posts here on 4sysops. Today, I will discuss Golden’s definition of cloud computing, which is one of the best I have read thus far.
Golden lists five essential characteristics of cloud computing which he copied from the National Institute of Standard and Technology (NIST). Please notice that I condensed the points in my own words.
- On-demand self-service
A consumer can provision computer capabilities without requiring human interaction from the service provider.
- Broad network access
Capabilities are available over the network and are accessed by heterogeneous thin or thick client platforms.
- Resource pooling
Resources are pooled to serve multiple consumers and are location independent—that is, the consumer has no knowledge or control of the exact location of the resources.
- Rapid elasticity
Capabilities can be released automatically to scale rapidly and appear unlimited to the consumer.
- Measured service
Resource usage is metered and can be monitored and reported by consumers and providers.
Network access and heterogeneous clients ^
In my view, point 2 is dispensable. Network access is, of course, a necessary requirement but is not essential to the definition because it is also a necessary feature for many non-cloud services. It has become “computing commodity,” like storage or memory.
However, I must admit I am unsure what they mean by “broad” in this context. If it is broad, as in “broadband,” then my counter argument still stands. Almost everything in IT requires broadband nowadays.
On the other hand, heterogeneous clients are not essential to the definition of cloud computing because I can perfectly imagine a cloud service that is just for one type of client, such as web browsers.
Location virtualization ^
Point 3 is interesting. Quite a while back, I suggested that location independency (I called it location virtualization) is a defining feature of the cloud. I have never seen this characterization mentioned anywhere else. I think it is so important that it is deserves its own point in the definition. Not without reason did the word “cloud,” which implies a certain location fuzziness, lend its name to this new technology.
I prefer “location virtualization” over “location independence” because I think that cloud computing essentially offers a new level of virtualization. It is the virtualization of other forms of computer virtualization such as hardware virtualization, application virtualization, or desktop virtualization.
It brings virtualization to the next level because a virtual resource—say the hardware a virtual machine utilizes—is not only virtualized on a particular host, but the host itself (together with its virtual machines) is virtualized in a fuzzy conglomerate of computing resources that could stretch across several data centers. If a resource is virtualized, it disappears from the eyes of the consumer, which is why you can’t choose a host when you launch an EC2 instance.
So, if someone wants to sell you a private cloud solution for server systems where consumers see or can even choose the host on which their virtual servers run, then you know that you have only been offered a simple server virtualization tool.
On the other hand, without location virtualization, other forms of computation that should not be considered as cloud computing would also fall under the definition above. For instance, all other characteristics also apply to supercomputing. However, a consumer always knows on which computer his application runs because only one computer is involved and the consumer knows that computer’s location. Therefore, supercomputing does not support location virtualization.
My cloud computing definition ^
Hence, as to my own definition, the term “cloud computing” applies to a computing technology if, and only if, these five characteristics apply:
- Location virtualization
- On-demand service
- Resource pooling
- Rapid elasticity
- Measured service
What do you think about this definition? Is an essential cloud computing feature missing, or is the definition too tight? Does the term “location virtualization” make any sense to you?
In my next post I will cover the concepts of public cloud, private cloud, and hybrid cloud. You'll notice that not all authors use these terms in the same way.