Unit Iv CC

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

UNIT IV

CLOUD DEPLOYMENT ENVIRONMENT

Google App Engine – Amazon AWS – Microsoft Azure; Cloud Software


Environments – Eucalyptus – OpenStack.

Google App Engine

A scalable runtime environment, Google App Engine is mostly used to run Web
applications. These dynamic scales as demand change over time because of
Google’s vast computing infrastructure. Because it offers a secure execution
environment in addition to a number of services, App Engine makes it easier to
develop scalable and high-performance Web apps. Google’s applications will
scale up and down in response to shifting demand. Croon tasks,
communications, scalable data stores, work queues, and in-memory caching are
some of these services.

The App Engine SDK facilitates the testing and professionalization of


applications by emulating the production runtime environment and allowing
developers to design and test applications on their own PCs. When an
application is finished being produced, developers can quickly migrate it to App
Engine, put in place quotas to control the cost that is generated, and make the
programmer available to everyone. Python, Java, and Go are among the
languages that are currently supported.

The development and hosting platform Google App Engine, which powers
anything from web programming for huge enterprises to mobile apps, uses the
same infrastructure as Google’s large-scale internet services. It is a fully
managed PaaS (platform as a service) cloud computing platform that uses in-
built services to run your apps. You can start creating almost immediately after
receiving the software development kit (SDK). You may immediately access
the Google app developer’s manual once you’ve chosen the language you wish
to use to build your app.

 After creating a Cloud account, you may Start Building your App
 Using the Go template/HTML package
 Python-based webapp2 with Jinja2
 PHP and Cloud SQL
 using Java’s Maven
The app engine runs the programmers on various servers while “sandboxing”
them. The app engine allows the program to use more resources in order to
handle increased demands. The app engine powers programs like Snapchat,
Rovio, and Khan Academy.

Features of App Engine

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
 Generally Usable Features

These are protected by the service-level agreement and depreciation policy of


the app engine. The implementation of such a feature is often stable, and any
changes made to it are backward-compatible. These include communications,
process management, computing, data storage, retrieval, and search, as well as
app configuration and management. Features like the HRD migration tool,
Google Cloud SQL, logs, datastore, dedicated Memcached, blob store,
Memcached, and search are included in the categories of data storage, retrieval,
and search.

Features in Preview

In a later iteration of the app engine, these functions will undoubtedly be made
broadly accessible. However, because they are in the preview, their
implementation may change in ways that are backward-incompatible. Sockets,
MapReduce, and the Google Cloud Storage Client Library are a few of them.
Experimental Features

These might or might not be made broadly accessible in the next app engine
updates. They might be changed in ways that are irreconcilable with the past.
The “trusted tester” features, however, are only accessible to a limited user base
and require registration in order to utilize them. The experimental features
include Prospective Search, Page Speed, OpenID, Restore/Backup/Datastore
Admin, Task Queue Tagging, MapReduce, and Task Queue REST API. App
metrics analytics, datastore admin/backup/restore, task queue tagging,
MapReduce, task queue REST API, OAuth, prospective search, OpenID, and
Page Speed are some of the experimental features.

Third-Party Services

As Google provides documentation and helper libraries to expand the


capabilities of the app engine platform, your app can perform tasks that are not
built into the core product you are familiar with as app engine. To do this,
Google collaborates with other organizations. Along with the helper libraries,
the partners frequently provide exclusive deals to app engine users.

Advantages of Google App Engine

 The Google App Engine has a lot of benefits that can help you advance
your app ideas. This comprises:
 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.
 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.
 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.
 Easy to Use: The tools that you need to create, test, launch, and update
the applications are included in Google App Engine (GAE).
 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.
 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.
 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.
 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.
 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), a subsidiary of Amazon.com, has invested


billions of dollars in IT resources distributed across the globe. These resources
are shared among all the AWS account holders across the globe. These account
themselves are entirely isolated from each other. AWS provides on-demand IT
resources to its account holders on a pay-as-you-go pricing model with no
upfront cost. Amazon Web services offers flexibility because you can only pay
for services you use or you need. Enterprises use AWS to reduce capital
expenditure of building their own private IT infrastructure (which can be
expensive depending upon the enterprise’s size and nature). AWS has its own
Physical fiber network that connects with Availability zones, regions and Edge
locations. All the maintenance cost is also bared by the AWS that saves a
fortune for the enterprises.

Security of cloud is the responsibility of AWS but Security in the cloud is


Customer’s Responsibility. The Performance efficiency in the cloud has four
main areas:-

 Selection
 Review
 Monitoring
 Tradeoff
Advantages of Amazon Web Services

 AWS allows you to easily scale your resources up or down as your needs
change, helping you to save money and ensure that your application
always has the resources it needs.
 AWS provides a highly reliable and secure infrastructure, with multiple
