Cloud Computing UNIT 3
Cloud Computing UNIT 3
Cloud computing is a technology paradigm that involves the delivery of computing services,
including servers, storage, databases, networking, software, and more, over the internet (the
"cloud"). Instead of owning and maintaining physical hardware and software, users and
organizations can access and utilize these services on a pay-as-you-go basis from cloud service
providers.
On-Demand Self-Service: Users can provision and manage computing resources as needed,
without requiring human intervention from the service provider.
Broad Network Access: Cloud services are accessible over the internet from a variety of
devices, such as computers, smartphones, and tablets.
Resource Pooling: Cloud providers use multi-tenant models where computing resources are
shared among multiple users, allowing for cost efficiency and resource optimization.
Rapid Elasticity: Cloud resources can be quickly scaled up or down based on demand. This
elasticity ensures that users have access to the resources they need when they need them.
Measured Service: Cloud computing services are metered, and users are billed based on their
actual usage. This "pay-as-you-go" model is cost-effective and allows for flexibility.
Cloud platform architecture refers to the design and structure of a cloud computing platform,
which encompasses various components and layers to deliver cloud services.
1. Physical Infrastructure:
Data Centers: These are large facilities equipped with servers, storage, and networking
equipment. They are strategically located to ensure redundancy and availability. Data centers are
designed to be highly secure and often include features like biometric access controls and fire
suppression systems.
Servers: These are the workhorses of the data center, responsible for running virtual machines
(VMs) and hosting applications and data. Modern data centers may use blade servers or rack-
mounted servers for efficiency.
Storage: Data centers house various storage technologies, including hard disk drives (HDDs),
solid-state drives (SSDs), and network-attached storage (NAS) systems. Redundant storage
configurations are common to prevent data loss.
Networking: The networking infrastructure includes routers, switches, and load balancers. Load
balancers distribute incoming network traffic across multiple servers to ensure high availability
and even load distribution.
2. Virtualization Layer:
Hypervisor: Hypervisors create and manage virtual machines (VMs) on physical servers. They
allow multiple VMs to run on a single physical server, enabling efficient resource utilization and
isolation.
Containers: Containers provide a lightweight form of virtualization where applications and their
dependencies are packaged together. Technologies like Docker enable consistent deployment
across different environments.
Orchestration Tools: Tools like Kubernetes (container orchestration) and OpenStack (cloud
infrastructure orchestration) automate the deployment and scaling of applications and resources.
They manage the allocation of computing, storage, and networking resources based on
application demand.
Resource Management: Cloud providers offer services for resource management, allowing
users to provision and manage virtual servers, databases, and storage dynamically.
4. Service Models:
Cloud Management Console: Cloud providers offer web-based interfaces where users can
provision, manage, and monitor their cloud resources.
Monitoring Tools: These tools track the performance and health of cloud resources, providing
real-time insights into resource utilization, application performance, and security.
Logging and Auditing: Logs capture events and activities within the cloud environment, aiding
in troubleshooting, security analysis, and compliance auditing.
Virtual Private Cloud (VPC) or Virtual Network: These features allow organizations to create
isolated network environments within the cloud, enhancing security and segmentation.
CDNs: Content Delivery Networks cache and distribute content to multiple geographic locations,
reducing latency and improving the user experience.
VPNs and Direct Connect: These services enable secure connections between on-premises data
centers and cloud environments, ensuring private and reliable communication.
Cloud computing encompasses various service models that offer different levels of control and
management over computing resources. The three primary cloud service models are:
.
Example providers: Amazon Web Services (AWS) EC2, Microsoft Azure Virtual Machines,
Google Cloud Compute Engine.
Cloud Computing
cloud computing service model offers a distinct set of architectural components and features,
catering to different use cases and requirements, from granular control in IaaS to streamlined
application development and maintenance in PaaS and turnkey software solutions in SaaS.
Organizations choose the model that best aligns with their specific needs and resources.
Cloud computing encompasses several service models that cater to different business needs.
These service models dictate how cloud resources and services are delivered to users and can be
broadly categorized into three main types: Infrastructure as a Service (IaaS), Platform as a
Service (PaaS), and Software as a Service (SaaS).
Description: IaaS is the most basic cloud service model. It provides virtualized computing
resources over the internet. Users can rent virtual machines, storage, and networking resources
on a pay-as-you-go basis. This model is akin to a virtualized data center, offering flexibility and
control over the infrastructure.
Architecture:
Virtualization Layer: At the core of IaaS is virtualization technology, which abstracts physical
hardware into virtual resources. This allows multiple virtual machines (VMs) to run on a single
physical server.
Compute Resources: IaaS providers offer virtual machines (VMs) with various configurations,
such as CPU, memory, and storage. These VMs are created and managed by users, who can
install and configure their desired operating systems and applications.
Storage Services: IaaS platforms provide various storage options, including block storage for
VMs (e.g., Amazon EBS, Azure Disk), object storage for scalable and durable file storage (e.g.,
Amazon S3, Azure Blob Storage), and file storage (e.g., Azure Files).
Network Infrastructure: Users can define their own network configurations, including virtual
private clouds (VPCs), subnets, and security groups. IaaS providers also offer load balancers,
firewalls, and other network-related services.
Monitoring and Scaling: Users typically have access to monitoring tools that help them track
the performance and health of their VMs. They can also set up auto-scaling policies to adjust
resources dynamically based on demand.
Security: IaaS providers offer various security features, such as identity and access management
(IAM), encryption, and security groups, to protect data and applications running on their
infrastructure.
Use Cases: IaaS is suitable for businesses that need to build, manage, and maintain their own
software applications and infrastructure. It is also beneficial for development and testing
environments.
Examples: Amazon Web Services (AWS) EC2, Microsoft Azure Virtual Machines, Google
Cloud Compute Engine.
Description: PaaS provides a platform that includes both the infrastructure and development
tools required to build, deploy, and manage applications. Users can focus on writing code and
not worry about managing the underlying infrastructure.
Architecture:
Application Runtime: PaaS platforms support various programming languages and
frameworks. Developers can build, test, and run their applications using these runtimes.
Database Services: PaaS providers often include managed database services, making it easy to
store and retrieve data without worrying about database administration.
Development Tools: Integrated development environments (IDEs), version control systems, and
collaboration tools are typically part of the PaaS offering, facilitating the development process.
Deployment and Scaling: PaaS platforms provide automated deployment and scaling features,
allowing applications to grow or shrink based on demand.
Application Services: These include services like messaging queues, authentication, and
logging, which help developers build robust and feature-rich applications.
Security: PaaS providers implement security measures at the platform level, such as firewall
configurations and access controls. Developers need to focus on securing their applications.
Use Cases: PaaS is ideal for developers and organizations that want to streamline the
application development and deployment process without dealing with infrastructure
management.
Description: SaaS is a cloud computing service model where software applications are delivered
over the internet on a subscription basis. Users access the software through a web browser, and
the software is hosted and maintained by the service provider.
Architecture:
Application Layer: The application itself is hosted on the SaaS provider's infrastructure. Users
connect to the software via web browsers or dedicated client applications.
Data Storage: SaaS providers manage data storage and databases on behalf of their users. This
includes data backup and recovery.
User Authentication: SaaS applications typically have user authentication systems to control
access. Users may have different roles and permissions.
Updates and Maintenance: The SaaS provider is responsible for software updates, bug fixes,
and maintenance. Users don't need to worry about these tasks.
Scalability: SaaS providers handle scalability to accommodate increasing numbers of users and
data volumes.
Security: Security measures are in place to protect user data, including encryption, access
controls, and compliance with security standards.
Use Cases: SaaS is suitable for end-users and businesses that want to use software applications
without the hassle of installation, maintenance, and updates. Common SaaS applications include
email services, office productivity suites, and customer relationship management (CRM)
software.
Public cloud platforms are cloud computing services provided by third-party companies and
made available to the general public over the internet. These platforms offer a wide range of
services and resources, including computing power, storage, databases, networking, and more,
that can be used on a pay-as-you-go basis. Public cloud platforms are often used by businesses
and individuals to host applications, websites, and data without the need to invest in and
maintain their own physical infrastructure.
Certainly, let's elaborate on public cloud platforms with examples of how businesses and
individuals use them for various purposes:
1. Amazon Web Services (AWS): AWS is one of the largest and most widely used public cloud
platforms, offering a vast array of services, including computing, storage, machine learning,
analytics, and IoT.
Example 1 - Web Hosting: A small business can host its website on AWS using Amazon S3
for static content and Amazon EC2 for dynamic content, ensuring scalability to handle traffic
spikes.
Example 2 - Machine Learning: A data scientist can use AWS Sage Maker for training and
deploying machine learning models, taking advantage of AWS's powerful GPU instances.
2. Microsoft Azure: Microsoft's cloud platform provides a wide range of services, including
virtual machines, databases, AI, and IoT, along with tight integration with Microsoft's software
products.
Example 1 - Enterprise Applications: A large corporation can migrate its on-premises
enterprise applications to Azure for better scalability and accessibility. For instance, they can
move their Microsoft Exchange email system to Azure for greater flexibility.
Example 2 - IoT: An IoT startup can use Azure IoT Hub to connect and manage a network of
IoT devices, collect data, and perform real-time analytics on that data.
3. Google Cloud Platform (GCP): GCP offers cloud computing, storage, and data analytics
services, along with powerful machine learning and artificial intelligence capabilities
Example 1 - Data Analytics: A data analytics company can leverage Big Query on GCP to
analyze massive datasets quickly and efficiently. They can run complex queries and gain insights
from their data.
Example 2 - Mobile App Backend: A mobile app developer can use Google's Firebase for the
backend, storing user data, handling authentication, and sending notifications to app users.
4. IBM Cloud: IBM's cloud platform provides a range of services, including AI, blockchain, and
container orchestration, and is known for its hybrid cloud solutions.
Example 1 - Hybrid Cloud: A financial institution can use IBM Cloud to create a hybrid cloud
environment that seamlessly integrates their on-premises infrastructure with the public cloud.
This allows them to keep sensitive customer data on-premises while utilizing cloud resources for
computation.
Example 2 - Blockchain: A supply chain company can utilize IBM Blockchain on the cloud to
create a transparent and secure ledger for tracking the provenance of goods.
5. Oracle Cloud: Oracle's cloud platform focuses on providing cloud infrastructure and
application services to businesses, particularly in the enterprise space.
Example 1 - Database Services: A retail business can use Oracle Database Cloud Service to
manage its critical business data with high availability, security, and scalability.
Example 2 - Business Applications**: An enterprise can deploy and manage Oracle ERP
Cloud for finance, HR, and supply chain management, streamlining their business operations.
6. Alibaba Cloud: Alibaba's cloud platform is one of the largest in Asia and offers a wide
variety of services, including computing, storage, and data analytics.
Example 1 - E-commerce: An e-commerce company in Asia can use Alibaba Cloud to host its
online store, utilizing services like Alibaba Cloud ECS and RDS for seamless scaling and
database management.
Example 2 - AI Solutions: A startup focused on computer vision can leverage Alibaba Cloud's
AI services, such as image recognition and natural language processing, to build innovative
applications.
7. Digital Ocean: Digital Ocean is known for its simplicity and developer-friendly approach,
offering cloud services for developers, startups, and small to medium-sized businesses
Example 1 - Development and Testing: A software development team can create virtual
development environments using Digital Ocean Droplets, allowing them to test code and
collaborate effectively.
Example 2 - Web Applications: A startup can deploy its web application on Digital Ocean,
utilizing managed Kubernetes (Kubernetes as a Service) for container orchestration.
9. Heroku: Heroku is a Platform as a Service (PaaS) that simplifies application deployment and
management for developers.
-Example 1 - Web Application Hostin: A developer can deploy a Ruby on Rails web
application on Heroku, taking advantage of Heroku's easy deployment process and automatic
scaling.
Service-Oriented Architecture
SOA is an architectural approach in which applications make use of services available in the
network. In this architecture, services are provided to form applications, through a network call
over the internet. It uses common communication standards to speed up and streamline the
service integrations in applications. Each service in SOA is a complete business function in
itself. The services are published in such a way that it makes it easy for the developers to
assemble their apps using those services.
Services might aggregate information and data retrieved from other services or create
workflows of services to satisfy the request of a given service consumer. This practice is
known as service orchestration Another important interaction pattern is service choreography,
which is the coordinated interaction of services without a single point of control.
Components of SOA:
5. Serverless Computing:
- AWS Lambda allows you to run code without provisioning or managing servers.
You can execute functions in response to events and only pay for the compute time
you consume.
6. Microservices and Containers:
- AWS supports containerization using Amazon Elastic Container Service (ECS)
and Amazon Elastic Kubernetes Service (EKS) for microservices architecture. You
can package and deploy applications in containers using Docker.
Scenario: We want to create a web application that allows users to upload images, process them,
and display the results. This is a common use case for AWS that involves several services:
3. AWS Lambda:
4. Amazon DynamoDB:
- Use Amazon DynamoDB to store metadata about the uploaded images. This database can
store information such as image name, user, and timestamps.
5. Amazon Cognito:
- Implement user authentication and authorization with Amazon Cognito. This service allows
you to manage user identities, sign-up, sign-in, and access control.
6. Amazon CloudFront:
-For faster content delivery and to secure your web application, set up Amazon CloudFront,
which is a content delivery network. It provides low-latency access to your web application and
secures it through SSL/TLS.
Programming Steps:
This example showcases how to leverage various AWS services to develop a web application
with user authentication, image processing, and data storage. Keep in mind that the specific
implementation details will depend on our chosen programming language, development
framework, and the unique requirements of our application.
Programming on Microsoft Azure
Programming on Microsoft Azure involves developing applications, services, and solutions that
run on the Azure cloud platform. Azure offers a wide array of services and tools for building,
deploying, and managing various types of applications, including web applications, mobile apps,
data solutions, and more. Here's an overview of the key aspects of programming on Azure:
3. Programming Languages:
Azure supports a variety of programming languages, including .NET, Java, Python, Node.js,
PHP, and more. Choose the language that best suits your application and development team.
6. Azure Functions:
Azure Functions is a serverless compute service that allows you to run code in response to
events, such as HTTP requests, database changes, or timer triggers. It's suitable for building
event-driven, serverless applications.
7. Databases:
Azure provides various database services, including Azure SQL Database, Cosmos DB, and
Azure Table Storage. These services can store and manage your application's data.
8. Azure Kubernetes Service (AKS):
AKS allows you to deploy, manage, and scale containerized applications using Kubernetes. It's
an excellent choice for containerized applications and microservices architecture.
When programming on Microsoft Azure, it's crucial to choose the right Azure services that best
suit our application's requirements. we'll also need to implement best practices for security,
scalability, and performance. Azure offers extensive documentation, tutorials, and developer
tools to support our development efforts, making it accessible for developers at all levels of
expertise.
Certainly, here's an example of programming on Microsoft Azure, which demonstrates the
development of a simple web application using Azure services. In this example, we'll create a
web application that allows users to upload and share photos.
Scenario: We want to build a web-based photo sharing application that allows users to upload,
store, and share photos with their friends. Here are the steps to program this application on
Microsoft Azure:
1. Development Tools:
We can use Visual Studio or Visual Studio Code for development. In this example, we'll use
Visual Studio.
2. Azure Services:
- We'll use several Azure services, including Azure App Service, Azure Blob Storage, Azure
Functions, and Azure Cosmos DB.
3. Programming Language:
- We'll use C# and ASP.NET for the backend and HTML, CSS, and JavaScript for the front-
end.
4. Database:
Azure Cosmos DB is a globally distributed, multi-model database service. We'll use it to store
user account information and photo metadata.
5. Web Application:
Azure App Service will host the web application. We can create an ASP.NET web app in
Visual Studio.
Programming Steps:
1. Database Setup:
- Create a Cosmos DB account to store user information and metadata about the uploaded
photos.
2. Backend Development:
- Create an ASP.NET web application in Visual Studio.
- Develop the backend code for user authentication and authorization using Azure Active
Directory (Azure AD). Users can sign up, sign in, and manage their accounts.
3. Front-end Development:
Build the front-end of the web application using HTML, CSS, and JavaScript. Create user
interfaces for photo upload and sharing.
5. Azure Functions:
Create Azure Functions for serverless image processing. For example, we can create a function
that resizes uploaded images into different formats or applies filters.
7. Integration:
Integrate our front-end with the Azure back-end using RESTful APIs. For example, we can use
AJAX requests to interact with our Azure Functions or App Service.
11.Cost Management:
Use Azure Cost Management and Billing to monitor your spending on Azure resources.
This example demonstrates the development of a simple web application on Microsoft Azure,
leveraging services like Azure Cosmos DB, Azure App Service, Azure Blob Storage, and Azure
Functions to create a photo-sharing platform. The specific implementation details will depend on
the programming language, framework, and requirements of your project.