Introduction to Cloud Computing
Let’s start by doing an introduction to cloud computing. Let’s take a trip in time. If we look maybe 10, 15 years back, before even virtualization, in each company’s datacenter we had a ton of servers, and each server had a different purpose, maybe running on different hardware, and even with different operating systems. Each new application that you installed, the vendor required that their application ran on a dedicated server. Each one of those servers had their own CPU, RAM, and hard drive resources, and of course, each one of them needed enough resources for utilization at peak time. But what this did is that, on average, most servers were really underutilized and organizations were spending a ton of money on hardware that most of the time was not even used at 10% of its capability.
But then we started to implement virtualization, which allowed us to run multiple virtual machines on a single virtual host, so we were really able to get more usage out of our hardware and cut down on space, cooling, and of course, costs. However, even with virtualization, we still had a few disadvantages, such as high upfront costs since we need to buy powerful virtual hosts, which we would then need to keep for five years for the amortization of cost. We still need to pay for space in the data centre, as well as electricity and utility costs for cooling and other server needs. Furthermore, hardware maintenance is still needed as this can break down, network cards can go bad, and so on. Virtualization is still way more cost-efficient than dedicated hardware. Don’t get me wrong, but there is still space for improvement, and this is where cloud computing comes in.
Cloud computing enables companies to consume a compute resource, such as a virtual machine, storage or an application as a utility, just like electricity, rather than having to build and maintain computing infrastructure in‑house. In a cloud environment, you have the cloud provider, which owns their datacenter and manages all of the hardware, like servers, networking, and, of course, virtualization. As the cloud is fully built on the principle of virtualization, no client ever has direct access to the hardware, simply to a virtualized environment. All of those resources are pulled together and then shared to multiple clients that all consume that shared hardware. Those clients don’t need to know what servers they run on or on how many servers their different environments are running, they simply consume a service and the cloud provider is the one making sure there are enough shared resources to handle everything.
In a cloud environment, users simply select what services they want to use with each service having a different price per user or per minute of utilization for that specific resource. In a cloud infrastructure, this should be self‑service by the user, and the provisioning should be fully automated by the cloud provider and delivered in an almost instant fashion. Now let’s talk a bit about cost. In a cloud model, services are billed on demand by the minute or by the hour, depending on what service you are using. This on‑demand billing allows organizations to create resources when needed and then stop paying for them when they don’t need them anymore. This way, organizations can be more dynamic and cost-effective, as well as reduce the upfront cost. Since the money you pay for the cloud does not get depreciated over multiple years, it’s a resource that you use right away, the cloud cost usually goes into the operating expenses, or OpEx, instead of the capital expenses, or CapEx.
Here is an example of billing for a virtual machine in Microsoft Azure. First of all, I need to select the specifications of the machine that I want. In this case, I’m selecting a virtual machine with 2 cores and 7 GB of RAM. You can see right away the cost would be about $0.36 an hour, and I can also select the operating system, in this case, Windows. Because Microsoft owns Windows, the cost that I paid for this virtual machine also includes the licensing for the Windows operating system it will be using, so now I’m getting that license as a service as well. For the estimate, I can also choose how many hours I expect this virtual machine to be used per month, so if I use this virtual machine for 730 hours, my cost would be 262.85 per month. And as you can see inside Azure, virtual machines are built per second, so it’s really flexible, you only pay for what you use. Most cloud providers will also offer you savings if you pre‑pay for a number of years. So, if I know that I will need this VM for three years to run 24/7, I could save up to 55% of my computing cost, which could make sense for some servers that are always up. Cloud services can also be scaled depending on demand and even automatically.
In this case, I have an app service plan in Azure, which is a platform in which you can host websites, and I can enable auto scale on it. This way, I can say that, for example, when the CPU usage goes above 70%, add more CPUs or instances to that service. This can be really useful for public websites or different apps, though you pay a set amount at rest or when they’re not used a lot, but if you have a peak or lots of people connecting and using that service at the same time, increase those resources, pay a bit more for that specific set of time, and then go back to normal. And this is why we say that the cloud offers rapid elasticity. Whenever you need it, you can grow the amount of resources that you use and pay for, and then right away when that load is not there anymore, you can always go back to minimum spending and really only pay when you need those resources. Something else that is a big advantage of the cloud as well is the reliability.
Cloud provider takes care of high availability and disaster recovery
In a cloud scenario, the cloud provider takes care of high availability and disaster recovery on their platform. Just to go over the terms so you can see the difference between those two, high availability is usually to protect us against software and hardware failures. Those are usually very local, like a rack goes down, a server loses power, a service crashes on one of the servers, and things like that. On the other side, disaster recovery is something much bigger, like a natural or human‑induced disaster. Take, for example, a flood, fire or an earthquake that puts the whole datacenter down. With cloud computing, you can also benefit from fault tolerance, which is very similar to high availability, but offers zero downtime. So when you look at the service level agreements for your cloud provider, make sure you take a look at their reliability service level agreement for high availability, disaster recovery, and fault tolerance. Now, as you can imagine, if you want to have fault tolerance and disaster recovery in your own datacenter, the cost can go really fast, as you would need a second datacenter on the other side of the country for which you need to pay servers, networking, utilities, and so on. So from a cost perspective, the cloud can offer a much better solution for a better cost since the cloud provider already has those, so you would benefit from the economies of scale. If we look at Azure a bit more specifically, there are Azure datacenters in over 60 regions worldwide, allowing you to implement fault tolerance across not only multiple states, but continents.
Understanding Types of Cloud Computing Services
Types of Cloud Computing Services
Let’s start by introducing the types of cloud computing services. There are multiple types of cloud computing services, but the three main ones are Infrastructure as a Service, Platform as a Service, and Software as a Service. Let’s take a look at what the differences are. What really differs between those cloud computing services is how much you manage versus how much the cloud vendor manages.
Let’s start with on‑premises where it’s really easy, you’re the one that manages everything from storage to the datacenter to networking, virtualization, and applications on top of it.
Infrastructure as a Service (IaaS) delivers cloud computing infrastructure to organizations, including things such as servers, networks, and storage. You, as the client, still manage the operating system, the applications, as well as the data.
Platform as a Service (PaaS) is mainly used for applications and provides a framework for developers that they can build upon and use to create customized applications. All servers, storage, and networking are managed by the third‑party provider while the developers can maintain management of the applications.
Our last option is Software as a Service (SaaS) in which you simply enjoy the service, pay a fee, but you don’t manage anything at all. Everything is managed by the vendor. A majority of Software as a Service application is run directly through the web browser and do not require any downloads or installation on the client-side. While this may seem a bit complicated to grasp at first, let’s take a look at the same model, but from a different perspective.
Let’s compare our cloud computing services to everyone’s favourite food, pizza. Our on‑premises model would be similar to making pizza at home from scratch. You make your own dough, you cut your own toppings, you put it in your own oven, and you eat it at your own table. Our Infrastructure as a Service model is similar to getting frozen pizza from the supermarket and cooking it at home. You pay for the part of the service, the pizza dough, tomato sauce, toppings, cheese, but you still cook it yourself and eat it at your own table. The Platform as a Service is similar to pizza delivery where the pizza comes to you already made and hot, you simply need to pour the drinks and eat it at your own table. And finally, the Software as a Service is like dining out. You don’t have to bring or make anything except your wallet, but everything is taken care of by the vendor, you simply pay the bill for what you consume. Hopefully, this comparison with pizza allows you to better view the differences between the cloud computing service models.
Let’s take a look at some examples of cloud vendors and services in each category. For Infrastructure as a Service, some of the big players are Microsoft Azure, Amazon Web Services, or AWS, and Google Compute Engine. In the Platform as a Service, some big players our Heroku, Amazon Elastic Beanstalk, as well as Azure Logic Apps. In the Software as a Service, we’re looking at Office 365 by Microsoft, Google G Suite, Salesforce, and Dropbox. And, of course, those are just a few of the most popular ones, but there are hundreds, if not thousands of examples of cloud providers with the Software as a Service one probably the most popular one.
If we dive deeper and focus only on Microsoft, an Infrastructure as a Service, we have Azure Compute, which is the name for the virtual machines, and Azure Storage. In Platform as a Service, we have things such as Azure Logic Apps, Azure Functions, Azure Web Jobs, and Azure Automation. And in the Software as a Service, we have services such as SharePoint Online, OneDrive for Business, Microsoft Teams, and the Power Platform. Those are just a few examples. Microsoft has over a dozen services in each one of those categories.
Cloud Computing Services Scenarios
Now that we have seen the basics, let’s take a look at some scenarios for each cloud computing type.
Let’s start with Infrastructure as a Service. Infrastructure as a Service is, first of all, perfect for test and development scenarios as it allows you to turn on and off dev machines only when needed, and you don’t need to pay for the hardware full time. Storage and backups are also a great scenario for Infrastructure as a Service as the pricing to keep backups in the cold storage are very advantageous. Storage and backups are also a great scenario for Infrastructure as a Service as the price to keep backups in cold storage are usually very good. Next up, high-performance computing and big data analysis, which are often things you only need for small periods of time, but require very powerful computers, can be a great way to use Infrastructure as a Service as you only pay for the time you need.
Now let’s talk about Platform as a Service. A great scenario is an analytics or business intelligence. Tools provided as a service with Platform as a Service allow organizations to analyze and mine their data, finding insights and patterns and predicting outcomes to improve forecasting, product design decisions, investment returns, and other business decisions. Platform as a Service is also great for developers. Platform as a Service lets developers create applications using built‑in software components, and cloud features such as scalability, high availability are included, reducing the amount of coding that developers must do.
Finally, for Software as a Service, the main scenarios are getting access to sophisticated applications without the need to manage any of the infrastructures yourself. From a Microsoft perspective, imagine all of the work needed to install SharePoint, Exchange, and Skype for Business servers on‑premises versus just using the same tool in the cloud in a matter of minutes. Software as a Service also is basically instant where if you want to add more users, you just enable their license and they can use the service.
Understanding Cloud Computing Deployment Models
Let’s start by looking at the different types of cloud computing deployment models. There are multiple types of cloud deployment models out there.
First one we’ll talk about, which is the most popular, is the public cloud. In the public cloud, you have a cloud vendor that provides cloud services to multiple clients. All of the clients securely share the same hardware in the back end.
A private cloud, on the other hand, is when the hardware is only used by a single company, which most of the time, but not necessarily always, also owns the hardware and datacenter. This is very close to the traditional datacenter model we always had, but in a private cloud, most of the time, IT bills the different departments based on the services that they use.
Next up, we have a hybrid cloud. The hybrid cloud is a combination of both public and private clouds. Often, there’s automation and orchestration between the two. Next up, we have the hybrid cloud, which is a combination of both the public cloud and the private cloud with automation and orchestration between the two.
The last option is the community cloud. In a community cloud, you have a shared infrastructure between several organizations with common security, compliance, and jurisdiction concerns. We often see the example of a community cloud when governments from different countries set up a shared services division that hosts all of the IT for that government.
Now, let’s take a look at Azure and how that fits in. The easiest one is really the public cloud, as most Azure customers and offerings are in the public cloud model. Microsoft also has solutions for the private and hybrid cloud markets in its Azure Stack product family, which can be used for both connected scenarios, meaning hybrid cloud, as well as disconnected scenarios so you can run the same application inside of private cloud on your own hardware. The big advantage is that the tools, experiences, and app models you would have in your private cloud would be consistent with other workloads you might have on the public cloud, and this would also allow you to easily transfer workloads from your private cloud to the public cloud, whatever you decide to do so. Lastly, Azure also has offerings for the community cloud category. One of the most popular examples is probably the Azure Government, which is an Azure offering specific to government entities. You cannot simply register for it, you need to be a valid government organization and be approved for it. Azure Government is actually hosted in separate data centres from the public cloud and can handle data that is subject to government regulations and requirements, such as FedRAMP, DOD, CJIS, and more. Azure also has other community cloud offerings, for example, Azure China and Azure Germany, and from Microsoft, those are part of the sovereign cloud category, but from a cloud deployment model point of view, those are both community clouds.
First of all, we have learned what cloud computing is and how it enables companies to consume a compute resource, such as a virtual machine, storage or an application, as a utility, just like electricity, rather than having to build and maintain computing infrastructure in‑house. We have then learned about the cloud computing services. The three main ones are Infrastructure as a Service, Platform as a Service, and Software as a Service. And we have also looked at different Microsoft offerings for each cloud computing service model, from Infrastructure as a Service to Platform as a Service, and finally, Software as a Service. We have also looked at the different cloud deployment models, the most popular being the public cloud, where you have a cloud vendor that provides cloud services to multiple clients and all of the clients securely share that same hardware in the back end. A private cloud, on the other hand, is when the hardware is only used by a single company, which most of the time, but not always, owns the hardware and datacenter. Next up, we have the hybrid cloud, which is a combination of both public and private cloud with automation and orchestration between the two, and the Microsoft solution for it is also the Azure Stack. The last option is a community cloud, which is a shared infrastructure between several organizations with common security, compliance, and jurisdiction concerns.
Thank you very much for reading this artical.