Cloud Unit 4
Cloud Unit 4
UNIT-4
Cloud Platform in Industry
B. EC2 instances:
EC2 instances represent virtual machines. They are created using AMI as templates, which are specialized
by selecting the number of cores, their computing power, and the installed memory.
Standard instances: This class offers a set of configurations that are suitable form
applications. EC2 provides three different categories of increasing computing power, storage, and
memory.
Micro instances: This class is suitable for those applications that consume a limited
amount of computing power and memory and occasionally need bursts in CPU cycles to process in
the workload. Micro instances can be used for small Web applications with limited traffic.
High-memory instances: This class targets applications that need to process huge
workloads and require large amounts of memory. Three-tier Web applications characterized by high
traffic are the target profile. Three categories of increasing memory and CPU are available, with
memory proportionally larger than computing power.
Cluster Compute instances: This class is used to provide virtual cluster services. Instances
in this category are characterized by high CPU compute power and large memory and an extremely
high I/O and network performance, which makes it suitable for HPC applications.
Cluster GPU instances: This class provides instances featuring graphic processing units
(GPUs) and high compute power, large memory, and extremely high I/O and network performance.
This class is particularly suited for cluster applications that perform heavy graphic computations,
such as rendering clusters. Since GPU can be used for general-purpose computing, users of such
instances can benefit from additional computing power, which makes this class suitable for HPC
applications.
C. Advanced compute services: EC2 instances and AMIs constitute the basic blocks for
building an IaaS computing cloud. On top of these, Amazon Web Services provide more
sophisticated services that allow the easy packaging and deploying of applications and a
computing platform that supports the execution of Map Reduce-based applications.
AWS elastic beanstalk: AWS Elastic Beanstalk constitutes a simple and easy
way to package applications and deploy them on the AWS Cloud. This service
simplifies the process of provisioning instances and deploying application code and
provides appropriate access to them. Currently, this service is available only for Web
applications developed with the Java/Tomcat technology stack. Developers can
conveniently package their Web application into a WAR file and use Beanstalk to
automate its deployment on the AWS Cloud.
A. S3 key concepts:
The storage is organized in a two-level hierarchy.
Stored objects cannot be manipulated like standard files.
Content is not immediately available to users.
Requests will occasionally fail.
B. Resource naming:
Buckets, objects and attached meta data are made accessible through a REST interface. Therefore, they
are represented by uniform resource identifiers (URIs) under the s3.amazonaws.com domain. All the
operations are then performed by expressing the entity they are directed to in the form of a request for a
URI. Amazon offers three different ways of addressing a bucket:
Canonicalform: http://s3.amazonaws.com/bukect_name/.
Subdomainform: http://bucketname.s3.amazon.com/.
Objects and metadata: Objects constitute the content elements stored in S3. Users
either store files or push to the S3 text stream representing the object’s content. An object is
identified by a name that needs to be unique within the bucket in which the content is stored.
Access control and security: Amazon S3 allows controlling the access to buckets and
objects by means of Access Control Policies(ACPs). An ACP is a set of grant permissions
that are attached to a resource expressed by means of an XML configuration file.
The Amazon Elastic Block Store (EBS) allows AWS users to provide EC2 instances with
persistent storage in the form of volumes that can be mounted at instance startup. They
accommodate up to 1 TB of space and are accessed through a block device interface, thus allowing
users to format them according to the needs of the instance they are connected to (raw storage, file
system, or other). The content of an EBS volume survives the instance life cycle and is persisted
into S3. EBS volumes can be cloned, used as boot partitions, and constitute durable storage since
they rely on S3 and it is possible to take incremental snapshots of their content.
D. Amazon ElastiCache:
Enterprise applications quite often rely on data bases to store data in a structured form index and
perform analytics against it. Traditionally,RDBMS have been the common data back-end for a
wide range of applications, even though recently more scalable and light weight solutions have
been proposed. Amazon provides applications with structured storage services in three different
forms: preconfiguredEC2AMIs, Amazon Relational Data Storage(RDS), and Amazon Simple DB.
Cloud Front is an implementation of a content delivery network on top of the Amazon distributed
storage infrastructure. It leverages a collection of edge servers strategically located around the
globe to better serve requests for static and streaming Web content so that the transfer time is
reduced as much as possible.
3. Communication services:
Amazon provides facilities to structure and facilitate the communication among existing applications
and services residing with in the AWS infrastructure. These facilities can be organized into two major
categories: virtual networking and messaging.
A. Virtual networking:
Virtual networking comprises a collection of services that allow AWS users to control the
connectivity to and between compute and storage services. Amazon Virtual Private Cloud(VPC)
and Amazon Direct Connect provide connectivity solutions interms of infrastructure; Route 53
facilitates connectivity interms of naming.
Google AppEngine:
The Google AppEngine (GAE) is a cloud computing service (belonging to the platform as a
service (PaaS) category) to create and host web-based applications within Google's data centers.
GAE web applications are sandboxed and run across many redundancy servers to allow resources
to be scaled up according to currently-existing traffic requirements. App Engine assigns additional
resources to servers to handle increased load.
Google App Engine is a Google platform for developers and businesses to create and run apps
using advanced Google infrastructure. These apps must be written in one of the few languages
supported, namely Java, Python, PHP and Go. This also requires the use of Google query language
and Google Big Table is the database used. The applications must comply with these standards, so
that applications must either be developed in keeping with GAE or modified to comply.
GAE is a platform for running and hosting Web apps, whether on mobile devices and on the Web.
Without this all-in function, developers should be responsible for creating their own servers,
database software and APIs that make everyone work together correctly. GAE takes away the
developers' pressure so that they can concentrate on the app's front end and features to enhance
user experience.
1 Infrastructure
2 Runtime environment
3 Storage
4 Application services
5 Compute services
1 Infrastructure
● AppEngine’s infrastructure takes advantage of many servers available within Google datacenters. For each
HTTP request, AppEngine locates the servers hosting the application that processes the request, evaluates their
load, and, if necessary, allocates additional resources (i.e., servers) or redirects the request to an existing server.
● Also responsible for monitoring application performance and collecting statistics on which the billing is
calculated.
2 Runtime environment
It represents the execution context of applications hosted on AppEngine.
Sandboxing
Major responsibilities of the runtime environment is to provide the application environment with an isolated
and protected context.
Supported runtimes
● Java, Python, and Go.
● Currently supports Java 6, Java Server Pages (JSP), and applications interact with
environment by using the Java Servlet standard.
● Developers can create applications with the AppEngine Java SDK.
● Python is provided by an optimized Python 2.5.2 interpreter.
● Python Web application framework- webapp.
● Go programming language - SDK includes compiler and standard libraries for developing
applications in Go and interfacing it AppEngine services.
3 Storage
It operate differently depending on the volatility of the data.
DataStore
● DataStore is a service that allows developers to store semistructured data.
● DataStore is based on Bigtable a redundant, distributed,
and semistructured
● data store that organizes data in the form of tables.
4. Application Services
Simplify common operations that are performed in Web applications:
● access to data,
● account management,
● integration of external resources,
● messaging and communication,
● image manipulation, and
● asynchronous computation.
ASST.PROF. MANJUNATHA K V | GMS ACADEMY FIRST GRADE COLLEGE, DAVANAGERE
CLOUD COMPUTING
UrlFetch
● The sandbox environment does not allow applications to open arbitrary connections.
● HTTP/HTTPS by means of the UrlFetch service.
● Applications can make synchronous and asynchronous Web requests and integrate the
resources obtained.
● Ability to set deadlines for requests so that they can be completed (or aborted) within a given
time.
MemCache
● caching services by means of MemCache.
● distributed in-memory cache that is optimized for fast access and provides volatile store for
objects that are frequently accessed.
● significantly reduce the access time to data.
Account management
● Web applications can conveniently store profile settings in the form of key- value pairs,
attach them to a given Google account, and quickly retrieve them once the user authenticates.
5 Compute services
● Users navigate the Web pages and get instantaneous feedback.
● Feedback is result of some computation happening on the
Web application.
● Immediate feedback and notification once the required
operation is completed.
● Task queues
● Task Queues allow applications to submit a task for a later execution.
● Cron jobs
● Schedule the required operation at the desired time.
● Eclipse development environment by using the Google AppEngine plug-in - install Java SDK,
Google Web Toolkit, and Google AppEngine plug-ins into Eclipse.
● Python SDK - Python 2.5.
● Standalone tool, called GoogleAppEngineLauncher, for managing Web applications locally
and deploying them to AppEngine.
● webapp - includes a set of models, components, and tools that simplify development of Web
applications.
3. Cost model
Microsoft Azure is a platform as a service (PaaS) to develop and manage applications for using
their Microsoft products and in their data centers. This is a complete suite of cloud products that
allow users to develop business-class applications without developing their own infrastructure.
Three cloud-centric products are available on the Azure Cloud platform: the Windows Azure,
SQL Azure & Azure App Fabric controller. This involve the infrastructure hosting facility for the
application.
In the Azure, the Cloud service role is a set of virtual platforms that work together to
accomplish basic tasks, which is managed, load-balanced and Platform-as-a-Service. Cloud
Service Roles are controlled by Azure fabric controller and provide the perfect combination of
scalability, control, and customization.
Web Role is the role of an Azure Cloud service which is configured and adapted to operate web
applications developed on the Internet Information (IIS) programming languages and technologies,
such as ASP.NET, PHP, Windows Communication Foundation and Fast CGI.
Web Role is the role of an Azure Cloud service which is configured and adapted to operate
web applications developed on the Internet Information (IIS) programming languages and
technologies, such as ASP.NET, PHP, Windows Communication Foundation and Fast CGI.
Worker role is any role for Azure that works on applications and services that do not usually
require IIS. IIS is not enabled default in Worker Roles. They are mainly utilized to support web-
based background processes and to do tasks such as compressing uploaded images automatically,
run scripts, get new messages out of queue and process and more, when something changes the
database.
VM Role: The VM role is a type of Azure Platform role that supports the automated management
of already installed service packages, fixes, updates and applications for Windows Azure.
A Web Role deploys and hosts the application automatically via IIS A Worker Role does not use
IIS and runs the program independently The two can be handled similarly and can be run on the
same Azure instances if they are deployed and supplied via the Azure Service Platform.
For certain cases, instances of Web Role and Worker Roles work together and are also used
concurrently by an application. For example, a web role example can accept applications from
users, and then pass them to a database worker role example.
Web role
Worker role
3 Core infrastructure:
AppFabric Access control
Service bus Azure cache
4 Other services
Windows Azure virtual network
Windows Azure content delivery network
1.Compute services are core components, they are delivered by means of abstraction of
roles.
● A role is a runtime environment that is customized for specific compute task.
● Roles are managed by Azure OS and instantiated on demand.
Web role
● The Web role is designed to implement scalable Web applications.
ASST.PROF. MANJUNATHA K V | GMS ACADEMY FIRST GRADE COLLEGE, DAVANAGERE
CLOUD COMPUTING
● hosted on the IIS 7 Web Server, which is a component of the infrastructure that supports Azure.
● .NET technology supports Web roles; developers can directly develop their applications in
Visual Studio, test them locally, and upload to Azure.
● Used to run and scale PHP Web applications on Azure.
Worker role
● Worker roles are designed to host general compute services on Azure.
● Quickly provide compute power or to host services.
● Runs continuously from the creation of its instance.
● Azure SDK provides APIs and libraries that allow connecting the role with the service provided
by runtime and easily controlling its startup.
● Alternative to reading a message is peeking, which allows retrieving message but letting it stay
visible in the queue.
● All the services described are geo-replicated three times to ensure their availability in case of
major disasters.
● Geo-replication involves the copying of data into a different datacenter that is hundreds or
thousands of miles away from the original datacenter.
3 Core infrastructure: AppFabric
● Middleware for developing, deploying, and managing applications on cloud or for
integrating existing applications with cloud services.
● Scaling out and high availability; sandboxing and multitenancy; state management; and
dynamic address resolution and routing.
● Simplify many common tasks in distributed application, such
as communication, authentication and authorization, and data access.
Access control
● AppFabric provides capability of encoding access control to resources in Web applications.
● Services into set of rules that are expressed outside application code base.
● Applications can leverage Active Directory, Windows Live,
Google, Facebook, and other services to authenticate users.
Service bus
● Messaging and connectivity infrastructure.
● Designed to allow transparent network traversal and to simplify development of loosely
coupled applications letting developers focus on logic of interaction.
● Applications need to be connected to bus, which provides these services. AppFabric Azure
cache
● provides a set of durable storage solutions that allow applications to persist their data.
● Azure Cache is a service that allows developers to quickly access data persisted on
Windows Azure storage or in SQL Azure.
● implements a distributed in-memory cache of which, size can
be dynamically adjusted by applications.
4 Other services
● Simplify the development and integration of applications.
Windows Azure virtual network
● includes Windows Azure Connect and Windows Azure Traffic Manager.
● Windows Azure Connect allows easy setup of IP-based network connectivity among machines
hosted on private premises and roles deployed on Azure Cloud.
● Windows Azure Traffic Manager provides load-balancing features for services listening to
HTTP or HTTPS ports and hosted on multiple roles.
Windows Azure content delivery network
● Content delivery network solution that improves content delivery capabilities of Windows
Azure Storage and Microsoft Windows Update, Bing maps.
5. Hadoop
Apache Hadoop is an open source software framework for storage and large-scale processing of
data sets of commodity hardware clusters. Hadoop is a top-level Apache project created and
operated by a global community of contributors and users. It is under the Apache License 2.0.
Two phases of MapReduce function, Map and Reduce. Map tasks are concerned with data
splitting and mapping of the data, while Reduce tasks shuffle and reduce the data.
Hadoop can run MapReduce programs in a variety of languages like Java, Ruby, Python, and
C++,. MapReduce program is parallel in nature and thus very useful for large-scale analyzes of
data via multiple cluster machines.
The input to each phase is key-value pairs. In addition, every programmer needs to specify two
functions: map function and reduce function.
The fundamental concepts on cloud computing must be understood to understand the divergence
between salesforce.com and force.com.
Salesforce is a SaaS product that includes the Out of Box (OOB) features built into a CRM system
for sales automation, marketing, service automation, etc. Some SaaS examples are Dropbox,
Google Apps and Go To Meeting that refer to taking the software from your computer to the cloud.
Force.com is a PaaS (Platform-as-a-Service) product; it includes a framework that allows you to
build applications. It contains a development environment. Force.com helps you to customize the
user interface, functionality and business logic.
Simply put, Salesforce.com functionality saves contacts, text messages, calls and other standard
functions within the iPhone application. In force.com, the applications are constructed and
operated. Salesforce.com runs on force.com, like the iPhone dialer works on the iPhone OS.
7. Manjrasoft Aneka
MANJRASOFT Pvt. Ltd. is one of organization that works on cloud computing technology by
developing software compatible with distributed networks across multiple servers.
SQL Azure
● SQL Azure is a relational database service hosted on Windows Azure and built on
the SQL Server technologies.
● via SQL Server - provides developers with scalable, highly available, and fault-
tolerant relational database.
● Developers have to sign up for Windows Azure account in order to use SQL Azure.
● Closely resemble physical SQL Servers: They have a fully qualified domain name under
the database.windows.net ( i.e., server-name.database.windows.net) domain name.
● This simplifies management tasks and the interaction with SQL Azure from client
applications.
Observations
● Windows Azure is Microsoft’s solution for developing cloud computing applications.
● PaaS layer.
● Provides developer with collection of services and scal- able middleware hosted on
Microsoft datacenters that address compute, storage, networking, and identity management needs
of applications.
● Individually or all together for building both applications.
● Compute services are based on the abstraction of roles.
● AppFabric, constitutes distributed and scalable middleware of Azure.
● SQL Azure is another important element of Windows Azure and provides support for
relational data in the cloud.
● Platform is based on .NET technology and Windows systems.