You are currently viewing Virtual Machines – Cloud Essentials

Virtual Machines – Cloud Essentials

Virtual Machines are a critical part of cloud computing. After the basics in my previous posts, it is time to make the final leap into Virtual Machines and cloud computing. 

In this post, I will show how Virtual Machines are integrated into cloud computing and what role they play. I will also show you the basic layers of cloud computing and why cloud computing is not possible without Virtual Machines. 

From simple virtualization to the cloud

Simple virtualization enables you to optimize and reallocate your computing resources. In my case, it helps other people in my family to work on the OS they prefer without needing a separate workstation. However, the simplest form can’t exceed the boundaries of local hardware: for my family, this is the single workstation that we are sharing. 

The good news is virtualization gives you even more flexibility: you are not bound to your own device. I’m not stuck to my own hardware or to an investment in new hardware if I want to expand to applications that require more hardware.

For instance, my computer is a few years old. In order to play the newest games, I would have to upgrade my computer or buy a new one. This was how it used to be a few years ago when a computer had to be replaced every few years. Partially because of the huge technological advancements and partially because you were stuck to your own workstation.

Nowadays there are additional options: using other machines somewhere else that are much more powerful. The only thing you need is a light device and a decent connection to the internet to be able to connect with these powerful devices in data centers that will do all the computing work. 

This can be done because virtual machines are nothing more than files that run on a hypervisor. This means it can be run on any network of servers worldwide. 

The beginning of hosting

Back in the dark ages, when the internet just started and hosting services were not around, setting up a website as a private person was close to impossible. If I would have wanted to build a website during that time, I would have needed to build a system, install a Web server and buy a high-end internet link. In addition to that, I would have to obtain and configure this link with a public IP address, set up firewalls for protection, and provide real-time maintenance to the system. Hosting and maintenance of this single website would have cost me thousands of euros before the site would be even online.

Fortunately, hosting services provided a solution. They offered to do most of the work of setting up a server and an infrastructure. Space was “hosted” on a single server of the hosting company that was also hosting other Web sites. This prevented a huge investment by a private person in infrastructure but it was still expensive. The system was not really scalable. 

In the mid-2000s, companies like Amazon started to offer a new kind of hosting service.  These companies discovered that they could use large groups of virtualized servers that could be combined with a powerful front end to give customers the opportunity to simply click and start the server that they wanted. This meant it was no longer required to use individual physical computers or directories on a shared host.

Cloud computing and Software as a Service (SaaS)

Most people have heard about cloud computing but the masses have no clue how it works. A lot of people think that services like Dropbox, OneDrive, Google Drive, and Netflix are “the cloud” but that is just partially correct. These services run on interfaces that are part of a vast array of on-demand computing resources, sold by parties like Amazon, Microsoft, and many other companies. The key technology of these innovative services that are offered is virtualization. Without virtualization’s savings of power, resources, recovery, and security, the cloud would not be possible.

These services are key in order to understand the concept of “the cloud”. Cloud servers and networks are used through layers of software that add great value to the underlying hardware by making it simple to perform complicated tasks or to manage very powerful hardware. 

As users, we mostly communicate with the top layer: the software layer. Applications like Dropbox, OneDrive, Netflix, etc. have been built on top of that layer and are called “SaaS”: software as a service. 

The SaaS model provides access to applications in any play that has a connection with the internet. Most of the time you can use this software without having to carry data with you and without having to purchase regular software updates. The subscription model that many SaaS providers have makes it easier to budget and keep hundreds of computers up to date which means that every user has access to the latest versions of software.

When you are on the internet, you use SaaS solutions most of the time. There is a downside to this though. Most of the time you trade something in exchange for using SaaS solutions. This can be done in the form of cash (subscriptions) or in the form of (personal) information that can be sold to third parties by the companies that offer SaaS solutions (Google and Facebook are examples). 

