Hello friends, In my last article I had explained Top 5 reasons to learn Cloud Computing and I hope you are pretty convinced that you need to learn Cloud Computing. In this article I will explain Cloud Computing Basics.
What is Cloud Computing
As per NIST, Cloud Computing definition is:
“Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models. “
Which means that you don’t need to worry about the underlying complex infrastructure. You just concentrate on your business needs and application logic and let Cloud Computing Service Provider take care of those complex parts for you in an advanced way and that too at an affordable price.
Chances are that you are already using lots of cloud services already. For example, when you share files using apps like DropBox, OneDrive, etc. Or using email services like Gmail or Office365 suite etc.
Why Cloud Computing
Because it solves many Traditional Computing or complex on-prem solutions, it is becoming the necessity for companies to switch to Cloud.
Below are the main reasons:
- Pay as per usage (metered billing)
- Stop spending money on your own data-centers
- Broad Network Access
- Rapid Elasticity
- On-demand self-service
- Go global in a few minutes
Pros and Cons of cloud computing
Well, I still feel that based on business needs you would need Cloud as well as on-prem solutions and the best of both would make more sense in the real world.
Pros of Cloud Computing
- Easy to use
- The majority of security issues would be taken care of already by cloud service providers
- You don’t need to be an expert to start working with cloud-native solutions
- Flexibility to use services as per your need
- Pay as per usage
Cons of Cloud Computing
- It can go complex and hard to manage when your requirements get complex.
- The thin boundary of who will take care of the security of what could be confusing. Security misconfiguration can take your site down
- Full usage of services might increase the cost at times.
- Lesser control of underlying infrastructure
Deployment models of cloud computing
Public cloud is a cloud service that is available for the public and data is stored on 3rd party servers. Service providers manage and administer the underlying resources. They offer resources for a free or pay-per-usage basis. It is easy to use but can have reliability and security issues as compared to other service models.
Examples of Public Cloud Service Providers are Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM Cloud, Alibaba etc.
Technically, there is very little different than the public cloud, but think Private Cloud as a closed private beach party as compared to a restaurant open to all (Public Cloud). It can be managed by a single organization or multiple but provisioned only for private use. It may exist in Cloud or on-prem and surely more secure than public Cloud. Well, costly too!.
Private Cloud examples are OpenStack, VMware and can be AWS, Azure too.
A community cloud is specifically meant for various organizations sharing the same interest or concerns like federal or government projects, some ML-based cybersecurity projects, etc. It can be managed by one or more organizations in the cloud. It may exist on-premise or in the cloud. This model is suitable for organizations that work on joint projects.
Hybrid Cloud is the combination of two or more above-mentioned cloud deployments types based on the business requirements to get the best out of it. Most enterprises use the combination of these cloud deployment models for their projects.
Types of cloud computing services
It is like how you deliver the services. It has mainly three types but nowadays other service models are also becoming famous. But we will keep it out of scope for this blog and let’s see 3 types of Cloud Computing Service Models.
Infrastructure as a Service (IaaS)
IaaS is the most interesting but complex service model of all. In this service model, consumers can have access to O.S., Network, Storage, Firewall, Computing Services, and able to run, deploy arbitrary software including application, even an O.S. Still, the underlying core Cloud Infrastructure would be taken care by Cloud Service Providers.
Think of AWS, GCP Azure as IaaS examples. Other examples can be Rackspace, Digital Ocean etc.
Platform as a Service (PaaS)
Now, imagine you want to host a website but don’t have the infrastructure. What you have is your code, libraries, and tools that Cloud Service Providers can support. Then what you need is a platform to deploy your code, tweak your settings and you are online in a few minutes rather than a few days. Well, such a service delivery model is called Platform as a Service or PaaS in short. You don’t need to worry about underlying supporting infrastructure, its security, network services, server, O.S. platform, Storage, etc.
Examples of PaaS are Amazon Elastic Beanstalk, Force.com, Heroku etc.
Software as a Service (SaaS)
It is the most abstract level of the Cloud Service model where the consumer doesn’t manage or control the underlying components like hardware, networks, storage, servers and will only have limited access to application configuration settings.
Examples of SaaS Platform are Gmail, Dropbox, Quora, Pinterest, PubG etc.
Then there are many topics like Cloud Security covering shared resources security model, importance of logging and monitoring, compliance, incident response etc. are there to discuss.
You can watch my Youtube video where I have explained Cloud Computing basics in 12 minutes.
I hope, it gives you a good idea what is Cloud Computing and its advantages including its deployment and delivery models.
We should start learning Cloud Computing, What do you say?
He is a seasoned professional having 10+ years of experience into Software Development, Python, AWS, Application Security and have an interest in Security Automation.
He is an author and technical reviewers of many technical books associated with PackT and Manning. When he gets free time, he uses to work on his github projects which you can checkout here: Sanjeev’s Git hub repo