data centers and a commitment to 99.99% availability for many of its
services.
 AWS offers a wide range of services and tools that can be easily
combined to build and deploy a variety of applications, making it highly
flexible.
 AWS offers a pay-as-you-go pricing model, allowing you to only pay for
the resources you actually use and avoid upfront costs and long-term
commitments.

Disadvantages of Amazon Web Services

 AWS can be complex, with a wide range of services and features that
may be difficult to understand and use, especially for new users.
 AWS can be expensive, especially if you have a high-traffic application
or need to run multiple services. Additionally, the cost of services can
increase over time, so you need to regularly monitor your spending.
 While AWS provides many security features and tools, securing your
resources on AWS can still be challenging, and you may need to
implement additional security measures to meet your specific
requirements.
 AWS manages many aspects of the infrastructure, which can limit your
control over certain parts of your application and environment.

AWS Global Infrastructure

The AWS global infrastructure is massive and is divided into geographical


regions. The geographical regions are then divided into separate availability
zones. While selecting the geographical regions for AWS, three factors come
into play

 Optimizing Latency
 Reducing cost
 Government regulations (Some services are not available for some
regions)

Each region is divided into at least two availability zones that are physically
isolated from each other, which provides business continuity for the
infrastructure as in a distributed system. If one zone fails to function, the
infrastructure in other availability zones remains operational. The largest region
North Virginia (US-East), has six availability zones. These availability zones
are connected by high-speed fiber-optic networking.

There are over 100 edge locations distributed all over the globe that are used for
the CloudFront (content delivery network). Cloudfront can cache frequently
used content such as images and videos(live streaming videos also) at edge
locations and distribute it to edge locations across the globe for high-speed
delivery and low latency for end-users. It also protects from DDOS attacks.

AWS Management Console

The AWS management console is a web-based interface to access AWS. It


requires an AWS account and also has a smartphone application for the same
purpose. So When you sign in for first time, you see the console home
page where you see all the services provided by AWS. Cost monitoring is also
done through the console.

AWS resources can also be accessed through various Software Development


Kits (SDKs), which allows the developers to create applications as AWS as its
backend. There are SDKs for all the major languages(e.g., JavaScript, Python,
Node.js, .Net, PHP, Ruby, Go, C++). There are mobile SDKs for Android, iOS,
React Native, Unity, and Xamarin. AWS can also be accessed by making HTTP
calls using the AWS-API. AWS also provides a Command Line Interface (CLI)
for remotely accessing the AWS and can implement scripts to automate many
processes. This Console is also available as an app for Android and iOS. For
mobile apps, you can simply download AWS console app.

AWS Cloud Computing Models

There are three cloud computing models available on AWS.

Infrastructure as a Service (IaaS): It is the basic building block of cloud IT. It


generally provides access to data storage space, networking features, and
computer hardware(virtual or dedicated hardware). It is highly flexible and
gives management controls over the IT resources to the developer. For example,
VPC, EC2, EBS.

Platform as a Service (PaaS): This is a type of service where AWS manages


the underlying infrastructure (usually operating system and hardware). This
helps the developer to be more efficient as they do not have to worry about
undifferentiated heavy lifting required for running the applications such as
capacity planning, software maintenance, resource procurement, patching, etc.,
and focus more on deployment and management of the applications. For
example, RDS, EMR, ElasticSearch.

Software as a Service(SaaS): It is a complete product that usually runs on a


browser. It primarily refers to end-user applications. It is run and managed by
the service provider. The end-user only has to worry about the application of the
software suitable to its needs. For example, Saleforce.com, Web-based email,
Office 365 .

Microsoft Azure

Azure is Microsoft’s cloud platform, just like Google has its Google Cloud and
Amazon has its Amazon Web Service or AWS.000. Generally, it is a platform
through which we can use Microsoft’s resources. For example, to set up a huge
server, we will require huge investment, effort, physical space, and so on. In
such situations, Microsoft Azure comes to our rescue. It will provide us with
virtual machines, fast processing of data, analytical and monitoring tools, and so
on to make our work simpler. The pricing of Azure is also simpler and cost-
effective. Popularly termed as “Pay As You Go”, which means how much you
use, pay only for that.

Azure History

Microsoft unveiled Windows Azure in early October 2008 but it went to live
after February 2010. Later in 2014, Microsoft changed its name from Windows
Azure to Microsoft Azure. Azure provided a service platform for .NET services,
SQL Services, and many Live Services. Many people were still very skeptical
about “the cloud”. As an industry, we were entering a brave new world with
many possibilities. Microsoft Azure is getting bigger and better in the coming
days. More tools and more functionalities are getting added. It has two releases
as of now. It’s a famous version of Microsoft Azure v1 and later Microsoft
Azure v2. Microsoft Azure v1 was more JSON script-driven than the new
version v2, which has interactive UI for simplification and easy learning.
Microsoft Azure v2 is still in the preview version.

