CC Unit-2
CC Unit-2
Cloud Platform Architecture: Cloud Computing and service Models, Architectural Design of
Compute and Storage Clouds, Public Cloud Platforms, Inter Cloud Resource Management, Cloud
Security and Trust Management. Service Oriented Architecture, Message Oriented Middleware.
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.
Cloud computing benefits the service industry most and advances business computing with a new
paradigm. Clouds aim to utilize the resources of data centres virtually over automated hardware,
databases, user interfaces and applications.
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.
Cloud Computing consists of a virtual platform with elastic resources and puts together the hardware,
data and software as per demand. Furthermore, the apps utilized and offered are heterogeneous.
Public Clouds:
A public cloud is owned by a service provider, built over the internet and offered to a user on
payment. All providers offer their services for creating and managing VM instances to the users within
their own infrastructure. A public cloud delivers a selected set of business processes. The application
and infrastructure services are offered on a flexible price-per-use basis.
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. Hybrid clouds operate in the middle, with many compromises in terms of resource
sharing.
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.
Cloud computing platforms differ from conventional computing platforms in many aspects.
The differences between classical computing and cloud computing can be seen in the table shown
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, CC follows a pay-as-you-go model. Hence the cost is reduced significantly – a user
doesn’t buy any resources but rents them as per his requirements. All Software and Hardware 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, CC also saves power.
• Shifting computing from desktops to data centers Computer processing, storage, and software
delivery is shifted away from desktops and local servers and toward data centers over the Internet.
• Service provisioning and cloud economics Providers supply cloud services by signing SLAs with
consumers and end users. The services must be efficient in terms of computing, storage, and power
consumption. Pricing is based on a pay-as-you-go policy.
• Scalability in performance The cloud platforms and software and infrastructure services must be
able to scale in performance as the number of users increases.
• Data privacy protection Can you trust data centers to handle your private data and records? This
concern must be addressed to make clouds successful as trusted services.
• High quality of cloud services The QoS of cloud computing must be standardized to make clouds
interoperable among multiple providers.
• New standards and interfaces This refers to solving the data lock-in problem associated withdata
centers or cloud providers. Universally accepted APIs and access protocols are needed to provide high
portability and flexibility of virtualized applications.
Platform-as-a-Service (PaaS):
To develop, deploy and manage apps with provisioned resources, an able platform is needed by
the users. Such a platform includes OS and runtime library support. Different PaaS offered in the
current market and other details are highlighted in the Table below.
It should be noted that platform cloud is an integrated system consisting of both Software and
Hardware. 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.
Ex: Google App Engine
Software as a Service (SaaS):
This model refers a browser-initiated application software 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.
An Internet cloud (CC) is envisaged (imagined) as a public cluster of servers allocated on demand to
perform collective web services or distributed apps using the resources of a data center.
The major goals of a cloud computing platform are scalability, efficiency, Virtualization, and
reliability. A cloud platform manager receives the user requests, finds the resources, and calls the
provisioning services to allocate the appropriate amount of resources for the job. Note that a manager
supports both physical and virtual machines.
The platform also needs to establish an infrastructure that can obtain HPC. Scalability can be
obtained by adding more data centers or servers, which leads to more efficient data distribution and,
usage of less power and bandwidth.
The Internet Cloud is imagined as a massive cluster of servers. The different resources (space,
data, and speed) of the concerned servers are allocated as per demand dynamically.
Typically, private clouds are easier to manage and public clouds are easier to access. In future the
clouds which utilize the best resources from both the types (hybrid) are expected to grow. Finally,
security becomes a critical issue in CC to grant the success of all the services.
Different Virtualization standards are framed and utilized in all these layers to provision the resources
allocated for a cloud. The services offered to public, private and hybrid through different networking
supports over the Internet and Intranets.
Infrastructure layer is deployed first to support the IaaS layer. It also serves as a foundation for
the PaaS layer services.
Platform layer itself is a foundation for the SaaS services.
The layers demand resource allocation as per demand and are granted.
The infrastructure layer is built with virtualized compute, storage, and network resources.
Proper utilization of these resources provides the flexibility demanded by the users. Where the
Virtualization demands automated provisioning of the resources and minimum management time.
The platform layer is for general purpose and repeated usage of the service resources. Proper
environment is provided for the development, testing, deployment and monitoring the usage of
apps. Indirectly, a virtualized cloud platform acts as a ‘system middleware’ between the
infrastructure and application layers of a cloud.
The application layer is formed with the collection of different modules of all software that are
needed for the SaaS apps. The general service apps include those of information retrieval, doc
processing, and authentication services. This layer also used in large-scale by the CRMs, financial
transactions, and supply chain management.
3.2.3 Virtualization Support and Disaster Recovery:
System Virtualization is a much used feature in Cloud Computing to improve provisioning of
the resources to various services or customers. The provisioning tools, through the VMs (containers of
services), try to find the best physical location wherein they plug the nodes into the data centers.
In Cloud Computing, Virtualization refers the resources and fundamental infrastructures are
virtualized. The user need not care about the computing resources, where and how they are deployed
and used. The user only uses the service offers as current situation demands.
Hardware Virtualization:
System virtualization is a special kind of technique that simulates the hardware
execution, utilization and provisioning methods before they can be applied in the real world of
CC. virtualization software is used for simulations, platform-developing for clouds, and use any
kind of OS that is preferred by a developer/user
Using VMs in CC ensures maximum flexibility for the users. A proper methodology is
required for correct provisioning of the resources, distribute the burdens of space and time
evenly and bring out HP. Traditional sharing of cluster resources doesn’t confirm the above
stated goals and an appropriate usage of all the hardware resources in all angles can be brought
out by virtualization of the same resources.
Virtualization Support in Public Clouds: Public clouds like AWS, MS-Azure, GAE are the
famous products in the market. AWS provides extreme flexibility through VMs for the users to
execute their own applications. GAE provides limited app level virtualization for users since it
supports only Google’s services.MS provides programming level virtualization for users to
build their own apps.
Virtualization for IaaS: VM technology is ubiquitous (present everywhere) enabling the users
to create customised environments atop physical infrastructure. Advantages are: The under-
utilized servers can be removed and the workload can be evenly distributed among the existing
servers, VMs can run their code without conflicting with other APIs, VMs can also be used to
improve security through sandbox methodology (tightly controlled set of resources) and
virtualization cloud platforms can isolate their performance also, increasing the QoS.
VM Cloning for Disaster Recovery: [Cloning => Make an identical copy] There exist two methods to
recover from any disaster. In the first scheme, a physical machine is recovered by another physical
machine. Apparently, this takes more time, energy and is more expensive. The needed hardware is to
be setup, the OS is to be installed and the data recovery process has to be adjusted to other
requirements too. In the other methodology, to recover a VM platform, no installation, configuration,
OS setup etc. are needed – the time utilized becomes 40% less than the previous scheme.
3.2.4 Architectural Design Challenges:
1) Service Availability and Data Lock-in Problem: If all the cloud services are functioning
under a single company, that itself may be the reason of failure of the cloud. To achieve HA,
it is advisable to use different services from multiple companies. Another obstacle for
availability is DDoS attacks and ransomware.
Software storage and usage in a distributed manner is being done systematically, but the APIs are
still vulnerable to attacks. The solution to this challenge is to standardize the APIs that are used
in SaaS; all this enables the usage of a new model in public and private clouds. All this leads to
‘surge computing’ where extra tasks are performed by public clouds, which can’t be done in the
case of private clouds.
2) Data Privacy and Security: Present cloud offerings are public, but this makes them more
exposed and prone to attacks. The steps that are to be taken are encrypted storage, virtual
LANs, firewalls, and packet filters. The attacks that might try to intrude the cloud are
malware, spyware, hijacking, DDoS, man in the middle (while migrating) and others.
3) Unpredictable Performance and Bottlenecks: Multiple VMs can share CPUs and main
memory in CC, but I/O sharing is difficult and cumbersome. As a solution one might try to
improve the I/O architectures and operating systems to virtualize the interrupts and I/O
channels. Finally, in the clouds, the data bottlenecks must be removed or widened to obtain
the efficient HP.
4) Distributed Storage and Widespread Bugs: DB usage is growing in CC and all of it can’t
be stored at a single place. Distributed storage thus comes into picture, buts also brings new
problems like requirement of efficient SANs (Storage Area Network), and data durability.
Simulator is a nice way to understand the problem and propose a satisfactory solution.
5) Cloud Scalability, Interoperability and Standardization
6) Software Licensing: Since distributed computing is widely used, any single customer’s
unsatisfactory usage of the concerned service may collapse the whole cloud
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.
PKI=> Public Key Infrastructure; VPN=> Virtual Private Network
The building blocks of Google’s CC 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.
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 [1].
3.3.5 Microsoft Windows Azure:
The overall architecture of MS cloud platform, built on its own data centers, is shown below. 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.
3.4 INTER-CLOUD RESOURCE MANAGEMENT
Cloud resource management and inter cloud resource exchange schemes are reviewed.
Software Stack for Cloud Computing: A software stack is a group of programs that work in
tandem (in order) to produce a common goal. It may also refer to any set of apps that works in a
specific order toward a common goal. Ex: Like a set in maths or a cluster in DM. The system has to
be designed to meet goals like HT, HA, and fault tolerance. Physical or virtual servers can be used
making the platform more flexible and be able to store and utilize large amount of data.
1. Provisioning of Compute Resources (VMs): The provisioning of resources like CPU, memory, and
bandwidth are distributed among the users as per the service level agreements (SLAs) signed before
the start of the work. The problem here is the ever-changing levels of requests from the user, power
management and conflicts in the SLAs.
(d) Dynamic Resource Deployment: This can be implemented to achieve scalability in performance
through efficient allocation of resources at every place in the grid as the situation demands. To
achieve this, we need an inter-grid gateway (IGG) between different grids that allocates the
resources from a local cluster to deploy apps by requesting the VMs, enacting (endorse) the
leases, and deploying the VMs as per requests.
3. Provisioning of Storage Resources: The data in CC is stored in the clusters of the cloud provider
and can be accessed anywhere in the world. Ex: email. For data storage, distributed file system, tree
structure file system, and others can be used. Ex: GFS, HDFS, MS-Cosmos. This method provides a
convenient coding platform for the developers.
a. Independent Service Management: By using independent service providers, the cloud apps
can run different services at the same time. Some other services are used for providing data
other than the compute or storage services.
b. Running Third Party Apps: IN this case, the cloud platforms have to provide support for
apps constructed by third-party app providers. The concerned APIs are in the form of services
provided by another company. (Ex: Dropbox + Gmail + User).
c. VM Manager: It is a link between the gateway and resources. The physical resources aren’t
shared directly, but in a virtualized method. The VMs themselves become the actual resources.
Ex: OpenNebula (an OS). Users submit VMs on physical machines using hypervisors, which
enables the running of several operating systems on the same host concurrently.
e. Distributed VM Management: A distributed VM manager requests for VMs and gets their
status and obtains a list containing the IP addresses of the VMs with secure shell (SSH) tunnels.
The managers also obtains the template to be used by the VM, schedules the task for the VM,
sets up the tunnel, and executes the tasks for each of the VM.
Lacking of trust between service providers and clients has been a major problem in the field
and much more since the advent of ecommerce. Cloud platforms are a concern for some users for
lack of privacy protection, security assurance, and so on. All these can be solved with a technical
approach.
3.5.1 Cloud Security Defence Strategies:
A healthy cloud ecosystem is desired to free users from abuses, violence, cheating, hacking,
viruses, rumors, pornography, spam, and privacy and copyright violations. The security demands of
three cloud service models, IaaS, PaaS, and SaaS, are discussed later.
Basic Cloud Security: The basic cloud security enforcements are: security measures in data centers
(like biometric readers, CCTV, man-traps etc.), fault-tolerant firewalls, IDS Intrusion Detection
System), data encryption, strict password policies, and so on. The Figure below shows the security
measures at various levels:
Cloud Defence Methods: Virtualization enhances cloud security, but VMs add an additional layer of
software that might lead to a single point of failure. So the VMs should be isolated in their
deployment and work – the failure of one VM will not affect another.
Defence against DDoS Flooding attacks: A DDoS defence system must be designed to cover
multiple network domains in a cloud platform. The DDoS causes an abnormal surge in the network
traffic by a hidden attacker which leads of the crash of the service/website or disk exhaustion or
connection saturation.
Data and Software Protection Techniques:
(a) Data Integrity and Privacy Protection
(b) Data Colouring and Cloud Watermarking
(c) Data Lock-in Problems and Solutions: Once the data is moved into the cloud, users cannot easily
extract their data and programs from the cloud servers to run on another platform. This is known
as data lock-in. The solution possible here is to build platform-independent APIs where
migration from one platform to another is easier.
SOA is concerned about how to design a software system that makes use of services or apps
through their interfaces. These apps are distributed over the networks. The World Wide Web
Consortium (W3C) defines SOA as a form of distributed architecture characterized by:
Logical View
Message Orientation
Description Orientation
3.6.1 REST and Systems of Systems ( REpresentational State Transfer)
REST is a software architecture style for distributed systems, particularly distributed hypermedia
systems, such as the World Wide Web. It has recently gained popularity among enterprises such as
Google, Amazon, Yahoo!, and especially social networks such as Facebook and Twitter because of its
simplicity, and its ease of being published and consumed by clients.
The REST architectural style is based on four principles:
1. Resource Identification through URIs
2. Uniform, Constrained Interface
3. Self-Descriptive Message
4. Stateless Interactions
b. 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.
c. Resource Management Layer (Data Layer): It deals with the data sources of an information
system.
OGSA architecture falls into seven broad areas, as shown in below figure which includes
Infrastructure Services, Execution Management Services, Data Management Services, Resource
Management Services, Security Services, Security Services, Information Services and Self-
management Services (automation)
3.7 MESSAGE-ORIENTED MIDDLEWARE
It introduces message-oriented middleware for supporting distributed computing. The study
included enterprise bus, publish-subscribe model, queuing, and messaging systems.
Three examples are given here to illustrate the use of the Narada Brokering middleware
service with distributed computing. The first example is related to environmental protection. The
second is for Internet conferencing and the third is for earthquake science applications.