Chapter 2: Cloud architecture
Cloud architecture refers to the structure of technology components that create a cloud environment. It
uses virtualization to pool and share resources over a network. Key components include:
Front-end platform: Devices or clients used to access the cloud.
Back-end platform: Servers and storage.
Cloud delivery model: Defines how services are provided.
Network: Connects the components.
Cloud architecture allows applications to run efficiently and provides users with access to scalable
resources. It helps organizations reduce dependence on physical data centers, lowering costs for
servers, storage, cooling, and power, by moving to a subscription-based cloud model.
Iaas
What is IaaS (Infrastructure as a Service)?
IaaS is like a virtual version of a physical data center.
Cloud providers use virtualization technology to offer resources like servers, networks,
and storage to clients.
Instead of owning and managing hardware, clients can run their applications on the
provider's infrastructure.
IaaS lets users deploy platforms and apps using the provider's resources while behaving like
a traditional data center.
Who Manages What in IaaS?
Cloud provider's responsibility:
They manage the entire infrastructure, including hardware and virtualization.
Client's responsibility:
The clients are responsible for:
o Installing and maintaining their apps.
o Managing operating systems.
o Ensuring the security of their apps, middleware, and data.
Key Features of IaaS
1. Highly Scalable:
o IaaS allows you to quickly increase or decrease your resource usage (e.g.,
servers, storage, or bandwidth) depending on your business needs.
o For example, if a business experiences a sudden surge in traffic, additional resources
can be added almost instantly without buying extra hardware.
2. Enterprise-grade Infrastructure:
o The infrastructure provided by IaaS vendors is robust, reliable, and of high
quality, similar to what large enterprises use.
o This means users can benefit from cutting-edge hardware, high-speed connections,
and secure data centers without having to build them.
3. Cost Depends on Consumption:
o Instead of paying upfront for expensive servers or storage, users only pay for
the resources they use.
o For example, if you use a server for a few hours and then shut it down, you’re
only charged for those hours, reducing unnecessary expenses.
4. Multi-tenant Architecture:
o IaaS uses a shared infrastructure where multiple customers use the same physical
hardware (like servers or storage), but their data and operations are securely isolated.
o This helps reduce costs for clients because the provider can spread
infrastructure expenses across many users.
5. Complete Control for Clients:
o Clients have full administrative access to their virtual infrastructure, just as they
would with a physical data center.
o They can customize the environment, install software, manage operating systems,
and run applications without restrictions from the provider.
When to Use IaaS?
1. For Small Businesses/Startups:
If you don’t have the budget to build your infrastructure.
2. For Growing Companies:
If your resource needs change frequently, IaaS can adapt to those needs.
3. For Large Companies:
If you want control over infrastructure without owning physical systems, and you prefer paying
only for what you use.
Examples of IaaS Providers:
Some popular IaaS providers include:
Microsoft Azure
Google Compute Engine (GCE)
Amazon Web Services (AWS)
DigitalOcean
Advantages of IaaS:
1. Flexibility and Dynamism: Can handle changing needs efficiently.
2. Cost-effective: Pay-as-you-go pricing reduces upfront costs.
3. Ease of Use: Hardware is deployed automatically by the provider.
4. More Free Time for Employees: Since tasks are virtualized, staff can focus on other tasks.
Disadvantages of IaaS:
1. Data Security Concerns: Shared hardware (multi-tenant) can pose risks.
2. Vendor Outages: If the provider has downtime, clients may lose access temporarily.
3. Training Needed: Teams need to learn how to manage this new infrastructure.
In short, IaaS is an excellent option for businesses looking to avoid owning hardware, scale
resources easily, and reduce costs. However, clients must manage their apps and learn to work
within the cloud provider’s infrastructure.
PaaS
What is PaaS (Platform as a Service)?
PaaS provides a platform with pre-built software tools and components for developers to
create, test, and launch applications.
It is delivered over the internet, meaning developers can focus on building apps
without worrying about managing servers, operating systems, or infrastructure.
The cloud provider handles tasks like server management, OS updates, security patches,
and backups.
How is PaaS Different from IaaS?
In IaaS, users manage the OS, middleware, and runtime, giving them more control over
the infrastructure.
In PaaS, users only focus on app development, while the provider manages the
underlying infrastructure and platform.
Key Features of PaaS
1. Unified Environment for App Development:
o Developers can create, test, and host applications all in one environment, making
the process more streamlined and efficient.
2. Scalable Resources:
o Resources such as storage, compute power, and bandwidth can be scaled up or
down based on business or project needs.
o This ensures developers only use and pay for the resources they need.
3. Multi-user Collaboration:
o Multiple developers can work on the same project simultaneously, enabling
teamwork and faster project completion.
o This feature is especially useful for remote teams.
4. Integrated Tools and Databases:
o PaaS provides built-in web services, APIs, and databases to simplify app development.
o These tools help developers avoid the hassle of manually integrating services.
5. Partial Control of Infrastructure:
o Unlike IaaS, developers do not have full control over the underlying infrastructure
but can still customize applications as needed.
6. Remote Collaboration:
o PaaS platforms enable developers from different locations to collaborate
effectively, improving productivity.
When to Use PaaS?
1. For Teams with Multiple Developers:
o Ideal for projects where many developers are working on the same application.
2. When Working with External Vendors:
o Useful for projects requiring integration with tools or services from other vendors.
3. For Building Customized Applications:
o Suitable when you want to develop your own tailored apps without managing
the backend infrastructure.
Examples of PaaS Providers:
Google App Engine
Amazon AWS Elastic Beanstalk
Microsoft Azure Cloud Services
Heroku
Advantages of PaaS
1. Scalable and multi-tenant:
o Apps built on PaaS are highly scalable and can support multiple users simultaneously.
2. Faster Development Process:
o Pre-built tools and services make coding, testing, and deploying applications quicker
and easier.
3. Reduced Costs:
o No need to invest in setting up and maintaining infrastructure. Costs for
app development, testing, and deployment are significantly reduced.
4. Less Coding Required:
o PaaS platforms often reduce the need for repetitive coding, speeding up
the development process.
5. Easy Hybrid Cloud Migration:
o Apps built on PaaS can be migrated to hybrid or other cloud environments with ease.
Disadvantages of PaaS
1. Data Security Risks:
o Since data is stored on a third-party platform, security can be a concern, especially
for sensitive data.
2. Compatibility Issues:
o Not all existing infrastructure or systems can be seamlessly integrated into a
PaaS environment.
3. Vendor Dependency:
o Users rely heavily on the provider for speed, reliability, updates, and support, which
may lead to limitations in certain situations.
PaaS is best suited for developers and businesses looking to streamline the app development process
while avoiding infrastructure management, with some trade-offs in control and vendor reliance.
SaaS
What is SaaS (Software as a Service)?
SaaS delivers ready-to-use software over the internet, eliminating the need to download,
install, or maintain the software on personal devices.
It provides applications hosted by a provider and accessible through a web browser.
The provider manages everything, including infrastructure, software updates, security,
and maintenance.
Users simply pay a subscription fee to access the software.
How is SaaS Different from PaaS and IaaS?
IaaS provides infrastructure (like servers and storage), allowing full control over apps and OS.
PaaS provides a platform for developers to build and deploy apps.
SaaS provides fully developed applications ready for use by end-users, requiring no
development or management.
Key Features of SaaS
1. Ready-to-Use Software:
o SaaS applications are fully developed and ready for use without the need for
installation or setup.
2. Accessibility:
o SaaS applications can be accessed anytime, anywhere, using any device with an
internet connection and a browser.
3. Subscription-based Pricing:
o SaaS operates on a pay-as-you-go or subscription model, reducing upfront costs
for businesses.
4. Automatic Updates:
o The provider handles all updates, ensuring users always have the latest version
without manual installation.
5. Scalability:
o SaaS solutions can easily scale to accommodate more users or increased usage
without requiring additional hardware or software.
6. Multi-tenancy:
o Multiple users share the same application, with their data securely separated
from others.
7. Integration Capabilities:
o SaaS applications often integrate with other software and platforms (e.g., CRM, email,
or payment systems).
When to Use SaaS?
1. For Standard Business Operations:
o Ideal for tasks like email, collaboration, customer relationship management (CRM),
and financial management.
2. When Reducing IT Management:
o Perfect for businesses that don’t want to manage infrastructure, updates,
or maintenance.
3. For Remote and Distributed Teams:
o SaaS tools enable teams to collaborate and work from anywhere without
complex setups.
Examples of SaaS Providers:
Google Workspace (Gmail, Google Docs, Google Drive)
Microsoft 365
Salesforce
Dropbox
Slack
Advantages of SaaS
1. Cost-effective:
o Reduces the need for hardware, installation, and maintenance. Users only pay
for subscriptions.
2. Easy Accessibility:
o SaaS apps are accessible from any device, supporting remote work and mobility.
3. Quick Deployment:
o Applications are ready to use immediately after subscribing, requiring no installation.
4. Automatic Updates:
o Users don’t need to worry about installing updates; the provider ensures the software
is always up to date.
5. Scalable Solutions:
o SaaS can grow with the business, allowing additional users or features as needed.
6. Integration with Other Tools:
o SaaS tools often work seamlessly with other business apps, improving workflows.
Disadvantages of SaaS
1. Data Security Risks:
o Sensitive data is stored on third-party servers, raising privacy and security concerns.
2. Limited Customization:
o SaaS applications may not offer the same level of customization as traditional software.
3. Dependence on Internet Access:
o Users need a reliable internet connection to access SaaS tools.
4. Vendor Dependency:
o Businesses rely on the provider’s performance, reliability, and pricing.
SaaS is ideal for businesses seeking cost-effective, scalable, and easy-to-use software solutions for
standard operations, with some trade-offs in customization and vendor reliance.
Explanation of the Figures
1st Figure: Cloud Architecture Diagram
This diagram explains the structure of a cloud computing system, dividing it into two key parts:
1. Frontend (Client Infrastructure):
o The interface that users interact with, such as web browsers or applications.
o Users access cloud services through the internet using devices like computers,
tablets, or smartphones.
2. Backend (Cloud Infrastructure):
o Handles the management and operation of cloud services. Key components include:
Application: The software programs hosted on the cloud for users.
Service: The functionality provided to users, such as storage or databases.
Cloud Runtime: The environment where applications execute,
including operating systems and middleware.
Storage: Cloud data storage systems for saving files and information.
Infrastructure: Physical and virtual resources like servers, networking,
and hardware.
o The Management and Security layers oversee resource allocation and ensure
secure access.
2nd Figure: On-Premises vs. IaaS vs. PaaS vs. SaaS
This figure shows the responsibilities of the customer and the vendor in different cloud computing
models.
1. On-Premises:
o Customer's Responsibility:
Manages everything (servers, storage, networking, OS, runtime,
middleware, applications, and data).
Traditional IT model, requiring full control and management of hardware
and software.
o No vendor involvement.
2. IaaS (Infrastructure as a Service):
o Vendor's Responsibility: Provides infrastructure like servers, storage, and networking.
o Customer's Responsibility: Manages the OS, middleware, runtime, apps, and data.
o Example: Amazon Web Services (AWS), Microsoft Azure.
3. PaaS (Platform as a Service):
o Vendor's Responsibility: Provides infrastructure, OS, runtime, and middleware.
o Customer's Responsibility: Focuses on developing and managing applications and data.
o Example: Google App Engine, Heroku.
4. SaaS (Software as a Service):
o Vendor's Responsibility: Manages everything (infrastructure, OS, runtime, apps,
and data).
o Customer's Responsibility: Only uses the application.
o Example: Gmail, Microsoft 365, Zoom.
Key Insights
Control vs. Convenience: On-premises offers the most control but requires significant
effort, while SaaS provides the most convenience with minimal control.
IaaS and PaaS: Strike a balance between control and vendor-provided resources, suitable
for different levels of development and operational needs.
Here’s a clear comparison of IaaS, PaaS, and SaaS in a table format:
IaaS (Infrastructure as a PaaS (Platform as a Service) SaaS (Software as a
Feature
Service) Service)
Provides virtualized
Offers a platform with tools
Delivers ready-to-use
computing resources like
Definition for app development, software applications
servers, storage, and
testing, and deployment. over the internet.
networks.
Full control over No control over
Limited control over
infrastructure, but users infrastructure or
Control infrastructure; focus on app
manage OS, middleware, platform; users only use
development and data.
and apps. the app.
IaaS (Infrastructure as a PaaS (Platform as a SaaS (Software as a
Feature
Service) Service) Service)
End-users and businesses
IT administrators and Developers and software
Target Audience requiring specific
infrastructure teams. engineers.
software functionality.
Infrastructure, OS,
Management by Servers, storage, Infrastructure, OS, runtime,
runtime, middleware,
Vendor networking, virtualization. and middleware.
apps, and data.
Management by Operating system, runtime, None; users only manage
Apps and data.
Customer middleware, apps, and data. access and usage.
Customization of
High level of customization Limited; software is
Customization applications within platform
possible. standardized for users.
constraints.
AWS EC2, Microsoft Google App Engine, Heroku, Gmail, Microsoft
Examples
Azure, Google Compute AWS Elastic Beanstalk. 365, Salesforce,
Engine. Dropbox.
For companies needing For developers focusing on For businesses or
When to Use virtual infrastructure for building and deploying individuals needing
flexibility and scaling. apps. ready-to-use software.
Cloud Deployment Models
1.
Public
Cloud
Introd
uction:
A public cloud is a cloud environment available to the general public over the internet. Resources like
servers, storage, and applications are owned and managed by a third-party provider and shared among
multiple users (multi-tenant).
Advantages:
Cost-effective (pay-as-you-go pricing).
Highly scalable to meet varying demands.
No maintenance responsibilities for the user.
Accessible from anywhere via the internet.
Disadvantages:
Data security concerns due to shared resources.
Limited customization for specific business needs.
Dependency on the cloud provider’s reliability.
When to Use:
For startups or businesses needing low-cost solutions.
For running non-sensitive workloads like app testing or web hosting.
2.
Private
Cloud
Introdu
ction:
A private cloud is dedicated to a single organization. It can be hosted on-premises or by a third-party
provider and offers complete control over data and infrastructure.
Advantages:
High security and privacy, suitable for sensitive data.
Full control over resources and customization.
Better performance due to dedicated resources.
Disadvantages:
Expensive to set up and maintain.
Requires in-house IT expertise.
Limited scalability compared to public cloud.
When to Use:
For organizations handling sensitive data like finance or healthcare.
When compliance with strict regulations is required.
For companies needing complete control over their infrastructure.
3.
Hybrid
Cloud
Introdu
ction:
A hybrid cloud combines public and private cloud environments, allowing data and applications to be
shared between them. It provides flexibility by leveraging the benefits of both models.
Advantages:
Flexibility to scale using public cloud while keeping sensitive data in private cloud.
Cost-efficient by using public cloud for non-sensitive workloads.
Supports diverse workloads and business needs.
Disadvantages:
Complex to manage and integrate both environments.
Security concerns due to data transfer between clouds.
Dependency on multiple vendors.
When to Use:
When a business wants to balance security and scalability.
For organizations with fluctuating workloads.
When sensitive data needs to stay private, but other tasks require scalability.
4. Com
munity
Cloud
Introduction
:
A community cloud is shared by multiple organizations with similar interests or regulatory requirements.
It is managed by the organizations or a third-party provider.
Advantages:
Cost is shared among participants, reducing individual expenses.
Offers security and compliance tailored to the community’s needs.
Encourages collaboration between organizations with similar goals.
Disadvantages:
Limited scalability compared to public cloud.
Requires agreements and coordination between participants.
Not suitable for organizations with unique needs.
When to Use:
When multiple organizations in the same sector (e.g., healthcare or education) need a
shared infrastructure and resources.
For collaborative projects among multiple entities.
This structure summarizes the key points for each deployment model in an easy-to-understand format!
Cloud Design and implementation using SOA
What is SOA?
SOA is a design method where software applications are built using independent services. These
services are like building blocks, each performing a specific function and communicating with
others over a network.
Key Idea: Break large applications into smaller, reusable services that work together.
Example:
An online store could use:
o A Payment Service to handle transactions,
o An Inventory Service to manage stock, and
o A Shipping Service to track deliveries.
These services work independently but collaborate to complete tasks.
Role of SOA in Cloud Computing
1. Standardized Services
SOA ensures that cloud services follow common rules for communication (like REST or
SOAP).
This allows different applications to work together easily.
2. Reusable Services
Services in SOA can be used in multiple applications, reducing development effort.
Example: A login service can be used in different cloud apps instead of building a new
one each time.
3. Flexibility & Loose Coupling
Services work independently, meaning they can be updated or replaced without affecting
the whole system.
Example: If a payment service fails, the rest of the cloud app still works.
4. Scalability
SOA allows cloud applications to handle more users by adding more service instances
when needed.
Example: An online shopping site can increase order processing services during sales.
5. Service Composition
Multiple small services can be combined to create a bigger system.
Example: A student management system can use different services for login, course
registration, and payments.
6. Interoperability
SOA helps applications run on different cloud providers like AWS, Google Cloud, or
Azure.
It allows businesses to switch or combine cloud services easily.
7. Security & Control
SOA ensures that cloud services follow security rules (like OAuth for login).
It helps manage who can use the services and protects data.
8. Saves Cost & Resources
Instead of building everything from scratch, cloud apps can reuse existing services.
Example: A company can use cloud storage services (Google Drive, Dropbox) instead
of creating its own.
How SOA Works?
1. Registry: A directory where available services are listed (like a phonebook).
2. Service Provider: The entity that offers and registers a service (e.g., a company
hosting the payment service).
3. Service Consumer: The user or application that needs to use a service (e.g., an online
shopping app).
Steps:
The provider registers the service in the registry.
The consumer searches the registry for the service they need (e.g., shipping).
The consumer binds to and uses the service.
Main Components of Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA) is based on four key components. These components work
together to allow different applications to communicate and use services efficiently.
1. Service (Building Block of SOA)
A service is a function or task that performs a specific job.
Services can be used by multiple applications without needing to be rebuilt.
Services communicate using standard protocols like REST or SOAP.
Example:
A weather service that provides temperature and weather forecasts.
A payment service that processes online transactions.
2. Service Provider (Creates and Maintains Services)
The service provider is responsible for developing and maintaining the service.
It ensures that the service is available and working correctly.
The provider registers the service in a service registry so others can find and use it.
Example:
A bank develops a fund transfer service and makes it available for users.
3. Service Consumer (Uses the Service)
The service consumer is the user or application that requests a service.
It searches for services in the service registry and connects to the needed service.
The consumer does not need to know how the service works internally.
Example:
A shopping website uses a third-party payment service to process online orders.
4. Service Registry (Stores and Manages Services)
The service registry is like a directory where available services are listed.
It helps service consumers discover and access services easily.
It stores important details like the service name, location (URL), and description.
Example:
A business directory that lists web services like currency exchange rates, payment
processing, or weather updates.
Disadvantages of SOA:
1. Increased Overhead:
o SOA requires additional communication between services, which can introduce
latency and increase processing time.
2. Complex Service Management:
o Managing multiple independent services, ensuring security, and handling service
discovery can be challenging.
3. Higher Initial Cost:
o Implementing SOA requires investment in infrastructure, tools, and expertise, making
it expensive to set up.
4. Security Risks:
o Since services communicate over a network, they are more vulnerable to security
threats like unauthorized access and data breaches.
Why Use SOA?
SOA is ideal for organizations that need systems to be flexible, scalable, and reusable. It's
especially useful when managing multiple platforms or applications.
SOA helps make complex systems manageable and adaptable to change, allowing businesses to
build robust, scalable, and reusable applications.
Security, trust and Privacy
However, when using cloud services, it's crucial to focus on security, trust, and privacy to
ensure that data is protected and services are reliable.
1. Security in Cloud Computing
Security in cloud computing refers to measures taken to protect data, applications, and services
from unauthorized access and threats.
Examples of Cloud Security:
Data Encryption: Encrypting data before storing or transferring it in the cloud. For example,
Amazon Web Services (AWS) uses encryption to secure data at rest and during
transmission.
Multi-Factor Authentication (MFA): Requiring extra verification in addition to passwords.
For instance, AWS use MFA to protect accounts from unauthorized access.
Firewalls and Intrusion Detection Systems (IDS): These prevent unauthorized access and
detect malicious activities. Microsoft Azure uses firewalls to protect its services from
attacks.
2. Trust in Cloud Computing
Trust refers to the confidence that users have in cloud service providers (CSPs) to securely
handle their data and deliver reliable services.
Examples of Trust in Cloud Computing:
Service-Level Agreements (SLAs): An SLA (Service Level Agreement) is a contract where
Google Cloud promises a certain level of uptime (amount of time a service is working for use
without outages) and service availability. If Google Cloud fails to meet this promise, they
offer penalties, like service credits, to the customer.
Certifications and Compliance: Cloud providers follow industry standards like ISO 27001
and GDPR to show they meet security and privacy requirements. For example, AWS holds
certifications to prove its services meet top security practices.
Transparent Audits and Reporting: Cloud providers regularly conduct security audits and
provide reports to assure customers about their security measures.
3. Privacy in Cloud Computing
Privacy in cloud computing focuses on protecting personal and sensitive data stored in the
cloud, ensuring compliance with privacy laws.
Examples of Cloud Privacy:
Data Ownership and Control: Users must have control over their data in the cloud.
Dropbox allows users to retain ownership of their files and ensures only the user has access
to them.
Privacy by Design: Some cloud services are designed with privacy as a priority. Apple’s
iCloud, for example, uses end-to-end encryption for iMessages and FaceTime calls to protect
user privacy.