In addition to SaaS, there are two other layers of the cloud that are invisible to most people. These two layers are mainly focused to support SaaS solutions and their developers: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS).

Infrastructure as a Service (IaaS)

Infrastructure as a Services (IaaS) uses virtualization to minimize (1) idle hardware, (2) protect against losing data by creating backups, and (3) downtime. In addition to that performance is scaled in case of spikes in demand. Amazon Web Services (AWS) is a good example of an IaaS provider. IaaS is one of the biggest success stories of AWS and contributed big time to Amazon’s general success. AWS offers hosting companies new virtual servers and hosting companies can choose the operating system of their choice for just a few cents an hour. The great advantage of this is that hosting companies do not have to purchase expensive, heavy hardware. They are using the powerful infrastructure that Amazon offers. This infrastructure has been set up in huge data centers all over the world.

A Datacenter

In case you are hosting an application, it is really easy to scale up in case the number of users increases and you need more capacity. Imagine you make videos and host these videos on your own site. Suddenly, these videos become incredibly popular, and instead of 10 views every day, 100s of people want to see your videos. However, your capacity is very limited. If you would run your own server, you would have to invest all the time in new hardware to scale up in order to be able to keep up with growing demand. When popularity decreases (that might happen over time), you would be stuck with expensive hardware by hosting it all yourself. Companies like AWS mitigate these risks. In case of an increase in demand, you can just add some extra capacity with AWS by buying some more virtual servers at one of their data centers, and in case of a decrease you can easily scale down by canceling a few virtual servers. This concept gives you a lot of flexibility and it is one of the key reasons why the internet plays such a big role in our lives nowadays. 

For complex Web applications like Netflix, just virtual servers are not going to do the trick. Because of this, many other services are being offered to these kinds of companies like unlimited storage of data, database servers, caching, media hosting, and much more functionalities that are all billed by usage. Because of the increasing complexity of all these applications, the services offered are also improving. 

AWS is a typical IaaS. They are not responsible for running the platforms themselves. They only offer the hardware. This means that companies like Netflix that offer applications are no longer responsible for the hardware that is running, but they are still responsible for configuring and maintaining the operating system and software of any virtual machine they create on the hardware in the data center. This requires knowledge of the Operating System that is running and also time to manage this. It is possible to outsource managing the infrastructure, the operating system, and everything else, related to running an application. This all needs a lot of coordination and management to run smoothly and a lot of developers of applications don’t want to have all this burden. This is the reason why there is an additional service available: Platform as a Service (PaaS).

Platform as a Service (Paas)

As previously mentioned, developing a Web application also requires people to manage the infrastructure. This means that system administrators, database administrators, general network supporters, etc. are required to manage all these specialized activities. A Platform as a Service provides developers of web applications with all the tools they need to deploy, administer, and maintain their Web application. 

A PaaS provider starts with a form of infrastructure, provided by an IaaS. On top of that structure, the PaaS provider builds a platform: a complete deployment and management system to handle every aspect of the Web application. The infrastructure underneath the PaaS is largely invisible to the developer (end-user). In other words: the developer can’t control the platform directly. For the developer, the PaaS is just a place to deploy and run his or her application. AWS started as an IaaS provider only but nowadays also has a very successful PaaS division: AWS Elastic Beanstalk. In addition to Elastic Beanstalk, there is also the Oracle Cloud Platform (OCP), Google App Engine, Microsoft Azure, and many more.

Final thoughts

Cloud computing has become an indispensable part of our society. However, the biggest part of this society is still completely unaware of the influence that cloud computing has on their lives. My expectation is that this is only the beginning and that modern society will be fully built on cloud computing, especially with the introduction of the Metaverse

Feel free to contact me if you have any questions or if you have any additional advice/tips about this subject. If you want to keep in the loop if I upload a new post, don’t forget to subscribe to receive a notification by email.

This Post Has 2 Comments

  1. JD

    Great blog post!

Leave a Reply