Cloud Computing
Cloud Computing
Cloud Computing
Modern Infrastructure
“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. ”
Cloud computing is an
umbrella term used to
refer to Internet-
based development
and services
Cloud Computing: Introduction
Cloud Computing is referred to the accessing and storing of data and providing services related
to computing over the internet. It is simply referred to as remote services on the internet to
manage and access data online rather than any local drives. The data can be anything like
images, videos, audio, documents, files, etc.
Cloud Computing: Introduction
Cloud Computing: A parallel and distributed computing system.
✓ Consists of interconnected and virtualized computers.
✓ Dynamically provisioned and presented as unified computing resources.
✓ Governed by Service-Level Agreements (SLAs) between service provider and consumers.
Resource pooling:
The provider’s computing resources are pooled to serve multiple consumers using a multi-
tenant model, with different physical and virtual resources dynamically assigned and
reassigned according to consumer demand.
Cloud Computing: Essential Characteristics
Measured Service:
Cloud systems automatically control and optimize resource use by leveraging a metering
capability at some level of abstraction appropriate to the type of service (e.g., storage,
processing, bandwidth, and active user accounts). Resource usage can be monitored,
controlled, and reported, providing transparency for both the provider and consumer of the
utilized service.
Rapid elasticity:
Capabilities can be elastically provisioned and released, in some cases automatically, to scale
rapidly outward and inward commensurate with demand. To the consumer, the capabilities
available for provisioning often appear to be unlimited and can be appropriated in any quantity
at any time.
Massive Scale:
Computer systems where processing power, memory, data storage, and networks are
assembled at scale to tackle computational tasks beyond the capabilities of everyday
computers.
Cloud Computing: Essential Characteristics
Resilient Computing:
Resiliency is the ability of your system to react to failure and still remain functional. It's not
about avoiding failure, but accepting failure and constructing your cloud-native services to
respond to it.
Homogeneity:
One where everything is from the same vendor.
Geographic Distribution:
By spanning multiple data centers at different geographical locations, can provide a cloud
platform with much larger capacities.
Virtualization:
Virtual representations of servers, storage, networks, and other physical machines.
Service Orientation:
Each service provides a business capability, and services can also communicate with each other
across platforms and languages.
Low-Cost Software
Advanced Security
Cloud Computing: Key Components
✓ Compute Power: Virtual machines, containers, and serverless functions that provide the
processing power to run applications and services.
✓ Storage: Cloud-based storage systems (block, object, and file storage) for persisting and
accessing data, such as Amazon S3 or Google Cloud Storage.
✓ Networking: Virtual networking components that manage communication between
resources, such as Virtual Private Clouds (VPCs), load balancers, and firewalls.
✓ Resource Management: Tools and services to allocate, monitor, and optimize compute,
storage, and network resources.
✓ Security: Identity and access management (IAM), encryption, firewalls, and compliance
tools to protect cloud resources.
✓ Virtualization: The creation of virtual instances (e.g., virtual machines, containers) to
abstract and efficiently use physical hardware.
✓ Automation and Orchestration: Tools for automating the deployment, scaling, and
management of cloud resources, such as Infrastructure as Code (IaC) solutions like
Terraform or CloudFormation.
✓ Monitoring and Analytics: Services for tracking performance, health, and utilization of
cloud resources, along with logging and analytics for insights (e.g., CloudWatch, Azure
Monitor).
Cloud Computing: Key Components
✓ Scaling: Auto-scaling mechanisms to dynamically adjust resource allocation based on
demand.
✓ Disaster Recovery: Backup, failover, and recovery services to ensure data and service
availability in case of failure.
✓ Cost Management: Billing and cost optimization tools to monitor and control spending on
cloud resources.
✓ Service Management: Tools and platforms for deploying and managing various cloud
services, including PaaS, IaaS, and SaaS models.
Cloud Computing: Cloud Engineer Roles:
✓ Cloud Infrastructure Design: Architecting cloud infrastructure solutions that are scalable,
reliable, and meet the organization's needs.
✓ Deployment and Provisioning: Automating the deployment of cloud resources using
Infrastructure as Code (IaC) tools like Terraform, CloudFormation, or Ansible.
✓ Resource Management: Managing and optimizing compute, storage, and network
resources to ensure efficient usage and cost-effectiveness.
✓ Security Management: Implementing and managing security measures, including IAM
(Identity and Access Management), encryption, firewalls, and compliance with industry
regulations.
✓ Network Configuration: Designing and configuring virtual networks, VPCs (Virtual Private
Clouds), load balancers, VPNs, and firewalls to ensure secure and efficient data flow.
✓ Monitoring and Maintenance: Setting up monitoring, logging, and alerting systems to track
the health and performance of cloud resources, using tools like CloudWatch, Azure
Monitor, or Datadog.
✓ Automation and Orchestration: Automating routine tasks such as scaling, updates,
backups, and deployments using scripts and orchestration tools (e.g., Jenkins, Kubernetes).
✓ Cost Optimization: Monitoring cloud spending, recommending and implementing cost-
saving measures, and optimizing resources to minimize unnecessary expenses.
Cloud Computing: Cloud Engineer Roles:
✓ Scaling and Load Balancing: Configuring auto-scaling policies and load balancers to handle
varying workloads and ensure application performance and availability.
✓ Disaster Recovery and Backups: Implementing disaster recovery strategies, managing
backups, and ensuring high availability and fault tolerance in cloud environments.
✓ Collaboration with Development Teams: Working closely with DevOps and development
teams to design cloud-native applications and integrate CI/CD pipelines.
✓ Cloud Service Management: Selecting and managing cloud services (compute, storage,
databases, etc.) from providers like AWS, Azure, or Google Cloud to support business
operations.
✓ Security Audits and Compliance: Conducting regular security audits, ensuring compliance
with industry standards like GDPR, HIPAA, and ensuring secure access control.
✓ Documentation and Best Practices: Documenting cloud architectures, automation scripts,
and workflows, and establishing cloud usage best practices.
✓ Troubleshooting and Support: Diagnosing and resolving cloud infrastructure-related issues,
providing ongoing support, and troubleshooting application deployments.
Cloud Computing: History
Client Server Architecture:
Before Computing came into existence, client Server Architecture was used where all the data
and control of the client resides on the Server side. If a single user wants to access some data,
firstly user needs to connect to the server, and after that user will get appropriate access. But it
has many disadvantages.
Distributed Computing:
So, After Client Server computing, Distributed Computing was come into existence, in this type
of computing all computers are networked together with the help of this, user can share their
resources when needed. It also has certain limitations. So in order to remove limitations faced
in a distributed system, cloud computing emerged.
Cloud Computing: History
Disadvantages of Client-Server Architecture :
Network Traffic Congestion: The main disadvantage of a client-server model is the danger of a
system overload owing to a lack of resources to service all of the clients. If too many different
clients try to connect to the shared network at the same time, the connection may fail or slow
down. Additionally, if the internet connection is down, any website or client in the world will be
unable to access the information. Large businesses may be at risk if they are unable to get
important information.
High Cost: In client-server networks, the cost of setting up and maintaining the server is typically
higher than the cost of running the network. The networks might be expensive to buy because
of their strength. The users won't all be able to afford them as a result.
Robustness: The whole network will be interrupted if the primary server experiences failure or
interference. Client-server networks lack hence in terms of resilience since client-server
networks are centralized.
Cloud Computing: History
Maintenance Difficulty: When the servers are put in place, they will run continuously, which
implies they need to receive the necessary care. If there are any mistakes, they must be fixed
right away without further delay. As a result, a qualified network manager should be hired to
look after the server.
Unacquirable Resources: Not all of the resources on the server are available for acquisition. For
instance, you cannot immediately print a document from the web or change any information
stored on the client's hard drive.
Cloud Computing: History
Disadvantages of Distributed Computing:
Complexity: Distributed computing systems are more difficult to deploy, maintain and
troubleshoot/debug than their centralized counterparts. The increased complexity is not only
limited to the hardware as distributed systems also need software capable of handling security
and communications.
Higher Initial Cost: The deployment cost of distribution is higher than a single system. Increased
processing overhead due to additional computation and exchange of information also adds up
to the overall cost.
Security Concerns: Data access can be controlled fairly easily in a centralized computing system,
but it’s not an easy job to manage the security of distributed systems. Not only the network
itself has to be secured, users also need to control replicated data across multiple locations.
Cloud Computing: History
Difference between Distributed Computing and Cloud Computing
In simple cloud computing can be said as a Simple distributed computing can be said as a
computing technique that delivers hosted computing technique that allows multiple computers to
services over the internet to its users/customers. communicate and work to solve a single problem.
Cloud computing provides services such as Distributed computing helps to achieve computational
hardware, software, networking resources tasks faster than using a single computer as it takes a
through internet. lot of time.
Cloud Computing: History
In 1961, John MacCharty delivered his speech at MIT that “Computing Can be sold as a Utility,
like Water and Electricity.” According to John MacCharty, it was a brilliant idea. But people at
that time don’t want to adopt this technology. They thought the technology they are using was
efficient enough for them. So, this concept of computing was not appreciated much so, and
very less will research on it. But as time fleet technology caught the idea after a few years this
idea is implemented. So, this is implemented by Salesforce.com in 1999.
This company started delivering an enterprise application over the internet and this way the
boom of Cloud Computing was started.
In 2002, Amazon started Amazon Web Services (AWS), and Amazon started providing storage
and computation over the internet. In 2006 Amazon launched Elastic Compute Cloud
Commercial Service which is open for Everybody to use.
Cloud Computing: History
After that in 2009, Google Play also started providing Cloud Computing Enterprise Applications,
as the other companies see the emergence of cloud Computing, they also started providing
their cloud services. Thus, in 2009, Microsoft launched Microsoft Azure and after that other
companies like Alibaba, IBM, Oracle, and HP also introduces their Cloud Services. Today Cloud
Computing become a very popular and important skill.
Cloud Computing: Deployment Models
Cloud Computing: Shared Responsibility Model
Public Cloud:
➢ Cloud Provider's Responsibilities: The provider manages the underlying infrastructure,
including physical hardware, network, and the hypervisor (virtualization layer). For example,
in IaaS, they manage compute, storage, and networking.
➢ Customer's Responsibilities: The customer is responsible for securing their data, managing
user access (e.g., IAM), configuring security controls, and securing applications.
Private Cloud:
➢ Cloud Provider's Responsibilities: In a hosted private cloud, the provider might manage the
infrastructure but the customer has full control over everything else. In an on-premises
private cloud, the organization manages both infrastructure and applications.Customer’s
➢ Responsibilities: The customer is responsible for everything, from infrastructure to
applications and security. If using a hosted model, the provider may manage the physical
data center, while the customer handles virtualization, software, and data security.
Cloud Computing: Shared Responsibility Model
Hybrid Cloud:
➢ Cloud Provider's Responsibilities: For the public cloud portion, the provider manages
infrastructure, while in the private cloud portion, the customer may manage it.
➢ Customer's Responsibilities: The customer is responsible for securing and managing
workloads across both the public and private environments, ensuring consistent security
policies and data protection in both.
Community Cloud:
➢ Cloud Provider's Responsibilities: The provider typically manages the infrastructure for the
community of organizations. Shared resources might include infrastructure, networks, and
storage.
➢ Customer's Responsibilities: The customer shares responsibility for configuring and
managing their applications and securing their data within the community environment. The
community may have joint governance and compliance rules.
Cloud Computing: Deployment Models
Cloud Computing: Deployment Models
Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet.
Users rent virtual machines, storage, and networking from a provider, without worrying about
the underlying hardware.
Example: Amazon Web Services (AWS EC2), Microsoft Azure Virtual Machines.
Platform as a Service (PaaS): Offers a platform allowing customers to develop, run, and manage
applications without dealing with the underlying infrastructure. It streamlines app development
by providing tools and services.
Example: Google Firebase , Heroku…
Software as a Service (SaaS): Delivers software applications over the internet on a subscription
basis. Users access the software through a web browser without managing infrastructure or
platforms.Example:
Google Workspace (Gmail, Docs), Salesforce, Dropbox.
Cloud Computing: Types of Cloud Services
Cloud Computing: Benefits of Public Cloud Computing
Cost Efficiency :
• Reduces capital expenses (CAPEX) on hardware and software.
• Pay-as-you-go pricing models allow businesses to pay only for what they use.
• Lower energy and maintenance costs compared to on-premise infrastructure.
Scalability :
• Easily scale resources up or down to handle varying workloads.
• Elastic infrastructure supports business growth without upfront investment.
High Availability :
• Cloud providers offer robust infrastructure with built-in redundancy.
• Ensures uptime through geographically distributed data centers and disaster recovery
solutions.
Cloud Computing: Benefits of Public Cloud Computing
Disaster Recovery :
• Simplified backup and disaster recovery processes, often included in cloud service offerings.
• Data is replicated across multiple locations for redundancy.
Performance Optimization :
• Cloud providers offer optimized hardware, software, and networks to boost performance.
• Global data centers reduce latency by serving content closer to end-users.
Security :
• Cloud providers implement strong security measures, such as encryption, identity
management, and access control.
• Compliance with industry standards such as GDPR, HIPAA, etc.
Cloud Computing: Benefits of Public Cloud Computing
Collaboration and Integration:
• Enables real-time collaboration across teams, geographies, and devices.
• Seamlessly integrates with other cloud services and third-party applications.
Environmental Sustainability:
• Cloud computing reduces carbon footprints due to the efficient use of shared resources.
• Cloud providers optimize energy consumption in data centers.
Cloud Computing: Challenges of Public Cloud Computing
Security and Privacy Concerns :
• Storing sensitive data on third-party servers may expose it to security breaches or
unauthorized access.
• Requires stringent identity management and access control mechanisms.
Downtime and Service Outages :
• Reliance on internet connectivity and external cloud providers may lead to service
disruptions or outages.
• Downtime can have significant business impacts.
Vendor Lock-In :
• Businesses may become dependent on a single cloud provider's ecosystem, making it
difficult to switch providers or move applications.
• Lack of standardization across cloud platforms can make migration challenging.
Skill Gap:
• Adopting cloud computing requires specialized skills in cloud architecture, management,
and security.
• Organizations may face challenges finding qualified professionals or training existing staff..
Cloud Computing: Challenges of Public Cloud Computing
Integration with Legacy Systems:
• Integrating cloud services with existing on-premise infrastructure or legacy systems can be
complex.
• Compatibility issues may arise when migrating older systems to the cloud.
Cloud Computing: Benefits of Private Cloud
Enhanced Security and Privacy:
• Greater control over data, security configurations, and access permissions.
• Dedicated infrastructure reduces exposure to external threats and meets strict security
standards.
Customization and Control:
• Full control over hardware, software, and network configurations.
• Tailored to meet specific business requirements and workloads.
Compliance:
• Easier to adhere to industry-specific compliance regulations
• Offers more control over data residency and data handling.
Improved Performance:
• Dedicated resources provide better performance, especially for mission-critical or high-
performance applications.
• No shared resources, leading to consistent, predictable performance.
Full Resource Utilization:
• The entire cloud infrastructure is available for the organization’s use.
• Efficient resource allocation without competing with other tenants.
Cloud Computing: Benefits of Private Cloud
Custom Security Policies:
• Ability to implement custom security policies, governance frameworks, and monitoring
tools.
• More granular control over identity and access management (IAM).
Integration with Legacy Systems:
• Easier to integrate with existing on-premise systems and legacy infrastructure.
• Hybrid deployment models can be built, combining private cloud with existing
infrastructure.
Scalability:
• Can still offer scalability similar to public clouds, depending on the infrastructure and
resources.
• Ability to scale resources while maintaining complete control.
Greater Reliability:
• Dedicated infrastructure often leads to higher availability and more robust disaster recovery
options.
• Designed for mission-critical applications requiring high uptime.
Cloud Computing: Challenges of Private Cloud
High Initial Costs:
• Significant upfront capital expenditure (CAPEX) is required for hardware, software, and
infrastructure.
• Ongoing maintenance and operational expenses are higher compared to public cloud.
Complex Management:
• Requires dedicated IT staff to manage, maintain, and update the infrastructure.
• Operational complexity increases with larger infrastructures and evolving technology
needs..
Limited Scalability:
• Scaling is limited by physical infrastructure capacity.
• Organizations must predict future needs and invest accordingly to avoid resource shortages.
Maintenance and Upkeep:
• Full responsibility for maintaining hardware, software updates, and security patches.
• Infrastructure must be continually updated and optimized, adding to the operational
overhead
Upgrading Infrastructure:
• Hardware and software need periodic upgrades to stay competitive with the latest
technology.
• Ongoing investment is required to avoid infrastructure obsolescence.
Cloud Computing: Challenges of Private Cloud
Disaster Recovery Responsibility:
• Organizations must develop and maintain their own disaster recovery and backup solutions.
• Additional costs and complexity arise from implementing reliable failover and redundancy
measures.
Longer Time to Deploy:
• Setting up a private cloud requires more time, including procurement, installation, and
configuration of hardware and software.
• Slower deployment compared to the instant availability of resources in the public cloud..
Resource Underutilization:
• Risk of underutilizing resources if capacity planning is miscalculated.
• May lead to inefficiency when infrastructure is built for peak loads but operates under lower
utilization most of the times.
Skill and Expertise Requirements:
• Requires in-house expertise in cloud management, network management, and security.
• Training and hiring skilled personnel may be necessary, adding to operational costs.
Capacity Planning:
• Scaling infrastructure requires careful planning, and over- or under-provisioning can lead to
inefficiencies or capacity shortages.
• Requires anticipation of future demands to avoid downtime or resource bottlenecks.
Cloud Computing: PaaS benefits
✓ No need for the user to handle scaling and load balancing of requests among virtual
machines
✓ PaaS clouds also provide a web-based Integrated Development Environment for the
development and deployment of applications on the PaaS cloud.
✓ Easier to migrate code from the development environment to the actual production
environment.
✓ Hence developers can directly write applications on the cloud and
✓ don’t have to buy separate licenses of IDE.
Cloud Computing: SaaS benefits
✓ Users subscribe to web services and web applications instead of buying and
licensing software instances.
✓ For e.g. Google Docs can be used for free, instead of buying document reading
software such as Microsoft Word.
✓ Enterprises can use web-based SaaS Content Relationship Management
applications, instead of buying servers and installing CRM software and
associated databases on them.
Cloud Computing: Applications of Cloud Computing
➢ Mail and Messaging
➢ Archiving
➢ Backup
➢ Storage
➢ Security
➢ Virtual Servers
➢ CRM (Customer Relationship Management)
➢ Collaboration across enterprises
➢ Hosted PBX (Private Branch Exchange)
➢ Video Conferencing
➢ …
Cloud Computing: IaaS Economics
Dell
HP Physical Server Physical Server 16G RAM & 4 CPU
Dell
Physical Server Physical Server 16G RAM
HP
4 CPU
Physical Server
Virtualization: Virtualization Technologies
Virtualization is a technology that allows multiple virtual instances of computing resources to
be created and managed on a single physical hardware system. It enables organizations to
optimize resource usage, improve scalability, and reduce costs by abstracting the physical
hardware and providing a layer of virtualization. Here’s a breakdown of its key components and
concepts:
Virtualization: Virtualization Technologies: Types
Virtualization: Virtualization Technologies: Functions
Virtualization: How virtualization and hypervisor works?
App App
OS OS
App App
OS OS
Bus
Hypervisor Virtualization
software
Physical Server
Virtualization: How virtualization and hypervisor works?
Traditional Server / Computer
Ring 2
SysCalls
Direct execution of the
user and OS requests Ring 1
OS Ring 0
Hardware
Virtualization: How virtualization and hypervisor works?
Para Virtualization Full Virtualization
VM VM VM
App App App App
App App App App Ring 3
I/O
Calls Guest OS Mod. Guest
OS
Mod. Drivers
Standard Standard
Guest OS Guest OS
I/O
Calls
Ring 1
Hyper
Calls Drivers Host OS Sys
Calls
I/O
Calls
Hypervisor Drivers Hypervisor Ring 0
Hardware Hardware
Virtualization: How virtualization and hypervisor works?
Hardware Assisted Full Virtualization
VM VM VM
App App App App
Ring 3
App App
Standard
Guest OS
Ring 1
Sys
Calls
Standard Standard
Guest OS Guest OS
Drivers Hypervisor Ring 0
Sys
Calls
Ring -1 Hypervisor Hardware
Hardware
Virtualization: Components of Virtualization
Type Definition Pros Cons Examples
VMware
Complete emulation of
Strong isolation, wide High overhead, Workstation,
Full Virtualization hardware, guest OS runs
OS support. slower performance. Oracle
unmodified.
VirtualBox
Xen
Guest OS is modified to Requires modified
Better performance, (Paravirtualizat
Paravirtualization communicate directly with guest OS, not widely
lower overhead. ion mode),
the hypervisor. supported.
KVM
Hardware- Uses CPU extensions (Intel High performance, Requires
VMware ESXi,
Assisted VT-x, AMD-V) for efficient minimal overhead, no virtualization-
KVM, Hyper-V
Virtualization virtualization. OS modification. enabled hardware.
Virtualization: Components of Virtualization
Hypervisor:
• A software layer that enables virtualization by allowing multiple operating systems (OS) to
run on a single physical machine.
• There are two types of hypervisors:
Type 1 (Bare-Metal): Runs directly on the hardware (e.g., VMware ESXi, Microsoft Hyper-V).
Type 2 (Hosted): Runs on top of an existing OS (e.g., VMware Workstation, Oracle VirtualBox).
Management Software:
• Tools that help in the creation, configuration, management, and monitoring of virtual
machines and the underlying infrastructure (e.g., VMware vCenter, Microsoft System
Center).
Virtualization: Benefits of Virtualization
✓ Cost $$$
✓ Real estate
✓ Electricity
✓ Ease of management
✓ Redundancy (lesser downtime)
✓ Faster deployment of machines
✓ Resource availability
✓ Better testing and performance
✓ Licensing
Virtualization: Virtualization Basic Terms
VMware Player
Oracle VirtualBox
Amazon AWS
Virtualization
Physical
Server
Purpose:
Data centers support critical business functions by providing reliable infrastructure to store and
manage data, ensuring availability and security.
✓ Before diving into these advanced concepts, we must first practice the basics.
✓ We'll cover these concepts in-depth later as we build on our foundational skills!
VMware : ESXi