How Azure can help in business?

Azure can help our business in the following ways-

 Capital less: We don’t have to worry about the capital as Azure cuts out
the high cost of hardware. You simply pay as you go and enjoy a
subscription-based model that’s kind to your cash flow. Also, setting up
an Azure account is very easy. You simply register in Azure Portal and
select your required subscription and get going.
 Less Operational Cost: Azure has a low operational cost because it runs
on its servers whose only job is to make the cloud functional and bug-
free, it’s usually a whole lot more reliable than your own, on-location
server.
 Cost Effective: If we set up a server on our own, we need to hire a tech
support team to monitor them and make sure things are working fine.
Also, there might be a situation where the tech support team is taking too
much time to solve the issue incurred in the server. So, in this regard is
way too pocket-friendly.
 Easy Back-Up and Recovery options: Azure keeps backups of all your
valuable data. In disaster situations, you can recover all your data in a
single click without your business getting affected. Cloud-based backup
and recovery solutions save time, avoid large up-front investments and
roll up third-party expertise as part of the deal.
 Easy to implement: It is very easy to implement your business models in
Azure. With a couple of on-click activities, you are good to go. Even
there are several tutorials to make you learn and deploy faster.
 Better Security: Azure provides more security than local servers. Be
carefree about your critical data and business applications. As it stays safe
in the Azure Cloud. Even, in natural disasters, where the resources can be
harmed, Azure is a rescue. The cloud is always on.
 Work from anywhere: Azure gives you the freedom to work from
anywhere and everywhere. It just requires a network connection and
credentials. And with most serious Azure cloud services offering mobile
apps, you’re not restricted to which device you’ve got to hand.
 Increased collaboration: With Azure, teams can access, edit and share
documents anytime, from anywhere. They can work and achieve future
goals hand in hand. Another advantage of Azure is that it preserves
records of activity and data. Timestamps are one example of Azure’s
record-keeping. Timestamps improve team collaboration by establishing
transparency and increasing accountability.
 Microsoft Azure Services
 Following are some of the services Microsoft Azure offers:
 Compute: Includes Virtual Machines, Virtual Machine Scale Sets,
Functions for serverless computing, Batch for containerized batch
workloads, Service Fabric for microservices and container orchestration,
and Cloud Services for building cloud-based apps and APIs.
 Networking: With Azure, you can use a variety of networking tools, like
the Virtual Network, which can connect to on-premise data centers; Load
Balancer; Application Gateway; VPN Gateway; Azure DNS for domain
hosting, Content Delivery Network, Traffic Manager, ExpressRoute
dedicated private network fiber connections; and Network Watcher
monitoring and diagnostics
 Storage: Includes Blob, Queue, File, and Disk Storage, as well as a Data
Lake Store, Backup, and Site Recovery, among others.
 Web + Mobile: Creating Web + Mobile applications is very easy as it
includes several services for building and deploying applications.
 Containers: Azure has a property that includes Container Service, which
supports Kubernetes, DC/OS or Docker Swarm, and Container Registry,
as well as tools for microservices.
 Databases: Azure also included several SQL-based databases and related
tools.
 Data + Analytics: Azure has some big data tools like HDInsight for
Hadoop Spark, R Server, HBase, and Storm clusters
 AI + Cognitive Services: With Azure developing applications with
artificial intelligence capabilities, like the Computer Vision API, Face
API, Bing Web Search, Video Indexer, and Language Understanding
Intelligent.
 Internet of Things: Includes IoT Hub and IoT Edge services that can be
combined with a variety of machine learning, analytics, and
communications services.
 Security + Identity: Includes Security Center, Azure Active Directory,
Key Vault, and Multi-Factor Authentication Services.
 Developer Tools: Includes cloud development services like Visual Studio
Team Services, Azure DevTest Labs, HockeyApp mobile app
deployment and monitoring, Xamarin cross-platform mobile
development, and more.

Cloud Software Environments – Eucalyptus

The open-source cloud refers to software or applications publicly available for


the users in the cloud to set up for their own purpose or for their organization.

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:-

: A good example is the Eucalyptus Machine Image which is a module software


bundled and uploaded to the Cloud.

: When we run the picture and utilize it, it turns into an instance.

: 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).

:It is utilized to give limitations to clients.

: It gives block-level storage volumes to connect to an instance.

A: 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.

examples of Amazon or Eucalyptus machine pictures can be run on both


clouds.

 Its API is completely similar to all the Amazon Web Services.


 Eucalyptus can be utilized with DevOps apparatuses like Chef and
Puppet.
 Although it isn’t as popular yet but has the potential to be an alternative
