top of page
Writer's pictureUtkarsh Parhate

Cloud Computing Basics

Updated: May 15, 2020


Introduction

Starting off with a basic overview of cloud computing. There are plenty of pundits around the world, each with their own definition of cloud computing. In simple words, cloud computing is a term broadly used to define the on-demand delivery of IT resources and applications via the internet with pay as you go pricing. Gmail, Facebook, and Dropbox are some examples of consumer cloud services that we're already familiar with. Theoretically, cloud computing is the on-demand delivery of I.T. services from a third party provider over the Internet. Looking at the schematic overview, we have third party companies such as Gmail, Facebook, and Dropbox. These services are accessible over the Internet and consumption of these services happen in an on demand way. We use these as much or as little as we like and we can access them from any place where there is internet connection. The cloud service is actually the capability that's being provided by the cloud provider. For instance, Facebook is a social networking service, and Dropbox is a storage service.




Terminologies associated to Cloud Computing:

Cloud provider/ Cloud service provider - A company that provides a cloud service to organizations and/or individuals, such as Facebook or Gmail. The consumer is the individual such as yourself or an organization such as your company who are consuming. We as a consumer, use the services that are provided by the cloud provider. 

Typically the charges are incurred for what you use - pay as you go basis. This is very similar to a utility bill, electricity bill. Pay for the amount of electricity that was used. There is no payment for the infrastructure, the power stations or the grids or the pylons that are responsible for maintaining the operations. Perhaps, that comes as part of your cost, however, there is no base fee and typically the payment only corresponds to the amount of electricity that was used and that's the same with these cloud services.

With Gmail you get free email, but then - over a certain amount of storage, some payment will be required, somewhere around $2.00 a month to allow bumping up the storage from 15GB to 100GB. Same goes with Dropbox as well - pay for a certain amount of storage, and over that, when the next threshold is met, pay a bit more. With the AWS cloud, the payment criteria is similar. Sometimes, per gigabyte rather than for a certain fixed amount of storage. 

Multi-tenancy - This is very common terminology used in cloud, which essentially means that the services are shared with multiple customers. Facebook has millions of customers. Gmail has millions of customers and so does Dropbox. The storage or the files that are saved onto Dropbox are not on some kind of dedicated device that's just for you. They're put on systems that are shared amongst many different customers.  

The final term in the terminology section is "X" as a service. Here "X" can be replaced by a letter that corresponds with the type of service that's being provided. For instance, it could be software for it to be called "Software as a Service". It could be a backup capability to backup data which can be called "Backup as a Service". This is the type of service model and it's the way that the service is delivered to you as a consumer. 

Enterprise Organization:

Some basic examples of the types of cloud services that an enterprise organization might use. This would help in understanding how cloud is used, how it's consumed by organizations and the types of services and use cases that organizations leverage in the cloud. An organization (Eg. Ingenico) for instance, wants to deliver a Website to its customers and that website comprises of some images which will be stored in the cloud as well. The customers can now connect to the Website and they can access, upload/store images. The reason why cloud service is a prominent choice for this is because, during the preliminary stage there might be few customers who are using the website but eventually the growth is expected to be in thousands or perhaps, millions of customers. In the AWS cloud, the storage is delivered in the form of "consumer organization as a service". So the payment corresponds to the amount you use. You don't have to worry about how many servers AWS have in their data center or how many storage systems they have. They have that capacity which provides the flexibility to grow/scale the business and services as needed to support the customer demand.




Another example here would be of an order system. In this case, the customers are coming in, placing an order and that order is going into a database. The database will scale as more customers are placing more orders, the order system front end website will scale as well. So the organization doesn't have to worry about whether their customer base increases massively because they don't need to plan too much for that. The scalability is handled by AWS.

Furthermore, the cloud is really good for ad hoc use cases, especially for things that the organization doesn't do on a regular basis. For instance, if customers from all around the world have been placing orders and records of those orders are stored in the database. And if the organization wants to find out some behavioral patterns, they will copy the data into an analytics database and perform derived set of algorithms on that data to try and work out what the customer behavior is, which would in turn help the organization in understanding the granular level requirements of existing customers. Knowing this would provide organizations the ability to grow their business by implementing requirement based ideas. This requirement implementation will take a lot of computing power and could get very expensive. It will also require a lot of storage because the organization might perform this algorithm just once in a year, as the organization doesn't want to buy all the hardware and the software to do this. But in the cloud they don't need to. They just copy the data when they run the analytics and then they switch it off and delete the data. This is a great use case for cloud. Another way that organizations can use the cloud - not just for systems that are available all the time but for systems that they might just need periodically or as a once off, so that they can run some kind of analytics or evaluating a new functionality or deriving new ways of delivering capabilities to their customers.

