Cloud Computing Ultimate Guide with beautiful Sketchnotes
In the following medium-length article, we define cloud computing and surrounding factors.
These days, the word “Cloud” is very synonymous with the world wide web.
Do you think of any businesses which are not on the internet?
Current trends indicate that if the business is not digital, then there is a good chance of failure.
Are you in Cloud?
We all know from our childhood that clouds are very tiny droplets of frozen crystals of water that are high in the sky above us.
So now the question is, what do these clouds do? My inner child will say, “it provides a service (by bringing rain) to the inhabitants of Earth.”
The same concept can be applied to cloud computing where IT services such as compute, database, storage, network, security, etc. are hosted somewhere remotely at a secured location and are accessible without us having to worry and think about how they have been configured and licensed.
In simple terms, instead of using a personal computer or local server, we can use a set of shared computing resources hosted over the internet.
Lets look at some examples of accessing cloud services
I’m sure everyone has used or experienced email services like Gmail, Outlook, etc., and by using those services, we don’t worry about how email services work or configured, how the infrastructure is secured, which software is used, licencing costs involved, who maintains it (administrators), and so on. We just use email service by providing basic authentication (username and password).
Do we really care how mobile phones work? I don’t! We just buy a SIM card from a telecom provider and don’t worry about how the phone network works. We just pay for the service based on what we consume.
How it works?
To understand how cloud computing works, let’s divide it into two sections:
The front-end and the back-end systems are connected to each other through a network, usually the Internet.
The front-end allows the user to access the data present in the back-end remotely from anywhere via a client (like an internet browser). The back-end is “the cloud” section, which is responsible for storing the data securely (it consists of servers, databases, etc.).
Cloud computing works on a client-server architecture where the front-end will make a request over the internet via API endpoints and the back-end system will process those requests based upon functionality and logic and send appropriate responses.
Cloud Computing Services
How many service models are available? Do you know the difference between various cloud service models? Will you be able to tell the difference between IaaS from PaaS and SaaS?
Lets have an understanding on various configurations and each different solutions you aware seems like a Lego model and each brick is like a piece of infrastructure or application which business needs.
Let’s subtly describe the tasks and responsibilities service providers offer.
IaaS (Infrastructure-as-a-Service) offers environments that are scalable, controllable, and automated, like storage and infrastructure resources (like servers) that are needed to deliver cloud services.
PaaS (Platform-as-a-Service) offers a framework that lets you create and release applications quickly. It also automates and manages the provision of infrastructure. It’s more like a combination of both infrastructure and application.
SaaS (Software-as-a-Service) offers programmes to run remotely and are accessible through the internet. In simple terms, applications and software are hosted on the cloud server (infrastructure) and made available to users over a network.
An on-premise data center provides a major data processing facility that is physically located on a site owned or leased by the organisation that is served by the data center.
You will have full control over an on-premises data center, including the hardware and software used.
You can customise it based upon the workload and requirements.
Only trusted members of your organisation will have access to the data center.
You will end up paying more for more purchases, maintaining and upgrading the servers, and spending on other factors such as server power and cooling.
You will face an upper limit on the capacity and the cause is less likely to be scalable.
On-premise solutions are less accessible to accommodate a distributed workforce.
Infrastructure-as-a-Service (IaaS) is made of highly scalable and automated compute resources, which are fully self-service for accessing and monitoring computers, storage, network and other services.
It allows businesses to purchase resources based upon demand and as needed instead of buying hardware beforehand.
IaaS delivers these infrastructure through virutalization technology and can be accessed by the clients via dashboard or API.
IaaS clients own the responsibility for managing applications, runtime, OS, middleware, and data.
However, IaaS providers (like AWS, GCP, and Azure) manage the servers, hard drives, virtualization, networking, and storage.
There is a good chance of insider threats or system vulnerabilities which may expose the data communication between the host infrastructure and VMs to hackers.
Training or expertise may be required to learn how to effectively manage the application on the service provider infrastructure.
Hardware resources are dynamically allocated and this may result in multi-tenant security concerns where previous customer data can be accessed.
Platform-as-a-Service (PaaS) provides cloud computing platforms for applications to run on. In simple terms, it’s a platform for software creation.
It delivers a framework for developers to build and create customized applications.
Servers, networking, storage, etc. can be managed by the cloud service providers while developers maintain the application life-cycle.
This gives developers the freedom to focus on building the software without worrying about the operating systems, software updates, infrastructure or storage.
Organizations can operate their own set of apps and services using PaaS solutions, but the data is hosted by a public cloud service provider, which may pose security risks and concerns as well as vendor lock-in.
Software-as-a-Service (SaaS) uses the internet to deliver applications which are managed by a vendor to their users.
It can be accessed via an Internet browser, which means that no installation or downloads are required.
Cloud service providers handle all potential technical issues of the data, server, and storage layers, resulting in streamlined business support.
SaaS apps can be hosted on a vendor’s public cloud service provider easily and this is difficult to get out of it as vendors don’t follow standard APIs, tools, and protocols, which might be necessary for certain business functionality.
It offers minimal customization capabilities as it provides a one-size-fits-all solution.
The vendor controls and manages SaaS apps and any resulting downtime or maintenance may impact the performance of applications.
Made at home, similar to an on-premise environment where we own full responsibility. For example, we make our own buns, toppings, and cheese, and have our own oven and gas to cook in. We own and prepare everything from scratch, and we eat at our home.
We take and bake, similar to IaaS, where we buy the raw materials like buns, patties, toppings, and cheese, and we bake them in our own oven or gas.
Burger home delivery is similar to PaaS, in which we order the food through a food delivery platform and eat it at our dining table.
Dining out is similar to SaaS in that we will go out to eat and enjoy the food.
Public cloud is cloud computing that is delivered through a network (internet) and shared across organizations.
A private cloud is a cloud computing platform that an organization fully owns and dedicates to itself.
Hybrid clouds combine both private and public clouds.
The public cloud offers various choices of solutions and computing resources to manage the growing needs of organizations of all sizes and verticals.
A few features provided by the public cloud are high elasticity, scalability, multi-tenant architecture and a pay-as-you-go model.
The cloud service provider is responsible for managing, developing, and maintaining computing resources shared between multi-tenants across the network.
And the main drawback is the lack of cost control and security.
Vendors available for public cloud are AWS, GCP, Azure etc.
In the private cloud, you are not sharing cloud computing resources with any other organization.
A data center may be located on-premise.
Private cloud is very customizable to meet the business requirements and security needs of an organization.
And the main drawback is the price and scalability.
Vendors available for private cloud are HPE, Dell, VMware, Red Hat Openstack etc.
Depending on organizational needs and policies, such as security, performance, cost, scalability, and efficiency, applications and workloads can be shared between public and private clouds.
For example, organizations can use the private cloud for their IT workloads and complement them with public cloud resources to handle occasional spikes in network traffic by providing optimum performance and scalability based on business demands.
And the main drawback is the cost of tracking the spending between public and private clouds, especially the wastage of resources consumed and the added complexity to manage between them.
Pros & Cons of Cloud Computing
Agility : The cloud gives you access to a wide range of services and technologies so that you can innovate and build. You can spin up resources like compute, storage, database, etc. based upon demand and we can deploy the application in a matter of minutes. This gives you the freedom to experiment, test new ideas, and transform your business.
Elasticity : Provision the amount of resources that you actually need and scale them horizontally or vertically based upon business requirements.
Cost savings : The cloud allows you to estimate the budget and pay for resources as you consume them.
Deploy globally : With the cloud, you can expand to new geographic regions and deploy globally in minutes, putting the applications in closer proximity to end users to reduce latency and improve user experience.
There is a good risk in the organization of data breaches, hacking of APIs and interfaces, and authentication issues, and there is a lack of transparency about how the sensitive information is handled by the cloud service provider.
Cost unpredictability is the major cause of cloud-budgeting failures. The pay-as-you-go subscription model is like a double-edged sword that can be both favourable and unfavourable. Consequences of scaling resources to accommodate fluctuating workload demands
With growing demand and rapidly advancing cloud technologies, organizations are struggling to keep up with the demand for tools and expertise for employees to manage the cloud.
Switching between cloud service providers can cause issues like technical incompatibilities, legal and regulatory limitations, and costs incurred during data migrations.
When migrating data from on-premises to public cloud providers, it is important to know where data and workloads are hosted in order to maintain regulatory compliance and business governance.
Cloud Computing Use Cases
Backup-as-a-Service (BaaS) : A common use case for starting the cloud journey is to implement a backup solution. For example, an organization can take backups of their data and restore those backups from the cloud quickly and easily and avoid catastrophic data loss.
Disaster-recovery-as-a-Service (DRaaS) : The cloud supports disaster recovery, which is very critical to every business. DR works to ensure that businesses recover quickly and get back online in the event of a disaster.
When a disaster occurs in the active node, DR operates in an active-passive mode, with a standby site available and failover to a passive node.
Desktop-as-a-Service (DaaS) : A service provider delivers virtual desktops to end users over the internet, licensed with a per-user subscription.
Email-as-a-Service (EaaS) : It offers email tools and gives access to them over the internet. A service provider serves as an email client.
Cloud vs Traditional Web Hosting
In traditional web hosting, your website is hosted on a single server in a single datacenter and depending on the size of your website, the volume of traffic, you can decide from various types of traditional hosting.
Shared hosting : One of the cheapest solutions is that your site will share the resources of a single web server with other websites. It is best suited for beginners.
VPS hosting : A VPS (Virtual Private Server) hosts multiple websites on a single physical machine, like shared hosting, but the server is split into several self-contained virtual servers. This can be used when your website starts to grow.
Dedicated hosting : One of the most expensive options is where you will get the entire server to yourself, with no sharing involved either physically or virtually. It is best suited for large enterprises and high network traffic.
In Cloud hosting, instead of hosting your website on a single server, its spread across different servers in different locations that are all connected via internet, which offers scalability and elasticity.
Cloud Service Providers
A few factors to consider when selecting a cloud service provider include the actual suite of services offered by providers and whether they meet the requirements of the business use case.
Even though cloud services are typically on a pay-per-use subscription model, different providers have variations in their pricing models to consider.
It is a top priority to validate security and reliability and the provider’s service level agreement (SLA) regarding uptime and whether it is satisfactory to business needs.
Cloud Computing Security
The primary concern for any business surrounding cloud adoption is security, especially on public clouds.
Public cloud service providers share their underlying infrastructure between various customers, as the public cloud is a multi-tenant architecture.
Many organizations, bound by complex regulatory obligations and business governance standards, are still hesitant about placing data in the public cloud for fear of loss or theft.
However, this is mitigated with the help of logical isolation, which is more reliable, and, in addition, data encryption, and various identity access management tools have improved security measures.
Overall, the responsibility to establish and maintain a secure environment lies with the individual business users that own the workload’s architecture.
History of Cloud Computing
1950s : Mainframe computers were used to share resources among multiple users via terminals, reducing costs and allowing for more efficient resource utilization.
1970s : VMs were developed to enable us to run more than one different operating system simultaneously in isolated environments, providing all essential resources such as CPU, disk, RAM, and NIC individually to all VMs.
1990s : Telecom companies have started to use VPNs (Virtual Private Networks) for point-to-point data circuits. This helped to optimise bandwidth exponentially. VPN allows multiple users to share access to the same physical infrastructure while remaining in an isolated environment.
1997 : Professor Ramnath Chellappa defined cloud computing as follows:
Computing paradigm where the boundaries of computing will be determined by economic rationale rather than technical limits alone.
1999 : https://www.salesforce.com started delivering enterprise-level application services over the internet.
Early 2000s : Amazon introduced web-based retail services and their data centers utilized less than 10% of capacity. They came up with a cloud computing model which made them more efficient and cost effective.
Late 2000s : Google introduced their docs services to end users, and this gave them an opportunity to venture into the cloud computing space.
2006 : Amazon launched EC2 and S3 and, in the years since, has released a variety of cloud services under the umbrella of Amazon Web Service (AWS).
2008 : Google launched app engine services, which is the beginning of a new dawn in Google Cloud Services.
2010 : Microsoft Azure was launched
Hope you all enjoyed this comprehensive guide on Cloud Computing with beautiful Sketchnotes and appreciated our work.