Unit 3
Unit 3
UNIT – 3
Syllabus: Cloud Platform Architecture: Cloud Computing and Service Models,
Public Cloud Platforms, Service Oriented Architecture, Programming on Amazon
AWS and Microsoft Azure
In recent days, the IT industry has moved from manufacturing to offering more services
(service-oriented). As of now, 80% of the industry is ‘service-industry’. It should be realized
that services are not manufactured/invented from time-to-time; they are only rented and
improved as per the requirements. Clouds aim to utilize the resources of data centers
virtually over automated hardware, databases, user interfaces and apps.
I)Public, Private and Hybrid Clouds: Cloud computing has evolved from the concepts of
clusters, grids and distributed computing. Different resources (hardware, finance, time) are
leveraged (use to maximum advantage) to bring out the maximum HTC. A Cloud Computing
model enables the users to share resources from anywhere at any time through their
connected devices.
The Basic Architecture of the types of clouds can be seen in Figure 4.1 below.
Public Clouds: A public cloud is owned by a service provider, built over the Internet
and offered to a user on payment. Ex: Google App Engine (GAE), AWS, MS-Azure,
IBM Blie Cloud and Salesforce-Force.com. All these offer their services for creating
and managing VM instances to the users within their own infrastructure.
Private Clouds: A private cloud is built within the domain of an intranet owned by
a single organization. It is client-owned and managed; its access is granted to a
limited number of clients only. Private clouds offer a flexible and agile private
infrastructure to run workloads within their own domains. Though private cloud
offers more control, it has limited resources only.
Hybrid Clouds: A hybrid cloud is built with both public and private clouds. Private
clouds can also support a hybrid cloud model by enhancing the local infrastructure
with computing capacity of a public external cloud.
Data Center Networking Architecture: The core of a cloud is the server cluster
and the cluster nodes are used as compute nodes. The scheduling of user jobs
requires that virtual clusters are to be created for the users and should be granted
control over the required resources. Gateway nodes are used to provide the access
points of the concerned service from the outside world. They can also be used for
security control of the entire cloud platform. It is to be noted that in physical
clusters/grids, the workload is static; in clouds, the workload is dynamic and the
cloud should be able to handle any level of workload on demand.
ii) Cloud Ecosystem and Enabling Technologies: The differences between classical
computing and cloud computing can be seen in the table below. In traditional computing,
a user has to buy the hardware, acquire the software, install the system, test the
configuration and execute the app code. The management of the available resources is
also a part of this. Finally, all this process has to be revised for every 1.5 or 2 years since
the used methodologies will become obsolete.
On the other hand, Cloud Computing follows a pay-as-you-go model [1]. Hence the cost is
reduced significantly – a user doesn’t buy any resources but rents them as per his
requirements. All S/W and H/W resources are leased by the user from the cloud resource
providers. This is advantageous for small and middle business firms which require limited
amount of resources only. Finally, Cloud Computing also saves power.
The above Figure 4.3a shows the additional costs on top of fixed capital investments in
traditional computing. In Cloud Computing, only pay-as-per-use is applied, and user-jobs
are outsourced to data centers. To use a cloud, one has no need to buy hardware
resources; he can utilize them as per the demands of the work and release the same after
the job is completed.
An ecosystem for private clouds was suggested by scientists as depicted in Figure 4.4.
In the above suggested 4 levels, at the user end, a flexible platform is required by the
customers. At the cloud management level, the virtualization resources are provided by
the concerned cloud manager to offer the IaaS. At the VI management level, the
manager allocates the VMs to the available multiple clusters. Finally, at the VM
management level, the VM managers handle VMs installed on the individual host
machines.
d) Increase of Private Clouds: Private clouds influence the infrastructure and services
that are utilized by an organization. Private and public clouds handle the workloads
dynamically but public clouds handle them without communication dependency. On the
other hand, private clouds can balance workloads to exploit the infrastructure effectively
to obtain HP. The major advantage of private clouds is less security problems and public
clouds need less investment.
It should be noted that platform cloud is an integrated system consisting of both S/W
and H/W. The user doesn’t manage the cloud infrastructure but chooses the platform that
is best suited to his choice of apps. The model also encourages third parties to
provide software management, integration and service monitoring solutions.
Software as a Service (SaaS): This is about a browser-initiated app s/w over
thousands of cloud customers. Services & tools offered by PaaS are utilized in
construction and deployment of apps and management of their resources. The
customer needs no investment and the provider can keep the costs low. Customer
data is also stored in a cloud and is accessible through different other services. Ex:
Gmail, Google docs, Salesforce.com etc.
Mashup of Cloud Services: Public clouds are more used these days but private
clouds are not far behind. To utilize the resources up to the maximum level and
deploy/remove the apps as per requirement, we may need to mix-up the different
parts of each service to bring out a chain of connected activities. Ex: Google Maps,
Twitter, Amazon ecommerce, YouTube etc.
The app providers at the SaaS level are used mainly by the individual users. Most
business organisations are serviced by IaaS and PaaS providers. IaaS provides compute,
storage, and communication resources to both app providers and organisational users. The
cloud environment is defined by PaaS providers. Note that PaaS provides support both
IaaS services and organisational users directly.
Cloud services depend upon machine virtualization, SOA, grid infrastructure management
and power efficiency. The provider service charges are much lower than the cost incurred
by the users when replacing damaged servers. The Table 4.5 shows a summary of the
profiles of the major service providers.
a) Google App Engine (GAE): The Google platform is based on its search engine
expertise and is applicable to many other areas (Ex: MapReduce). The Google
Cloud Infrastructure consists of several apps like Gmail, Google Docs, and
Google Earth and can support multiple no. of users simultaneously to raise the bar
for HA (high availability). Other technology achievements of Google include Google
File System (GFS) [like HDFS], MapReduce, BigTable, and Chubby (A Distributed
Lock Service). GAE enables users to run their apps on a large number of data
centers associated with Google’s search engine operations. The GAE architecture
can be seen in Figure 4.20 below:
The building blocks of Google’s Cloud Computing app include GFS for storing large
amounts of data, the MapReduce programming framework for developers, Chubby for
distributed lock services and BigTable as a storage service for accessing structural data.
GAE runs the user program on Google’s infrastructure where the user need not worry
about storage or maintenance of data in the servers. It is a combination of several
software components but the frontend is same as ASP (Active Server Pages), J2EE and
JSP.
The well-known GAE apps are the search engine, docs, earth and Gmail. Users linked with
one app can interact and interface with other apps through the resources of GAE
(synchronise and one login for all services).
b) Amazon Web Services (AWS): Amazon applies the IaaS model in providing its
services. The Figure 4.21 [1] below shows the architecture of AWS:
EC2 provides the virtualized platforms to host the VMs where the cloud app can run.
S3 (Simple Storage Service) provides the OO storage service for the users.
EBS (Elastic Block Service) provides the block storage interface which can be used to
support traditional apps.
SQS (Simple Queue Service) ensures a reliable message service between two processes.
Amazon offers a RDS (relational database service) with a messaging interface. The AWS
offerings are given below in Table 4.6
c) MS-Azure: The overall architecture of MS cloud platform, built on its own data
centers, is shown in Figure 4.22. It is divided into 3 major component platforms as
it can be seen. Apps are installed on VMs and Azure platform itself is built on
Windows OS.
Live Service: Through this, the users can apply MS live apps and data across multiple
machines concurrently.
.NET Service: This package supports app development on local hosts and execution on
cloud machines.
SQL Azure: Users can visit and utilized the relational database associated with a SQL
server in the cloud.
SharePoint Service: A scalable platform to develop special business apps.
Dynamic CRM Service: This provides a business platform for the developers to manage
the CRM apps in financing, marketing, sales and promotions.
SOAP: This provides a standard packaging structure for transmission of XML documents
over various IPs. (HTTP, SMTP, FTP). A SOAP message consists of an envelope (root
element), which itself contains a header. It also had a body that carries the payload of
the message.
WSDL: It describes the interface and a set of operations supported by a web service in a
standard format.
UDDI: This provides a global registry for advertising and discovery of web services by
searching for names, identifiers, categories.
Since SOAP can combine the strengths of XML and HTTP, it is useful for heterogeneous
distributed computing environments like grids and clouds
ii. Enterprise Multitier Architecture: This is a kind of client/server architecture
application processing and data management are logically separate processes. As
seen below in Figure 5.4, it is a three-tier information system where each layer has
its own important responsibilities.
Presentation Layer: Presents information to external entities and allows them to interact
with the system by submitting operations and getting responses.
Application Logic (Middleware): These consist of programs that implement actual
operations requested by the client. The middle tier can also be used for user
authentication and granting of resources, thus removing some load from the servers.
Resource Management Layer (Data Layer): It deals with the data sources of an
information system.
• Private AMI: Images created by you, which are private by default. You
can grant access to other users to launch your private images
• Public AMI: Images created by users and released to the AWS
community, so anyone can launch instances based on them and use them
any way they like
• Paid QAMI: You can create images providing specific functions that can
be launched by anyone willing to pay you per each hour of usage on top
of Amazon’s charges.
The workflow to create a VM is
• Elastic Block Store (EBS) provides the volume block interface for saving
and restoring the virtual images of EC2 instances
• Users can use EBS to save persistent data and mount to the running
instances of EC2
• EBS allows to create storage volumes from 1 GB to 1 TB that can be
mounted as EC2 instances
• These storage volumes behave like raw, unformatted block devices
• Volume storage charges are based on the amount of storage users
allocate until it is released, and is priced at $0.10 per GB/month
• EBS also charges $0.10 per 1 million I/O requests made to the storage.
• The equivalent of EBS has been offered in open source clouds such
Nimbus
3.4.3.1 Amazon SimpleDB Service
Many developers simply want to quickly store, access, and query the stored
data. SimpleDB removes the requirement to maintain database schemas with
strong consistency. SimpleDB is priced at $0.140 per Amazon SimpleDB Machine
Hour consumed with the first 25 Amazon SimpleDB Machine Hours consumed per
month free. SimpleDB, like Azure Table, could be called “LittleTable,” as they are
aimed at managing small amounts of information stored in a distributed
table;one could say BigTable is aimed at basic big data, whereas LittleTable is
aimed at metadata. Amazon Dynamo is an early research system along the lines
of the production SimpleDB system.
3.4.4.1 SQLAzure
Azure offers a very rich set of storage capabilities. All the storage modalities
are accessed with REST interfaces except for the recently introduced Drives that
are analogous to Amazon EBS, and offer a file system interface as a durable
NTFS volume backed by blob storage. The REST interfaces are automatically
associated with URLs and all storage is replicated three times for fault tolerance
and is guaranteed to be consistent in access.
The basic storage system is built from blobs which are analogous to S3 for
Amazon. Blobs are arranged as a three-level hierarchy: Account → Containers →
Page or Block Blobs. Containers are analogous to directories in traditional file
systems with the account acting as the root. The block blob is used for streaming
data and each such blob is made up as a sequence of blocks of up to 4 MB each,
while each block has a 64 byte ID. Block blobs can be up to 200 GB in size. Page
blobs are for random read/write access and consist of an array of pages with a
maximum blob size of 1 TB. One can associate metadata with blobs as <name,
value> pairs with up to 8 KB per blob.
• The Azure Table and Queue storage modes are aimed at much smaller
data volumes
• Queues provide reliable message delivery and used to support work
spooling between web and worker roles
• Queues consist of an unlimited number of messages with an 8KB limit on
message size
• Azure supports PUT, GET, and DELETE message operations as well as
CREATE and DELETE for queues
• Each account can have any number of Azure tables which consist of rows
called entities and columns called properties
• There is no limit to the number of entities in a table
• All entities can have up to 255 general properties which are <name,
type, value> triples
• An entity can have, at most, 1 MB storage
• If large value size is required then store a link to a blob store in the
Table property value