This is just a very high level overview that was provided to try and set the scene. Key Characteristics of Cloud Computing: 

There are mainly 5 characteristics as listed in this table. These are technical characteristics of the cloud solution which predominantly describes how a cloud system should be built and what should it provide and offer in order to be defined as a cloud system.


  1. The first is on-demand self-service. This means that a consumer can use the cloud resources as they need to. It should be automatic and should not require human interaction. For Eg. In order to launch a Web service in the cloud, there is no need to have to visit the data center. No need to go to AWS and actually do anything. It can be done over the Internet, just by sending some commands or by navigating through the console, press a couple of buttons and the Web services are launched. 

  2. The second is Broad network access which means that connection to the service can be established over a standard communication technology such as the Internet. In many cases, public cloud such  as AWS can be accessed over the Internet. There are private network links that can be used as well. These are often known as wide area networks and there are several different types of networks. All we need to understand here is that - cloud service connection can happen using a standard long distance communication technology such as the Internet.

  3. The third one is resource pooling. This means that the cloud service provider has multiple customers and those customers share the same underlying resources. So the server systems, the storage systems, the network systems, are all shared amongst multiple customers or tenants.

  4. The next important characteristic of cloud computing is Rapid elasticity which means that if a website is placed on AWS that website can scale as the organization gains more customers. If you have a thousand customers one month but then several thousand the next month, AWS will automatically scale organization's infrastructure to meet that demand. In order for this to happen, the most important step is to set it up correctly. This is one of the key benefits for businesses as they now have ability to adjust their business scale. If the count is increased to millions of customers, AWS has enough capacity to meet those demands. Even if the business goes quiet or the website becomes less popular, the resources can be scaled back in again. This scalability is the reason why this characteristic is termed as "rapid elasticity". So, there is no need to pay for a Website that's built for millions of users. The resources can be scaled back in again and payment invoice will mirror the usuge that corresponds to the current demands.

  5. The last in the list is Measured service. This means that the resource usage is monitored and metered. Typically it's very transparent. So the bill will be itemized and it will show the amount of each service that was consumed, what the rate was and what the total expenses are.

This was a quick overview of the key characteristics of cloud computing. This is a very generic definition of what a cloud system looks like. Cloud Computing Service Models: As already covered in previous sections, cloud service is a kind of capability that's delivered to you or an organization as a service. There are service variants such as infrastructure as a Service, Platform as a service, and software as a service. To further the understanding, it is important to know, who manages what in each of these different service models. For a particular scenario, wherein a group, organization or an individual requires their database to be fully managed - which service to choose for this architecture? By the end of this section, it would be possible to determine the answer for such requirement specific scenarios.



On premises Service Model: This is the old way of doing things which is also known as private cloud. In this case, every component is managed by you, which means - your own data center, physical hardware, and all the software layers right up to your data and your application, are all managed/operated and owned by you. 