to OpenStack and CloudStack.
 It is used to gather hybrid, public and private clouds.
 It allows users to deliver their own data centers into a private cloud and
hence, extend the services to other organization

OPEN STACK

It is a free open standard cloud computing platform that first came into
existence on July 21′ 2010. It was a joint project of Rackspace Hosting and
NASA to make cloud computing more ubiquitous in nature. It is deployed as
Infrastructure-as-a-service(IaaS) in both public and private clouds where virtual
resources are made available to the users. The software platform contains
interrelated components that control multi-vendor hardware pools of processing,
storage, networking resources through a data center. In OpenStack, the tools
which are used to build this platform are referred to as “projects”. These
projects handle a large number of services including computing, networking,
and storage services. Unlike virtualization, in which resources such as RAM,
CPU, etc are abstracted from the hardware using hypervisors, OpenStack uses a
number of APIs to abstract those resources so that users and the administrators
are able to directly interact with the cloud services.

OpenStack components

Apart from various projects which constitute the OpenStack platform, there are
nine major services namely Nova, Neutron, Swift, Cinder, Keystone, Horizon,
Ceilometer, and Heat. Here is the basic definition of all the components which
will give us a basic idea about these components.

Nova (compute service): It manages the compute resources like creating,


deleting, and handling the scheduling. It can be seen as a program dedicated to
the automation of resources that are responsible for the virtualization of services
and high-performance computing.

Neutron (networking service): It is responsible for connecting all the networks


across OpenStack. It is an API driven service that manages all networks and IP
addresses.

Swift (object storage): It is an object storage service with high fault tolerance
capabilities and it used to retrieve unstructured data objects with the help of
Restful API. Being a distributed platform, it is also used to provide redundant
storage within servers that are clustered together. It is able to successfully
manage petabytes of data.

Cinder (block storage): It is responsible for providing persistent block storage


that is made accessible using an API (self- service). Consequently, it allows
users to define and manage the amount of cloud storage required.

Keystone (identity service provider): It is responsible for all types of


authentications and authorizations in the OpenStack services. It is a directory-
based service that uses a central repository to map the correct services with the
correct user.

Glance (image service provider): It is responsible for registering, storing, and


retrieving virtual disk images from the complete network. These images are
stored in a wide range of back-end systems.
Horizon (dashboard): It is responsible for providing a web-based interface for
OpenStack services. It is used to manage, provision, and monitor cloud
resources.

Ceilometer (telemetry): It is responsible for metering and billing of services


used. Also, it is used to generate alarms when a certain threshold is exceeded.

Heat (orchestration): It is used for on-demand service provisioning with auto-


scaling of cloud resources. It works in coordination with the ceilometer.

These are the services around which this platform revolves around. These
services individually handle storage, compute, networking, identity, etc. These
services are the base on which the rest of the projects rely on and are able to
orchestrate services, allow bare-metal provisioning, handle dashboards, etc.

Features of OpenStack

Modular architecture: OpenStack is designed with a modular architecture that


enables users to deploy only the components they need. This makes it easier to
customize and scale the platform to meet specific business requirements.

Multi-tenancy support: OpenStack provides multi-tenancy support, which


enables multiple users to access the same cloud infrastructure while maintaining
security and isolation between them. This is particularly important for cloud
service providers who need to offer services to multiple customers.

Open-source software: OpenStack is an open-source software platform that is


free to use and modify. This enables users to customize the platform to meet
their specific requirements, without the need for expensive proprietary software
licenses.

Distributed architecture: OpenStack is designed with a distributed


architecture that enables users to scale their cloud infrastructure horizontally
across multiple physical servers. This makes it easier to handle large workloads
and improve system performance.
API-driven: OpenStack is API-driven, which means that all components can be
accessed and controlled through a set of APIs. This makes it easier to automate
and integrate with other tools and services.

Comprehensive dashboard: OpenStack provides a comprehensive dashboard


that enables users to manage their cloud infrastructure and resources through a
user-friendly web interface. This makes it easier to monitor and manage cloud
resources without the need for specialized technical skills.

Resource pooling: OpenStack enables users to pool computing, storage, and


networking resources, which can be dynamically allocated and de-allocated
based on demand. This enables users to optimize resource utilization and reduce
waste.

Advantages of using OpenStack

It boosts rapid provisioning of resources due to which orchestration and scaling


up and down of resources becomes easy.

Deployment of applications using OpenStack does not consume a large amount


of time.

Since resources are scalable therefore they are used more wisely and efficiently.

The regulatory compliances associated with its usage are manageable.

Disadvantages of using OpenStack

OpenStack is not very robust when orchestration is considered.

Even today, the APIs provided and supported by OpenStack are not compatible
with many of the hybrid cloud providers, thus integrating solutions becomes
difficult.

Like all cloud service providers OpenStack services also come with the risk of
security breaches.

You might also like