CCS335- CC UNIT-4
UNIT IV CLOUD DEPLOYMENT ENVIRONMENT 6
Google App Engine – Amazon AWS – Microsoft Azure; Cloud Software Environments – Eucalyptus –
OpenStack.
___________________________________________________________________________
GOOGLE APP ENGINE
Google App Engine is a platform-as-a-service (PaaS) offering from Google Cloud that allows
developers to build and deploy web applications and services on Google's infrastructure. It abstracts
away much of the underlying infrastructure management, making it easier for developers to focus on
writing code and building their applications.
Key features of Google App Engine include:
Scalability: App Engine automatically manages the scaling of your application based on incoming
traffic. It can handle traffic spikes and increased load without manual intervention.
Managed Infrastructure: Google takes care of the underlying infrastructure, including server
provisioning, patching, and load balancing, allowing developers to concentrate on code development.
Support for Multiple Languages: App Engine supports multiple programming languages, including
Python, Java, Go, [Link], Ruby, and PHP. This flexibility enables developers to use their preferred
language and runtime.
Data Storage: Google Cloud Datastore is integrated with App Engine, providing a scalable and fully
managed NoSQL database for storing and retrieving data.
Automatic Scaling: App Engine can automatically scale your application up or down based on
incoming traffic. You can configure scaling settings to ensure optimal resource utilization.
Versioning: Developers can deploy multiple versions of their application concurrently, facilitating
testing and version management.
Traffic Splitting: App Engine allows for traffic splitting between different versions of an application,
making it easier to test new features or perform A/B testing.
Security: Google Cloud provides robust security features, including identity and access management
(IAM), DDoS protection, and encryption, to help secure applications running on App Engine.
Monitoring and Logging: Google Cloud offers monitoring and logging tools that allow developers to
gain insights into application performance and troubleshoot issues effectively.
Integration with Other Google Cloud Services: App Engine can easily integrate with other Google
Cloud services like Google Cloud Storage, Google Cloud Pub/Sub, and BigQuery, expanding its
capabilities and functionality.
Custom Domain Support: You can configure custom domains for your App Engine applications,
allowing you to use your own domain names.
Container Support: App Engine also offers a flexible environment that supports running custom
containers, giving developers more control over the runtime environment.
1
Google App Engine is suitable for a wide range of applications, from small personal projects to
large-scale, enterprise-level applications. It simplifies the deployment and management of web
applications, making it an attractive choice for developers looking to leverage Google's infrastructure
and services without getting bogged down in server administration tasks.
GAE Architecture
App Engine is created under Google Cloud Platform project when an application resource is created.
The Application part of GAE is a top-level container that includes the service, version and instance-
resources that make up the app. When you create App Engine application, all your resources are created
in the user defined region, including app code and collection of settings, credentials and your app's
metadata.
Each GAE application includes at least one service, the default service, which can hold many versions,
depends on your app's billing status.
The following diagram shows the hierarchy of a GAE application running with two services. In this
diagram, the app has 2 services that contain different versions, and two of those versions are actively
running on different instances:
Services provided by App Engine include:
Platform as a Service (PaaS) to build and deploy scalable applications
Hosting facility in fully-managed data centers
A fully-managed, flexible environment platform for managing application server and infrastructure
Support in the form of popular development languages and developer tools
Runtimes and Languages
To create an application for an app engine, you can use Go, Java, PHP, or Python. You can develop
and test an app locally using the SDK’s deployment toolkit. Each language’s SDK and nun time are
unique. Your program is run in a:
Java Run Time Environment version 7
Python Run Time environment version 2.7
PHP runtime’s PHP 5.4 environment
Go runtime 1.2 environment
CCS335- CC UNIT-4
Advantages of Google App Engine
The Google App Engine has a lot of benefits that can help you advance your app ideas. This
comprises:
1. Infrastructure for Security: The Internet infrastructure that Google uses is arguably the safest in the
entire world. Since the application data and code are hosted on extremely secure servers, there has
rarely been any kind of illegal access to date.
2. Faster Time to Market: For every organization, getting a product or service to market quickly is
crucial. When it comes to quickly releasing the product, encouraging the development and
maintenance of an app is essential. A firm can grow swiftly with Google Cloud App Engine’s
assistance.
3. Quick to Start: You don’t need to spend a lot of time prototyping or deploying the app to users
because there is no hardware or product to buy and maintain.
4. Easy to Use: The tools that you need to create, test, launch, and update the applications are included
in Google App Engine (GAE).
5. Rich set of APIs & Services: A number of built-in APIs and services in Google App Engine enable
developers to create strong, feature-rich apps.
6. Scalability: This is one of the deciding variables for the success of any software. When using the
Google app engine to construct apps, you may access technologies like GFS, Big Table, and others
that Google uses to build its own apps.
7. Performance and Reliability: Among international brands, Google ranks among the top ones.
Therefore, you must bear that in mind while talking about performance and reliability.
8. Cost Savings: To administer your servers, you don’t need to employ engineers or even do it yourself.
The money you save might be put toward developing other areas of your company.
9. Platform Independence: Since the app engine platform only has a few dependencies, you can easily
relocate all of your data to another environment.
__________________________________________________________________________
AMAZON AWS
Amazon Web Services (AWS) is a comprehensive and widely used cloud computing platform provided
by [Link]. AWS offers a vast array of cloud computing services and solutions that cater to a
wide range of use cases, from hosting simple websites to running complex, data-intensive applications.
AWS provides services to customers when required without any prior commitment or upfront
investment. Pay-As-You-Go enables the customers to procure services from AWS.
o Computing
o Programming models
o Database storage
o Networking
3
Advantages of AWS
1) Flexibility
o We can get more time for core business tasks due to the instant availability of new features and services
in AWS.
o It provides effortless hosting of legacy applications. AWS does not require learning new technologies
and migration of applications to the AWS provides the advanced computing and efficient storage.
o AWS also offers a choice that whether we want to run the applications and services together or not. We
can also choose to run a part of the IT infrastructure in AWS and the remaining part in data centres.
2) Cost-effectiveness
AWS requires no upfront investment, long-term commitment, and minimum expense when compared
to traditional IT infrastructure that requires a huge investment.
3) Scalability/Elasticity
Through AWS, autoscaling and elastic load balancing techniques are automatically scaled up or down,
when demand increases or decreases respectively. AWS techniques are ideal for handling unpredictable
or very high loads. Due to this reason, organizations enjoy the benefits of reduced cost and increased
user satisfaction.
4) Security
o AWS provides end-to-end security and privacy to customers.
o AWS has a virtual infrastructure that offers optimum availability while managing full privacy and
isolation of their operations.
o Customers can expect high-level of physical security because of Amazon's several years of experience
in designing, developing and maintaining large-scale IT operation centers.
o AWS ensures the three aspects of security, i.e., Confidentiality, integrity, and availability of user's data.
Here are some key components and services offered by AWS:
Compute Services:
Amazon EC2 (Elastic Compute Cloud): Provides scalable virtual servers, allowing users to run
applications on a wide range of instance types.
CCS335- CC UNIT-4
AWS Lambda: A serverless computing service that lets you run code in response to events without
provisioning or managing servers.
Storage Services:
Amazon S3 (Simple Storage Service): Object storage service for scalable and durable data storage.
Amazon EBS (Elastic Block Store): Block storage service for EC2 instances.
Amazon Glacier: Long-term archival storage with low costs.
Database Services:
Amazon RDS (Relational Database Service): Managed database service for various database engines,
including MySQL, PostgreSQL, and Oracle.
Amazon DynamoDB: A NoSQL database service for applications requiring fast and predictable
performance.
Networking Services:
Amazon VPC (Virtual Private Cloud): Provides isolated network environments to host your resources.
Amazon Route 53: A scalable and highly available DNS (Domain Name System) web service.
Content Delivery and CDN:
Amazon CloudFront: A content delivery network (CDN) service to distribute content globally with low
latency.
Analytics and Big Data:
Amazon EMR (Elastic MapReduce): A managed big data platform for processing and analyzing vast
datasets.
Amazon Redshift: A data warehousing service for analytics and business intelligence.
AI and Machine Learning:
Amazon SageMaker: A fully managed service to build, train, and deploy machine learning models.
AWS AI Services: Pre-built AI services like Amazon Rekognition (image and video analysis) and
Amazon Comprehend (natural language processing).
Security and Identity:
AWS Identity and Access Management (IAM): Provides fine-grained access control and user
management.
Amazon Inspector: Helps to identify security vulnerabilities in applications.
Management and Monitoring:
Amazon CloudWatch: Provides monitoring and observability for AWS resources.
AWS CloudFormation: Enables infrastructure as code (IaC) for provisioning and managing AWS
resources.
Developer Tools:
AWS CodeDeploy: Automates code deployments to EC2 instances.
AWS CodePipeline: A continuous integration and continuous delivery (CI/CD) service.
AWS Developer Tools: A suite of tools for software development and delivery.
5
IoT (Internet of Things):
AWS IoT: A set of services for building and managing IoT applications.
Serverless Computing:
AWS Fargate: A serverless compute engine for containers.
AWS Step Functions: Coordinates serverless applications using visual workflows.
Enterprise Applications:
Amazon WorkSpaces: Provides cloud-based desktops for remote workers.
Amazon WorkMail: A secure email and calendaring service.
Blockchain:
Amazon Managed Blockchain: A fully managed service for creating and managing scalable blockchain
networks.
MICROSOFT AZURE
Microsoft Azure, commonly referred to as Azure, is a cloud computing platform and service offered by
Microsoft. It provides a wide range of cloud-based services, including infrastructure as a service (IaaS),
platform as a service (PaaS), and software as a service (SaaS) that enable organizations to build,
deploy, and manage applications and services through Microsoft's global network of data centers.
How Azure works
It is essential to understand the internal workings of Azure so that we can design our applications on
Azure effectively with high availability, data residency, resilience, etc.
Microsoft Azure is completely based on the concept of virtualization. So, similar to other virtualized
data center, it also contains racks. Each rack has a separate power unit and network switch, and also
each rack is integrated with a software called Fabric-Controller. This Fabric-controller is a distributed
application, which is responsible for managing and monitoring servers within the rack. In case of any
server failure, the Fabric-controller recognizes it and recovers it. And Each of these Fabric-Controller
CCS335- CC UNIT-4
is, in turn, connected to a piece of software called Orchestrator. This Orchestrator includes web-
services, Rest API to create, update, and delete resources.
When a request is made by the user either using PowerShell or Azure portal. First, it will go to the
Orchestrator, where it will fundamentally do three things:
1. Authenticate the User
2. It will Authorize the user, i.e., it will check whether the user is allowed to do the requested task.
3. It will look into the database for the availability of space based on the resources and pass the request to
an appropriate Azure Fabric controller to execute the request.
Combinations of racks form a cluster. We have multiple clusters within a data center, and we can have
multiple Data Centers within an Availability zone, multiple Availability zones within a Region, and
multiple Regions within a Geography.
o Geographies: It is a discrete market, typically contains two or more regions, that preserves data
residency and compliance boundaries.
o Azure regions: A region is a collection of data centers deployed within a defined perimeter and
interconnected through a dedicated regional low-latency network.
Azure covers more global regions than any other cloud provider, which offers the scalability needed to
bring applications and users closer around the world. It is globally available in 50 regions around the
world. Due to its availability over many regions, it helps in preserving data residency and offers
comprehensive compliance and flexible options to the customers.
Here are some key aspects of Microsoft Azure:
Compute Services: Azure offers a variety of compute resources, including virtual machines (VMs),
containers, and serverless computing with Azure Functions. Azure VMs provide scalable, on-demand
computing power for running a wide range of applications.
Storage Services: Azure provides various storage options, such as Azure Blob Storage for object
storage, Azure File Storage for file shares, and Azure Disk Storage for block storage. Azure also offers
premium storage for high-performance workloads.
Networking Services: Azure offers virtual networking capabilities, allowing users to create private
networks, connect on-premises data centers via Azure Virtual Network, and implement load balancers,
application gateways, and content delivery networks (CDNs).
Database Services: Azure provides managed database services like Azure SQL Database, Azure
Cosmos DB (NoSQL database), Azure Database for MySQL, and Azure Database for PostgreSQL.
These services simplify database management, scaling, and high availability.
Identity and Access Management (IAM): Azure Active Directory (Azure AD) is Microsoft's cloud-
based identity and access management service. It offers features like single sign-on (SSO), multi-factor
authentication, and integration with on-premises directories.
7
Developer Tools: Azure offers a range of developer tools, including Azure DevOps, Azure DevTest
Labs, and Visual Studio Team Services (VSTS), to facilitate application development, testing, and
deployment.
AI and Machine Learning: Azure provides services for artificial intelligence (AI) and machine learning
(ML), such as Azure Machine Learning, Azure Cognitive Services, and Azure Bot Service, to build
intelligent applications.
Internet of Things (IoT): Azure IoT Suite and Azure IoT Central offer tools and services for building
and managing IoT solutions, including device management, data analytics, and real-time monitoring.
Analytics and Big Data: Azure offers various data analytics services, including Azure HDInsight
(Hadoop, Spark, and more), Azure Data Lake Storage, and Azure Databricks, for processing and
analyzing large datasets.
Security and Compliance: Azure provides a robust set of security features, including Azure Security
Center, Azure Sentinel (SIEM), and compliance certifications to help organizations secure their cloud
environments.
Hybrid Cloud: Azure Stack and Azure Arc enable organizations to extend Azure services and
capabilities to their on-premises data centers and edge locations, creating a hybrid cloud infrastructure.
Serverless Computing: Azure Functions and Azure Logic Apps enable developers to build event-driven
and serverless applications that automatically scale based on demand.
Containers: Azure Kubernetes Service (AKS) provides managed Kubernetes orchestration, while Azure
Container Instances (ACI) allows for easy container deployment without managing the underlying
infrastructure.
Integration: Azure offers integration services, including Azure Logic Apps and Azure Service Bus, to
connect applications, data, and services across cloud and on-premises environments.
Enterprise Integration: Azure provides tools like Azure Logic Apps and Azure API Management for
building scalable and secure APIs and integrations.
Microsoft Azure is known for its global presence, extensive service offerings, and strong integration
with Microsoft's other products and services, making it a popular choice for organizations of all sizes
looking to leverage cloud technology for their IT infrastructure and application needs.
___________________________________________________________________________
CLOUD SOFTWARE ENVIRONMENTS
Cloud software environments refer to the infrastructure and tools that enable the development,
deployment, and management of software applications in cloud computing environments. These
environments leverage cloud computing services and technologies to provide scalable, reliable, and
cost-effective platforms for software development and deployment. Here are some key aspects of cloud
software environments:
CCS335- CC UNIT-4
Cloud Service Providers (CSPs): Cloud software environments are typically hosted by cloud service
providers such as Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and
others. These CSPs offer a wide range of services, including computing, storage, databases, and
networking, that developers can leverage to build and deploy their applications.
Infrastructure as a Service (IaaS): In IaaS environments, developers have access to virtualized
computing resources, including virtual machines (VMs) and storage, allowing them to configure and
manage the infrastructure as needed. This gives developers more control over the environment
compared to other cloud models.
Platform as a Service (PaaS): PaaS environments provide a higher-level platform for developing and
deploying applications. They abstract much of the underlying infrastructure management, allowing
developers to focus on writing code and deploying applications. Examples of PaaS offerings include
AWS Elastic Beanstalk, Google App Engine, and Microsoft Azure App Service.
Containerization and Orchestration: Technologies like Docker and Kubernetes have become essential in
cloud software environments. Docker allows developers to package their applications and dependencies
into containers, while Kubernetes helps orchestrate the deployment and scaling of containerized
applications.
Serverless Computing: Serverless computing, offered by platforms like AWS Lambda, Azure
Functions, and Google Cloud Functions, abstracts server management entirely. Developers write code
in the form of functions, and the cloud provider automatically manages the underlying infrastructure,
scaling as needed.
Development Tools: Cloud software environments offer a variety of development tools and integrated
development environments (IDEs) that streamline the software development process. For example,
AWS offers AWS Cloud9, a cloud-based IDE.
Database Services: Cloud providers offer managed database services such as Amazon RDS, Azure SQL
Database, and Google Cloud SQL. These services simplify database administration tasks like backup,
scaling, and maintenance.
Scalability and Elasticity: Cloud environments make it easy to scale applications horizontally or
vertically based on demand. This ensures that applications can handle varying levels of traffic without
manual intervention.
Security and Compliance: Cloud providers offer robust security features, including identity and access
management, encryption, and compliance certifications. Developers can build secure applications by
leveraging these features.
Monitoring and Management: Cloud environments provide tools for monitoring application
performance and managing resources efficiently. Services like AWS CloudWatch, Azure Monitor, and
Google Cloud Monitoring help developers and administrators keep an eye on their applications.
9
Cost Management: Cloud providers offer tools for tracking and optimizing costs. This helps
organizations control expenses by understanding resource usage and making informed decisions about
resource allocation.
Global Reach: Cloud providers have data centers in multiple regions around the world. This enables
developers to deploy applications closer to their users for improved performance and resilience.
DevOps Integration: Cloud environments facilitate DevOps practices by providing the infrastructure
and tools needed for continuous integration and continuous deployment (CI/CD) pipelines.
__________________________________________________________________________
EUCALYPTUS
Eucalyptus is a cloud computing platform that was originally designed to enable organizations to build
private clouds or on-premises cloud environments that are compatible with Amazon Web Services
(AWS).
Eucalyptus is a Linux-based open-source software architecture for cloud computing and also a
storage platform that implements Infrastructure a Service (IaaS). It provides quick and efficient
computing services. Eucalyptus was designed to provide services compatible with Amazon’s EC2
cloud and Simple Storage Service(S3).
Eucalyptus Architecture
Eucalyptus CLIs can handle Amazon Web Services and their own private instances. Clients have the
independence to transfer cases from Eucalyptus to Amazon Elastic Cloud. The virtualization layer
oversees the Network, storage, and Computing. Occurrences are isolated by hardware virtualization.
Important Features are:-
1. Images: A good example is the Eucalyptus Machine Image which is a module software bundled and
uploaded to the Cloud.
2. Instances: When we run the picture and utilize it, it turns into an instance.
CCS335- CC UNIT-4
3. Networking: It can be further subdivided into three modes: Static mode(allocates IP address to
instances), System mode (assigns a MAC address and imputes the instance’s network interface to the
physical network via NC), and Managed mode (achieves local network of instances).
4. Access Control: It is utilized to give limitations to clients.
5. Elastic Block Storage: It gives block-level storage volumes to connect to an instance.
6. Auto-scaling and Load Adjusting: It is utilized to make or obliterate cases or administrations
dependent on necessities.
Components of Architecture
Node Controller is the lifecycle of instances running on each node. Interacts with the operating
system, hypervisor, and Cluster Controller. It controls the working of VM instances on the host
machine.
Cluster Controller manages one or more Node Controller and Cloud Controller simultaneously. It
gathers information and schedules VM execution.
Storage Controller (Walrus) Allows the creation of snapshots of volumes. Persistent block storage
over VM instances. Walrus Storage Controller is a simple file storage system. It stores images and
snapshots. Stores and serves files using S3(Simple Storage Service) APIs.
Cloud Controller Front-end for the entire architecture. It acts as a Complaint Web Services to client
tools on one side and interacts with the rest of the components on the other side.
Operation Modes of Eucalyptus
Managed Mode: Numerous security groups to users as the network is large. Each security group is
assigned a set or a subset of IP addresses. Ingress rules are applied through the security groups
specified by the user. The network is isolated by VLAN between Cluster Controller and Node
Controller. Assigns two IP addresses on each virtual machine.
Managed (No VLAN) Node: The root user on the virtual machine can snoop into other virtual
machines running on the same network layer. It does not provide VM network isolation.
System Mode: Simplest of all modes, least number of features. A MAC address is assigned to a
virtual machine instance and attached to Node Controller’s bridge Ethernet device.
Static Mode: Similar to system mode but has more control over the assignment of IP address. MAC
address/IP address pair is mapped to static entry within the DHCP server. The next set of MAC/IP
addresses is mapped.
Advantages Of The Eucalyptus Cloud
1. Eucalyptus can be utilized to benefit both the eucalyptus private cloud and the eucalyptus public
cloud.
2. Examples of Amazon or Eucalyptus machine pictures can be run on both clouds.
11
3. Its API is completely similar to all the Amazon Web Services.
4. Eucalyptus can be utilized with DevOps apparatuses like Chef and Puppet.
5. Although it isn’t as popular yet but has the potential to be an alternative to OpenStack and
CloudStack.
6. It is used to gather hybrid, public and private clouds.
7. It allows users to deliver their own data centers into a private cloud and hence, extend the services to
other organizations.
___________________________________________________________________________
OPENSTACK
OpenStack is an open-source cloud computing platform that allows organizations to build and manage
private and public clouds. It provides a wide range of services for deploying and managing cloud
infrastructure, including compute, storage, networking, and more. OpenStack is designed to be highly
scalable, flexible, and customizable, making it a popular choice for organizations seeking to create their
own cloud environments.
Components of OpenStack
Major components of OpenStack are given below:
Compute (Nova): Compute is a controller that is used to manage resources in virtualized
environments. It handles several virtual machines and other instances that perform computing tasks.
Object Storage (Swift): To store and retrieve arbitrary data in the cloud, object storage is used. In
Swift, it is possible to store the files, objects, backups, images, videos, virtual machines, and other
unstructured data. Developers may use a special identifier for referring the file and objects in place of
the path, which directly points to a file and allows the OpenStack to manage where to store the files.
Block Storage (Cinder): This works in the traditional way of attaching and detaching an external hard
drive to the OS for its local use. Cinder manages to add, remove, create new disk space in the server.
This component provides the virtual storage for the virtual machines in the system.
Networking (Neutron): This component is used for networking in OpenStack. Neutron manages all
the network-related queries, such as IP address management, routers, subnets, firewalls, VPNs, etc. It
confirms that all the other components are well connected with the OpenStack.
Dashboard (Horizon): This is the first component that the user sees in the OpenStack. Horizon is the
web UI (user interface) component used to access the other back-end services. Through individual API
CCS335- CC UNIT-4
(Application programming interface), developers can access the OpenStack's components, but through
the dashboard, system administrators can look at what is going on in the cloud and manage it as per
their need.
Identity Service (Keystone): It is the central repository of all the users and their permissions for the
OpenStack services they use. This component is used to manage identity services like authorization,
authentication, AWS Styles (Amazon Web Services) logins, token-based systems, and checking the
other credentials (username & password).
Image Service (Glance): The glance component is used to provide the image services to OpenStack.
Here, image service means the images or virtual copies of hard disks. When we plan to deploy a new
virtual machine instance, then glance allows us to use these images as templates. Glance allows virtual
box (VDI), VMware (VMDK, OVF), Raw, Hyper-V (VHD) and KVM (qcow2) virtual images.
Telemetry (Ceilometer): It is used to meter the usage and report it to OpenStack's individual users. So
basically, Telementry provides billing services to OpenStack's individual users.
Orchestration (Heat): It allows the developers to store the cloud application's necessities as a file so
that all-important resources are available in handy. This component organizes many complex
applications of the cloud through the templates, via both the local OpenStack REST API and Query
API.
Shared File System (Manila): It offers storage of the file to a virtual machine. This component gives
an infrastructure for managing and provisioning file shares.
Elastic Map-reduce (Sahara): The Sahara component offers a simple method to the users to
preplanned Hadoop clusters by referring to the multiple options such as the Hadoop version, cluster
topology and hardware details of nodes and some more.
Highlights of OpenStack
o OpenStack has made it possible for companies such as Bloomberg and Disney to handle their private
clouds at very manageable prices.
o OpenStack offers mixed hypervisor environments and bare metal server environments.
o RedHat, SUSE Linux, and Debian have all been active contributors and have been supporting
OpenStack since its inception.
o OpenStack is used by Walmart to organize more than one lac cores, which offers 100 % uptime during
last year's Black Friday.
___________________________________________________________________________________
_______
13