Infrastructure as a service (IaaS): When infrastructure as a service is consumed, the data center, physical hardware and the Hypervisor - the software that runs the operating system - Windows or Linux which you then provision on that cloud service - all of that is managed by the service provider. Under this model, a system admin can go to Amazon EC2, which is a service that can be used to launch virtual machines or instances. In other words, it is Windows or Linux running in the cloud. A system admin can go and request a virtual server through a console or by a command. You will then manage that Windows or Linux instance and all of the data and applications that run on top of that. That's up to you. Platform as a service (PaaS): In this case the operating system, Windows or Linux, and some of the software that sits on top of it is also managed for you. So that means the only thing that you worry about is data and applications. In this case, maybe a developer uploads some code to Elastic Beanstalk. For example, if a developer has some code for a particular Website, he doesn't have to build the server on which that runs. All he has to do is literally just upload his code and the Website is running.  Software as a service (SaaS): In the main schematic diagram above - the "managed by you" tag is not there, because everything is managed by the provider. Right from the bottom to the top, every component is managed by the provider. In other words, you just consume the software service. In the example schematic, it's your sales team who is logging data into Salesforce.com. This circles back to consumer example discussed in introduction at the very top - Facebook is a "software as a service" as is Dropbox and Gmail. We don't have to manage any of those services. All we do is consume them, at an organization or individual level. Cloud Computing Deployment: In the previous section, cloud computing service models were detailed, to cover how different components are managed by different entities and how the individual component level responsibilities differ from one service model to another.  Now, what do the cloud service provider manage and what do consumers manage? Following Cloud computing deployment models would encompass details about where are your resources deployed. 

  1. Private cloud which means that you as an enterprise organization deploy your own infrastructure and applications into your own data center. Now it's possible that a third party provider actually does that for you but you would have a dedicated environment that's all yours. So you have control over how it's built and it's not a multi-tenant environment that's shared with other customers. VMware, Microsoft, Red Hat, or OpenStack could be some examples that provide capabilities which make them a cloud service.

  2. Public Cloud which means that I.T. services that you consume are hosted and delivered from a third party and accessed over the internet. You could access them over a private link as well but typically it's over the Internet. In this case, you have Amazon Web Services, Microsoft Azure and Google Cloud Platform and those are the biggest players in the industry. There are many others as well. 

  3. Hybrid Cloud uses a combination of on premises private cloud and public cloud services. In this case, you might have a private cloud stack running on VMware and you would also have AWS. Some workloads are running in the public cloud and you've got some in the private cloud.

  4. Multi Cloud means that you use multiple public clouds at the same time and possibly multiple private clouds. So you might have applications running on AWS and also Microsoft Azure. And you might do that because each provider has different features and capabilities. Additionally, along with different features and capabilities they might have different price points. One workload might be best suited in AWS and another workload might be a better fit for Microsoft Azure.


PRIVATE, PUBLIC AND HYBRID CLOUD With the private cloud, your organization has its own data center or at least it uses what's called a co-location facility where you rent a bit of space in somebody else's data center but you own the data center or the space within the data center. Then you put your own equipment into that such as your own applications, your own software, and you manage that yourself. The benefits of this are - 

  • Complete control of the entire stack 

  • Authority to decide how the system should be built

  • Control over operations  


There may be a few cases where organizations need to use a private cloud as well because perhaps they must keep certain applications or certain data within house because of security reasons. Now that could be compliance or it could be because there is a certain directive within the company. The next deployment model is the public cloud. In this case the organization does not have its own data center. It is just consuming services from the public cloud. Now, one of the key advantages of this model is it's variable expense. So you're only paying for what you use which is not a capital expense (CapEx). It's an operational expense. So that means it's a bill that you get each month and your company can offset that against their tax bill which is something your CFO and your accountants will prefer. Another great benefit of the public cloud is economies of scale. AWS is huge and has millions of customers so they purchase huge amounts of equipment and rent huge amounts of data center space. So that means, they can lower their price point and pass some of that onto you, for you to achieve lower costs for running your workloads in the cloud. Now, that's not always the case but it's possible as well. In fact, it is contingent on your workload.

Another benefit of public cloud is it's massive elasticity, which means you can elastically grow within the AWS cloud. For instance, the companies such as Uber and Netflix were able to grow their businesses at a massive scale by leveraging public cloud. In the early days they wouldn't have had the capital to be able to build their own data centers. So the only way they could grow at that pace was to use the public cloud.

The third model is the Hybrid Cloud. This is where the company has its own data center. So it has its own on premises or private cloud, but they're also leveraging the public cloud. They might discover that some of their workloads need to stay in their private cloud. Other workloads are a good fit for the public cloud and this gives them a lot of flexibility and choice which implies that they can run their workloads in the best cloud environment for that specific workload. Legacy IT Vs Cloud:

Legacy I.T. is really the old way of doing things before public cloud computing came into picture. At least that's the way AWS see it. This method is also known as traditional I.T. and it can also be a private cloud environment. In other words, an environment that you run and own yourself, which really depends on the capabilities you have in that environment. But either way, it's the equipment that you own yourself and put in your own data center, however, all this provision comes with a lot of costs.

