Here’s my revision notes for Cloud Computing…
Cloud computing
Refer -> Cloud Computing - TechTerms
It refers to applications and services [mainly services] that are offered over the Internet from various data centers across the world.
Okay, what’s cloud?
Cloud is a network of servers across the world. These store data in form of database [tables] and software to do stuff with them.
Companies often find it difficult to store huge amounts of data in their databases and in-house servers.
Netflix, for example, stores 12 TB of data per hour per user. That’s petabytes worth of storage for a few thousand users alone!
These companies migrate [transfer their data to a cloud server] to cloud so that they don’t have to do the gruelling work of maintaining physical servers, running applications, etc.
Types of cloud services
There are 3 types of cloud services :
Public cloud

- Managed by 3rd party providers.
 - Available on subscription-basis.
 - Multi-tenant; serves multiple users
 - Best for small businesses - minimises infrastructure costs, handles data loads, etc.
 
Eg : Azure, AWS, etc.
Advantages
- Cost efficient
 - Optimized to give maximum performance
 - Flexible per demand and workload
 
Disadvantages
- Frequent data breaches
 - Trusting 3rd-party provider with our data is a risky business
 
Private cloud

- Work on private infrastructure
 - Not subscription-based; billing depends on enterprise and departments
 
Eg : Dell Cloud Solutions, VMware vCloud suite, etc.
Advantages
- Customer information is protected
 - Specific operations are available instead of generalised ones.
 
Disadvantages
- Requires knowledge and skill to manage
 - Only accessible within a particular area
 
Hybrid cloud

- Combines features of private and public clouds.
 - Heterogeneous [different in some category] clouds.
 - Flexible per demand and workload
 - Secure
 
Eg : Oracle Cloud, Azure Stack, etc.
Advantages
- Cheaper than other clouds
 - Safe and secure as it works on distributed system network
 
Disadvantages
- Requires knowledge to work in it
 - Difficult to maintain it
 
Cloud Computing architecture
Cloud architecture is divided into front-end and back-end.

Front-end is where clients can access services. It contains the UI and applications used by them.
Back-end is where the resources, virtual applications, deployment models, etc. are stored. This part is used by the service provider to work on the front-end.
Components
Note : Except the client infrastructure and the Internet, every other components works in the back-end.
Client infrastructure : Contains applications and UI to access the cloud platform.
Application : Software platform that provides a service as per the client’s requirement.
Service : Cloud-based services which the user can access
Runtime Cloud : Provides execution and runtime environment to the virtual machine
Storage : Provides flexible storage services
Infrastructure : Hardware and software components of cloud
Management : Management of back-end components
Security : Implementing different security measures in the back-end to protect client’s data
Internet : Connects front-end and back-end; establishes communication between them
Analytics : Provides analytics capabilities to generate statistics from data in cloud for machine learning
Database : Providing database for storing structured data such as SQL
Delivery models
There are a variety of cloud delivery models :
Software As A Service

- Delivering services and applications via the internet
 - Subscription model for accessing software directly in the web; no need to download.
 - Aka hosted software, on-demand software.
 
Eg : MS Office 365, Crowdstrike, etc.
Advantages
- Pay only for what you use
 - Can be accessed from anywhere
 - Automatic updates
 - No need to download the software to access features
 
Disadvantages
- Data breaches
 - Updates may break features [see Crowdstrike]
 - Dependent on internet connectivity
 - Limited control over data
 
Platform As A Service

- Provider hosts hardware and software on its own infrastructure
 - Used for building applications and services over the internet
 - Development and deployment is hardware-independent
 - Customer doesn’t control the backend infrastructure
 
Eg : Google App Engine, Windows Azure, etc.
Advantages
- Simple and convenient
 - Cost-effective
 - Reduced complexity
 
Disadvantages
- Dependent on provider
 - Limited flexibility
 
Infrastructure As A Service

- Infrastructure is provided as outsourcing to enterprises
 - Aka Hardware as a service
 - Provides OS, networking, security and servers
 - Customers pay per-user by the hour, week, etc.
 
Eg : DigitalOcean, AWS, etc.
Advantages
- Cost-effective
 - Secure
 - Easy to maintain
 
Disadvantages
- Users are responsible for securing their own data
 - May not be accessible in certain areas
 