Cost of - 

  • Data center 

  • The power

  • The computing equipment 

  • Software licenses

  • Maintenance contracts for the equipment and the software 

  • Staff wages and so on 


Furthermore, there is data center operation and security maintenance, equipment installation, ongoing system monitoring and operation activities. You also have to back it up and recover it. It's not just the operations team, there's probably a development team and architecture team and so on. 


So the key problem with this model is that it's very capital heavy and there's a lot of money that has to go into building these environments along with equipment and wage payments. In the public cloud, you're paying more of an ongoing operating expense. So it's a monthly bill that you get which you can offset against your tax bill. With legacy I.T. you've got to come up with a lot of capital to buy the equipment. The other thing is the operational overhead. There's going to be a lot of teams and a lot of people to manage this equipment. Moreover, a lot of what they're doing isn't really what we call value add stuff. Installing a server into a data center is not really something that brings differentiation to you company. It's not really going to put you into the modern world as a competitive business. Those staff wage money should instead be given to something else that can bring the desired differentiation. Public cloud means that you're not spending money on the installation maintenance and those low level activities instead you're focusing it on other areas. A huge limitation is scalability. So clearly, if this company grows very quickly there're going to have to purchase lots and lots of equipment. And that's going to be a lot of money that they need. Now if they hit hard times the next year and their business slows down they're still paying for that equipment they've still spent money and they're still spending monthly bills on operating those environments and depreciating their equipment over time. In a cloud world that wouldn't happen. They would just pay less as their business shrinks and as their customer base shrinks. 

This section lays out the clear context around the old way of doing things. Next section will cover the key advantages of public cloud computing which will in turn provide more clarity about benefits over traditional I.T. 

Six Advantages of Cloud:

This is the AWS view of the world. The data in Name and Description detailed below comes from AWS white papers and articles that would show up if we search advantages of cloud computing on google.


  1. Trade capital expense for variable expense: Instead of investing in data centers before you even know how you're going to use them, pay only when, and for how much you consume. 

  2. Benefit from massive economies of scale: This implies that organizations should not  build out a big data center and spend huge amounts of capital when they don't really know where their business is going and whether they're going to use it or not. Instead  pay for what you use in the public cloud and benefit from massive economies of scale. This is about achieving a lower variable cost due to the size and scale of AWS.

  3. Stop Guessing about capacity: Organizations often try and work out the capacity that they're going to need while deploying a new application or a specific IT capability. Questions such as how many servers? How much storage space? What type of networking equipment is needed? etc. are common during the preliminary phase of a project. Sometimes you don't really know the answers to that because you don't know what the take up of the application is going to be if it's a consumer facing application. You don't really know how well your consumers are going to use it. So you have to take some guesses and often those guesses erring on the side of caution. The I.T. department of a particular organization might say - Let's make sure that we don't run out of space in a few months time and in order to avoid running into problem due to space constraints, let's just overestimate the amount of capacity that's potentially needed to run the ensure the application runs successfully. That means lots of wasted capital because the organization may end up discovering that the outstanding space is unused, which in fact is something that's really true in the world today. The amount of resources that organizations use is just a fraction of what they actually have. So they're ideally paying a lot of money for systems that they don't use. With AWS you don't need to guess because you only pay for what you use and you provision what you use. 

  4. Increase speed and agility: This is really key as a business benefit because it means that your company can adopt, change and grow as market conditions allow. It really gives you that agility and speed to market as well, so you can be really fast in bringing a new capability to your organization or to your partners, whereas in the old world you have to spend a lot more time designing and building before you go to the point where people could use that service.

  5. Stop spending money running and maintaining data centers - This is really about using your money as a business and paying your staff for taking up assignments that are going to help you to grow your business such as innovation and process improvement as opposed to spending on doing low level tasks such as running data centers and doing basic operational management stuff.  

  6. Go global in minutes: This means that you can deploy your applications into multiple regions around the world. It's really difficult to build your own data centers around the world or even put your own equipment into other people's data centers around the world. It's a huge undertaking. In the cloud world, using public cloud you can do this really quickly and efficiently. An application can be built and can be placed in AWS data centers all over the world just with the click of a button and in a matter of no time at all.





30 views0 comments

Recent Posts

See All

Comments


bottom of page