0% found this document useful (0 votes)
3 views71 pages

Cloud Computing Security (Module - 1) Notes

The document discusses the evolution and impact of cloud computing on the service-oriented economy, highlighting the shift from traditional computing to cloud models like IaaS, PaaS, and SaaS. It details the characteristics of public, private, and hybrid clouds, emphasizing their benefits in terms of cost, scalability, and resource management. Additionally, it covers data center design, focusing on warehouse-scale data centers and their operational efficiencies compared to smaller facilities.

Uploaded by

sushmakande27
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views71 pages

Cloud Computing Security (Module - 1) Notes

The document discusses the evolution and impact of cloud computing on the service-oriented economy, highlighting the shift from traditional computing to cloud models like IaaS, PaaS, and SaaS. It details the characteristics of public, private, and hybrid clouds, emphasizing their benefits in terms of cost, scalability, and resource management. Additionally, it covers data center design, focusing on warehouse-scale data centers and their operational efficiencies compared to smaller facilities.

Uploaded by

sushmakande27
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Computing Clouds, Service-Oriented Architecture,

and Programming
4.1 COMPUTING AND SERVICE MODELS
• The global economy has shifted to being service-oriented, with cloud computing benefiting this shift.
• By 2010, 80% of the U.S. economy was service-based, while manufacturing and agriculture made up only 15%
and 5%.
• Cloud computing allows developers to rent computing resources instead of buying costly equipment.
• In 2009, the cloud service market was worth $17.4 billion; it was projected to grow to $44.2 billion by 2013.
• Cloud platforms are built on large, automated data centers offering virtualized resources.
• Cloud users can access and deploy applications globally at low cost.
• Cloud computing aims to improve data centers through virtualization and automated resource management.

4.1.1 Public, Private, and Hybrid Clouds


• Cloud computing evolved from cluster, grid, utility computing, and SaaS. It uses dynamic resources to deliver services
through large data centers. Users can access shared resources from anywhere using connected devices.
• Instead of moving data to users, cloud computing sends programs to where the data is stored, saving bandwidth.
Virtualization improves resource use, flexibility, and lowers costs.
• Cloud platforms offer hardware, software, and data as on-demand services. This shifts desktop computing to
service-based platforms using server clusters and databases. It supports many applications at once with low cost and
high efficiency.
[Link] Centralized versus Distributed Computing
• Some see cloud computing as centralized at data centers, while others view it as distributed parallel computing
over data-center resources.
• Cloud applications run on servers in data centers, mainly as virtual machines (VMs) in virtual clusters.
• Cloud platforms are distributed systems created through virtualization.
• As Figure 4.1 shows, both public and private clouds are built over the Internet.
• Many clouds, whether commercial or enterprise, are distributed and interconnected online for scalable, efficient
computing.
• Companies like Amazon, Google, and Microsoft build distributed cloud platforms for fault tolerance, low latency,
and legal reasons.
• Private intranet clouds often connect to public clouds to access more resources.
• Users from different regions may hesitate to use international clouds until solid service-level agreements (SLAs)
are established.
[Link] Public Clouds
• A public cloud is built on the Internet and accessed by any user who pays for the service.
• Public clouds are owned by service providers and accessed through subscriptions.
• Examples include Google App Engine, Amazon Web Services, Microsoft Azure, IBM Blue Cloud, and [Link]
’ s [Link].
• These providers offer remote access to create and manage virtual machines (VMs) within their infrastructure.
• Public clouds deliver specific business processes and offer services on a flexible pay-per-use basis.
[Link] Private Clouds
• A private cloud is built within an intranet owned by a single organization.
• It is owned and managed by the client, with access limited to the client and their partners.
• Private clouds are not meant to sell capacity over the Internet.
• They provide local users with a flexible and agile infrastructure for running workloads.
• A private cloud offers more efficient and convenient cloud services with greater customization and organizational
control.
[Link] Hybrid Clouds
• A hybrid cloud combines both public and private clouds.
• Private clouds can support hybrid models by adding computing capacity from public clouds.
• Example: IBM's Research Compute Cloud (RC2) links resources from multiple IBM Research Centers worldwide.
• Hybrid clouds provide access to clients, partners, and third parties.
• Public clouds focus on standardization, capital investment preservation, and application flexibility.
• Private clouds prioritize customization, efficiency, resiliency, security, and privacy.
• Hybrid clouds balance resource sharing between public and private clouds.
[Link] Data-Center Networking Structure
• The core of a cloud is the server or VM cluster, with compute nodes handling user jobs.
• Control nodes manage and monitor cloud activities.
• Gateway nodes provide access points and can also control security.
• Clouds handle fluctuating workloads, requiring dynamic resource allocation, unlike static
resource demand in traditional grids.
• Private clouds can manage fluctuating demand if properly designed and managed.
• Data centers typically contain large numbers of servers (thousands to millions).
• Example: Microsoft’ s data center in Chicago has 100,000 eight-core servers in 50 containers.
• Data centers and supercomputers differ in scaling: supercomputers use data farms, while
data centers use server nodes with disks, memory, and databases.
• Data centers use IP-based commodity networks, like 10 Gbps Ethernet, optimized for Internet
access.
• Supercomputers use high-bandwidth custom networks, such as fat trees or 3D torus networks.
• Example: NASA’ s private cloud allows researchers to run climate models on remote systems,
saving capital expenses.
• CERN built a private cloud to distribute data and resources to scientists worldwide.
• Cloud models require varying levels of performance, data protection, and security enforcement,
leading to different SLAs.
• Cloud computing builds on grid computing, focusing on resource sharing with better
utilization.
• Grids deliver storage and computing resources, while cloud computing aims for economies of
scale with abstracted services.
[Link] Cloud Development Trends
• Most clouds built in 2010 were large public clouds, but private clouds are expected to grow faster in the future due
to easier security and trust within organizations.
• As private clouds mature and become more secure, they may transition into public clouds, leading to a blur
between public and private cloud boundaries.
• The future of cloud computing is likely to be hybrid, combining elements of both public and private clouds.
• Applications like e-mail can run on service-access nodes and access services from internal cloud computing
resources, such as storage.
• Service nodes in cloud clusters support the proper functioning of services, like distributed locking services for
specific applications.
• Independent service nodes may provide services for other nodes, such as geographic information for a news
service.
• Cloud computing focuses on cost-effective performance, often using public cloud models unless stated otherwise.
• Cloud computing reduces large data movement, improving network utilization and reducing traffic.
• Cloud computing helps alleviate the petascale I/O problem.
• Cloud performance and its Quality of Service (QoS) still need validation in real-world applications.
4.1.2 Cloud Ecosystem and Enabling Technologies
• Traditional computing involves purchasing hardware, installing software, testing configurations, and managing
resources. This process must be repeated every 18 months due to hardware obsolescence.
• Cloud computing follows a pay-as-you-go model, reducing costs significantly since users only rent hardware and
software resources instead of purchasing them.
• The cloud computing model avoids capital investment, with costs incurred only during execution. This results in
80% to 95% savings compared to traditional computing.
• This cost reduction is especially beneficial for small businesses, which require limited computing power and
cannot afford the frequent purchase of expensive hardware.
• IBM estimated the worldwide cloud service market could reach $126 billion by 2012, covering components,
infrastructure services, and business services.
• Internet clouds operate as service factories based on multiple data centers, which support cloud computing's
scalable model.
• The cloud cost model, ecosystems, and enabling technologies help clarify the motivations behind cloud
computing and address barriers to its adoption.
[Link] Cloud Design Objectives
• Shifting computing to data centers: Computing, storage, and software delivery move from local desktops and
servers to centralized data centers accessed via the internet.
• Service provisioning and cloud economics: Cloud providers deliver services through SLAs, focusing on efficiency
in computing, storage, and energy usage. Pricing follows a pay-as-you-go model.
• Scalability in performance: Cloud platforms, along with their software and infrastructure services, must scale
efficiently to accommodate increasing user demand.
• Data privacy protection: Ensuring that data centers can be trusted with private data is crucial for cloud
computing to be successful and widely adopted.
• High quality of cloud services: A standardized Quality of Service (QoS) is needed to ensure that cloud services are
reliable and interoperable across different providers.
• New standards and interfaces: To avoid data lock-in, universally accepted APIs and access protocols are
necessary to ensure portability and flexibility for virtualized applications.
[Link] Cost Model
• In traditional IT computing, users face both capital expenses for
purchasing hardware and operational costs for maintaining
systems, which increases as the number of users grows.
• In cloud computing, the pay-per-use model eliminates upfront
hardware costs, and users only incur variable operational costs,
which scales based on usage.
• Cloud computing significantly reduces computing costs for
small users and large enterprises by removing the need for
expensive hardware investments.
• The pay-as-you-go model is especially attractive to small
businesses and users with limited capital expenses, as they only
pay for operational costs.
• Cloud computing provides a cost-effective solution for IT users
who experience higher capital expenses than operational costs,
making it an appealing option for offloading overflow work to
cloud service providers.
[Link] Cloud Ecosystems
• The emergence of Internet clouds has led to the creation of an
ecosystem consisting of providers, users, and technologies, with a
growing interest in open-source cloud computing tools for building
private and hybrid clouds.
• Public clouds are involved in both private and hybrid cloud models, with
remote access provided via web service interfaces like Amazon EC2.
• An ecosystem for private clouds, as suggested by Sotomayor et al.,
includes four levels: user demand for flexible platforms, cloud
management providing virtualized resources, virtual infrastructure (VI)
management for VM allocation, and VM management at the individual
host machine level.
• The integration of cloud management and VI management is complex
due to the lack of open and standard interfaces between the layers.
• Many startups are adopting cloud resources, minimizing capital
investment in IT infrastructure.
• Tools like oVirt, vSphere/4, and VM Orchestrator enable dynamic VM
management, load balancing, server consolidation, and infrastructure
resizing, contributing to private and hybrid cloud development.
• Open-source tools such as Eucalyptus and Globus Nimbus, along with
cloud management interfaces like Amazon EC2WS and Nimbus WSRF,
facilitate cloud infrastructure virtualization and management.
• VI management tools like OpenNebula and VMware vSphere support the
management of virtual machines, including Xen, KVM, and VMware
technologies.
[Link] Surge of Private Clouds
• Private clouds typically use existing IT infrastructure and personnel within an enterprise or government
organization, handling workloads dynamically like public clouds.
• Private clouds are designed to manage workloads within a secure intranet, balancing resources to optimize IT
infrastructure, whereas public clouds focus on offloading surge workloads.
• Private clouds offer advantages in pre-production testing, data privacy, and security, which are more effectively
enforced compared to public clouds.
• Public clouds help avoid capital expenses for IT investments by users, removing the need for hardware, software,
and personnel investments.
• Companies like Microsoft, Oracle, and SAP begin with the virtualization of computing machines to lower operating
costs.
• These companies integrate virtualized data centers with company IT resources, providing IT as a service to
improve agility and avoid frequent server replacements, enhancing overall IT efficiency.
4.1.3 Infrastructure-as-a-Service (IaaS)
• Cloud computing offers infrastructure, platform, and software as services on a pay-as-you-go basis. These are categorized into
IaaS, PaaS, and SaaS, forming the core of cloud solutions.
• All models are accessed online, relying on provider infrastructure, governed by SLAs focusing on availability, performance, and
security.
• SaaS is used by clients via interfaces; PaaS handles billing, queuing, and monitoring; IaaS provides storage, computing, and
networking resources.
• IaaS allows users to deploy applications over virtualized resources without managing the core infrastructure.
• Users control the OS, storage, and apps, while providers manage the backend.
• Examples include Amazon EC2, GoGrid, FlexiScale, and Aneka, offering services like storage and compute instances.
• Table 4.1 summarizes the IaaS offerings by five public cloud providers.
4.1.4 Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS)
[Link] Platform as a Service (PaaS)
• To be able to develop, deploy, and manage the execution of applications using provisioned resources demands a
cloud platform with the proper software environment. Such a platform includes an operating system and runtime
library support.
• This has triggered the creation of the PaaS model to enable users to develop and deploy their user applications.
Table 4.2 highlights cloud platform services offered by five PaaS services.
• A platform cloud includes both hardware and software infrastructure. Users can build apps on this virtual platform using
supported tools and languages like Java, Python, or .NET.
• The user does not manage the underlying cloud infrastructure. The cloud provider supports user application
development and testing on a well-defined service platform.
• This PaaS model enables a collaborative software development platform for users across locations. This model
also encourages third parties to provide software management, integration, and service monitoring solutions.
Example 4.2 Google App Engine for PaaS Applications
Google App Engine runs web apps on Google servers with auto-scaling and load balancing. Developers use a local setup
for coding and testing, then deploy using an SDK. It also supports task scheduling and offers third-party tools for
management.
[Link] Software as a Service (SaaS)
• SaaS is software that runs in a web browser, used by thousands of customers over the cloud, eliminating the need for
installation on personal devices.
• PaaS tools help develop and deploy applications, which are then hosted on IaaS infrastructure, forming a complete cloud
service model for SaaS.
• SaaS provides software as a service, so customers avoid upfront costs for servers and software licenses.
• Providers benefit from reduced costs compared to traditional hosting methods by offering software through SaaS.
• Customer data is stored in the cloud, either privately by the vendor or publicly, supporting both PaaS and IaaS services.
• Examples of SaaS include Gmail, Google Docs, Microsoft SharePoint, and Salesforce CRM, all widely used in business
operations. These services are successful in promoting their businesses and are used by many small businesses for daily tasks.
• Google and Microsoft offer integrated IaaS, PaaS, and SaaS, while Amazon and GoGrid focus on IaaS, with third-party PaaS
providers handling application deployment.

[Link] Mashup of Cloud Services


• Public clouds are becoming more popular, but many businesses are still opting for private clouds to avoid the risk of exposing
sensitive data. Private clouds require heavy customization to meet specific needs.
• An enterprise cloud serves multiple users within an organization, where each user can build strategic applications and needs
data, logic, and database partitioning for their specific tasks.
• The use of private clouds is expected to increase as organizations look for greater control over their cloud resources and data.
• According to a 2010 Google survey, interest in grid computing is rapidly declining, as cloud mashups become more prominent.
• Cloud mashups allow different cloud services to be used together, often in different stages of a process. For example, an
industrial supply chain might need multiple cloud resources or services at various points.
• Public repositories provide numerous APIs for services like Google Maps, Twitter, YouTube, Amazon eCommerce, and
Salesforce, which are used to create mashups for web commerce services.
4.2 DATA-CENTER DESIGN AND INTERCONNECTION NETWORKS
A data center is built with a large number of servers through a huge interconnection network. we study the
design of large-scale data centers and small modular data centers that can be housed in a 40-ft truck container.

4.2.1 Warehouse-Scale Data-Center Design

• A warehouse-scale data center is extremely large, sometimes comparable in size to a shopping mall, and can
accommodate 400,000 to 1 million servers.
• These data centers operate on the principle of economies of scale, meaning that as the data center's size
increases, the operational cost per unit decreases.
• Small data centers, with around 1,000 servers, have higher operational costs compared to larger ones, as the
costs per unit are greater.
• For example, a 400-server data center has higher costs for network, storage, and administration. Network costs
are estimated at $13 per Mbps, storage at $0.4 per GB, and other administrative costs are also notable.
• As the size of the data center grows, these operational costs drop significantly, making larger centers more
cost-effective.
• Smaller data centers face approximately seven times higher network costs and 5.7 times higher storage costs
compared to large-scale centers.
• Microsoft operates over 100 data centers worldwide to support its cloud services.
[Link] Data-Center Construction Requirements
• Most data centers are constructed using commercially available components, including off-the-shelf servers
equipped with multicore CPUs, internal cache hierarchy, shared DRAM, and disk drives.
• The servers in the data center are organized into racks, with resources such as DRAM and disk drives
connected through first-level rack switches. All resources are accessible via a cluster-level switch for the entire
data center.
• For example, in a data center with 2,000 servers, each equipped with 8 GB of DRAM and four 1 TB disk drives,
40 servers are connected through a 1 Gbps link to a rack-level switch.
• The rack-level switch has additional ports for connecting to a cluster-level switch, enabling communication
across the entire data center.
• The available bandwidth from local disks is much higher (200 MB/s) compared to off-rack disks (25 MB/s),
which are connected via shared rack uplinks.
• The storage capacity in such a data center can be 10 million times larger than the available DRAM, creating
discrepancies in latency, bandwidth, and capacity when large applications are running.
• In large-scale data centers, the components are relatively inexpensive due to the sheer scale of operations.
However, these centers experience a higher frequency of concurrent failures, whether hardware or
software-related.
• Common hardware failures include CPU, disk I/O, and network failures. A data center may even fail entirely in
the event of a power crash.
• To ensure reliability, data centers use redundant hardware and the software must keep multiple copies of data
in different locations, ensuring data accessibility even in the face of hardware or software failures.
[Link] Cooling System of a Data-Center Room

• The layout of a data center room features raised floors, which help conceal
cables, power lines, and cooling supplies while providing space for effective
air circulation.
• The primary function of the raised floor is to distribute cool air to the server
racks, while power cables are also routed through the under-floor area.
• The cooling system is powered by the CRAC (Computer Room Air
Conditioning) unit, which pressurizes the raised floor plenum by blowing
cold air into it.
• Perforated tiles are installed in front of server racks, allowing the cold air to
escape and cool down the servers.
• The racks are organized in alternating cold and hot aisles to prevent the
mixing of hot and cold air, helping maintain optimal cooling conditions.
• Hot air generated by the servers circulates back to the CRAC units' intakes,
where it is cooled before being recirculated into the raised floor plenum.
• The incoming coolant typically has a temperature range of 12– 14° C, while
the warm coolant returns to a chiller for further cooling.
• Newer data centers incorporate cooling towers to pre-cool the condenser
water loop fluid, enhancing efficiency.
• Water-based free cooling utilizes cooling towers to dissipate heat, with a
separate cooling loop where water absorbs the heat in a heat exchanger.
4.2.2 Data-Center Interconnection Networks
A critical core design of a data center is the interconnection network among all servers in the data center cluster.
This network design must meet five special requirements: low latency, high bandwidth, low cost, message-passing
interface (MPI) communication support, and fault tolerance. The design of an inter-server network must satisfy
both point-to-point and collective communication patterns among all server nodes.

[Link] Application Traffic Support

• The network topology in data centers must support all types of MPI (Message Passing Interface)
communication, including both point-to-point and collective communications, to ensure efficient parallel
processing.
• A high bisection bandwidth is essential to handle these communication needs, enabling smooth data flow
across different parts of the network.
• For distributed file access, one-to-many communication patterns are used where a few servers act as
metadata masters and communicate with multiple slave server nodes.
• To effectively support the MapReduce model, the network must be capable of executing both map and
reduce functions quickly and efficiently.
• Overall, the network should be robust and flexible enough to handle a wide range of traffic patterns required
by different user applications.
[Link] Network Expandability
• The interconnection network in data centers must be expandable to accommodate growth as more servers are
added, ensuring scalability without degrading performance.
• To handle future expansions, the network topology should be flexible and support reconfiguration to maintain
efficient communication and load balancing.
• Avoiding bottlenecks is essential, as they can hinder application performance; therefore, the network must
distribute data movement evenly across all links.
• Fat-tree and crossbar network topologies using low-cost Ethernet switches are possible solutions, but managing
them becomes complex as the number of servers grows.
• A major challenge in expandability is modular network growth, especially in building and connecting data-center
containers, which are self-contained units with hundreds of servers.
• Rather than stacking individual racks, modern data centers use pre-packed server containers that can be quickly
set up with power, networking, and cooling, reducing cost and effort.
• One efficient method is to first establish a high-capacity connection backbone, then extend connections to
reach all individual server nodes and containers.
[Link] Fault Tolerance and Graceful Degradation
• The interconnection network in a data center must be fault-tolerant, meaning it should handle failures of links or
switches without disrupting operations.
• To ensure this, multiple paths should exist between any two server nodes, allowing data to reroute in case of a
failure.
• Fault tolerance in servers is achieved by replicating data and computations, and similar redundancy should be
applied to network hardware and software.
• On the software side, systems should detect broken links and avoid them, using drivers that handle rerouting
transparently so that users and operations are unaffected.
• If parts of the network fail, it should degrade gracefully, continuing to function even with limited capability
rather than failing completely.
• Hot-swappable components help in maintaining uptime, and the system should avoid any critical single points
of failure that can bring the whole network down.
• Network design often follows a two-layer structure: a lower layer close to servers and an upper layer forming
backbone connections between groups of servers or clusters.
• This hierarchical structure supports modular container-based data center construction, making scaling and
maintenance easier.
[Link] Switch-centric Data-Center Design
• Data-center-scale networks can be built using either a switch-centric or a server-centric design approach.
• In switch-centric networks, switches connect all servers without changing server configurations, keeping the
server side simple.
• Server-centric designs, however, involve modifying the server's operating system and using special drivers to
manage traffic routing, making the server part of the network.
4.2.3 Modular Data Center in Shipping Containers

• A modern data center can be built using truck-towed containers that serve as mobile server clusters.
• The SGI ICE Cube is an example of such a modular data center, where hundreds of blade servers are housed in
racks inside a shipping container.
• Fans circulate hot air through a heat exchanger that cools it down before it passes to the next server rack in a
continuous loop.
• Each SGI ICE Cube container can support up to 46,080 processing cores or provide 30 petabytes of storage.
• Large modular data centers resemble shipping yards filled with these container trucks, offering flexibility and
mobility.
• This design was developed to reduce power consumption, increase server density, and allow relocation to places
with cheaper electricity, better cooling resources, and lower operational costs.
• Advanced cooling systems in containers can cut cooling costs by up to 80% compared to traditional
warehouse-style data centers.
• These systems use chilled air and cold water through heat exchange pipes for effective and repair-friendly
cooling.
• Sites are chosen for data centers based on lease cost, electricity pricing, and cooling efficiency.
• Both warehouse-style and modular container-based data centers are important and can be combined to build
large-scale centers.
• Centralizing data centers in a single building helps simplify tasks like ensuring data integrity, server monitoring,
and security management.
[Link] Container Data-Center Construction

• A container-based data center is built inside a truck-towable module that includes networking, computing, storage,
and cooling systems.
• Cooling efficiency must be improved using advanced airflow and water flow management to meet changing
seasonal demands.
• Construction begins in stages— starting from a single server, then scaling to a rack system, and eventually to a full
container system.
• Building a rack with 40 servers can take about half a day, but expanding it into a container setup for 1,000 servers
involves floor planning, power, networking, cooling, and full system testing.
• The container must be weatherproof and designed for easy transportation.
• If all resources like components, power, and water are available, building and testing a modular data center can be
completed in a few days.
• Modular data centers are suitable for various cloud applications— for example, deploying them at health clinics.
• However, managing data exchange and maintaining consistency with a central database becomes a complex
issue in such distributed systems.
• Security concerns also increase, especially for co-located cloud services involving multiple data centers.
4.2.4 Interconnection of Modular Data Centers
[Link] Inter-Module Connection Networks

• Modular container-based data centers can be interconnected to form large-scale, scalable data centers.
• Within each container, the BCube network is commonly used, especially in server-centric designs.
• To connect multiple containers, an additional networking layer is needed— MDCube (Modularized Datacenter
Cube) is one such design.
• MDCube uses the high-speed switches of the BCube inside each container to interconnect them, forming a
virtual hypercube network among containers.
• For example, a 2D MDCube connects 9 BCube1 containers to demonstrate scalable inter-container
communication.
• This structure allows efficient support for cloud communication patterns, enhancing performance and scalability.
• The architecture forms a cube-like network inside containers (BCube) and across containers (MDCube), enabling
a multilevel, highly interconnected data center design.
4.2.5 Data-Center Management Issues
[Link] Marketplaces in Cloud Computing Services

• Key data-center management goals include: ensuring long-term user satisfaction, controlling information
flow, supporting multiuser operations, and enabling scalable infrastructure for growing demands.
• Reliability is vital, especially in virtualized environments— features like failover, fault tolerance, and live VM
migration support disaster recovery.
• Cost efficiency must be prioritized for both providers and users by reducing operational expenses.
• Security measures are essential to defend against attacks and preserve data integrity.
• Green IT practices focus on minimizing power use and maximizing energy efficiency in modern data centers.
• In cloud service marketplaces, container-based data centers offer benefits like factory-level racking and
stacking, high power density, and flexible deployment on rooftops or parking lots.
• Though data centers are often still custom-designed, modular containers provide efficient, upgrade-friendly
solutions.
4.3 ARCHITECTURAL DESIGN OF COMPUTE AND STORAGE CLOUDS
basic cloud architecture to process massive amounts of data with a high degree of parallelism. Then we study
virtualization support, resource provisioning, infrastructure management, and performance modeling.
4.3.1 A Generic Cloud Architecture Design
An Internet cloud is envisioned as a public cluster of servers provisioned on demand to perform collective web
services or distributed applications using data-center resources. We will discuss cloud design objectives and then a
basic cloud architecture design.
[Link] Cloud Platform Design Goals
• Cloud platforms aim to scale easily, allowing more servers or bandwidth to be added when demand
increases, especially for applications that need heavy computing or storage.
• Virtualization is key— both physical and virtual machines must be supported to use resources
efficiently and flexibly.
• Efficiency is achieved by combining hardware and software to simplify operations and improve
performance.
• Reliability is ensured by storing data in multiple places— for example, copies of user emails can be
kept in different data centers so the data is safe even if one center fails.
• Security is a constant challenge because resources and access are shared; strong protections are
needed to keep data safe in this shared environment.
[Link] Enabling Technologies for Clouds

• Cloud computing is driven by the rise of broadband and wireless networks, lower storage costs, and better
Internet-based software.
• Users benefit by scaling resources up or down as needed, cutting costs, testing new services, and removing extra
capacity when not required.
• Service providers gain efficiency through technologies like virtualization, multiplexing, and dynamic resource
provisioning to improve system usage.
• Key enablers include advancements in hardware, such as multicore processors, high-speed memory, and large disk
arrays, which allow faster and larger data centers.
• Virtualization supports quick deployment, easier disaster recovery, and better resource management in the cloud.
• Service-oriented architecture (SOA), SaaS delivery models, Web 2.0 tools, and improved Internet performance have
all played major roles in enabling cloud services.
• Clouds now handle vast data and many users, relying on large-scale distributed storage and improved tools for
licensing and automated billing.
[Link] A Generic Cloud Architecture
• The cloud is envisioned as a massive group of servers that are dynamically provisioned to deliver web services or distributed
applications using data center resources.
• These servers can be either physical machines or virtual machines (VMs), and users request services through interfaces handled
by a provisioning tool.
• The architecture includes distributed storage, databases, and supporting
tools, usually managed by third-party providers.
• Software in the cloud becomes a service, and there must be a high level of
trust as data is accessed from large remote data centers.
• A distributed file system is essential to manage and process large-scale
data stored in cloud storage.
• Additional resources like SANs, databases, firewalls, and security systems
are integrated into the cloud platform.
• Developers use APIs provided by web service platforms to interact with
cloud infrastructure and build applications.
• Monitoring and metering systems are necessary to track resource usage and
performance in real-time.
• The software must manage resources automatically, detecting node
changes and adjusting operations accordingly.
• Leading cloud providers like Google and Microsoft operate global data
centers, often located near hydroelectric sources to save energy and cooling
costs.
• Private clouds are easier to manage, while public clouds offer broader
access. A growing trend is hybrid clouds, which combine both types for
flexibility.
• Security is crucial for all cloud types, especially as hybrid models cross
4.3.2 Layered Cloud Architectural Development
• Cloud architecture is developed in three layers: infrastructure,
platform, and application. Each layer builds on the previous one using
virtualization and standardization of hardware and software
resources.
• These layers support services across public, private, and hybrid
clouds, and are accessed via Internet and intranet networks.
• The infrastructure layer (IaaS) is deployed first. It includes virtualized
computing, storage, and networking resources, enabling flexible and
efficient management.
• On top of this, the platform layer (PaaS) is built. It provides an
environment for users to develop, test, and monitor applications,
ensuring scalability, reliability, and security. This layer acts as
middleware between infrastructure and applications.
• The application layer (SaaS) comprises all the necessary software for
various services, like office tools, CRM, finance, and supply chain
management.
• Many cloud applications may span across multiple layers, utilizing
infrastructure, platform, and application resources as needed.
• From a provider’ s point of view, SaaS requires the most
management, PaaS is moderate, and IaaS requires the least.
• For instance, Amazon EC2 offers virtual CPUs and management at
the IaaS level, while [Link] delivers full support from
infrastructure to applications, including tools for custom
development.
[Link] Market-Oriented Cloud Architecture
• As users depend more on cloud services, they expect a certain Quality of
Service (QoS). To meet these expectations, cloud providers use Service Level
Agreements (SLAs) to define and guarantee QoS parameters for each
consumer.
• Traditional system-centric resource management is not sufficient. Instead,
market-oriented resource management is needed to balance supply and
demand, ensuring resources are allocated efficiently and economically.
• Cloud architecture includes key entities: users/brokers submit service
requests, and the SLA resource allocator acts as the gateway between them
and the cloud provider.
• The Service Request Examiner checks each request for QoS requirements
and decides whether to accept or reject it based on current system load and
resource availability..
• To avoid resource overloading, the system uses data from the VM Monitor (resource availability) and the Service Request Monitor
(workload status) before allocating resources.
• The Pricing mechanism determines charges based on factors like time of day, demand, or resource availability, encouraging
efficient use and fair prioritization.
• The Accounting mechanism tracks actual resource usage for billing and stores historical usage data to improve future resource
management decisions
• The VM Monitor checks which virtual machines (VMs) are available and their allocated resources, while the Dispatcher starts the
execution of accepted requests on assigned VMs.
• The Service Request Monitor tracks the progress of active tasks. Multiple VMs can be started or stopped on the same physical
machine to maximize flexibility and tailor resources to specific needs.
• VMs are isolated from each other, so they can run different applications and operating systems on the same machine
simultaneously, offering efficient and versatile cloud resource use.
[Link] Quality of Service Factors
• A cloud data center consists of multiple servers that deliver resources to meet service demands, especially for business-critical
operations.
• Key Quality of Service (QoS) factors in service requests include time, cost, reliability, and security/trust. These requirements often
change over time due to evolving business needs.
• Customers are central in cloud computing since they pay for services, so customer-focused service delivery is essential.
• Current cloud platforms often lack strong support for dynamic SLA negotiation and automatic resource allocation for competing
requests.
• Negotiation mechanisms, like the alternate offers protocol, are needed to establish flexible SLAs between providers and
consumers.
• Commercial clouds should support customer-driven service management, using customer profiles and specific service needs to
tailor delivery.
• They must also employ computational risk management to assess and handle risks in executing services according to SLA
commitments.
• Effective market-based resource management combines customer-driven service and risk management to achieve reliable,
SLA-oriented resource allocation.
• Autonomic resource management systems help self-manage changes in demand and SLA obligations using virtual machines
(VMs) to dynamically assign resources as per service needs.
4.3.3 Virtualization Support and Disaster Recovery:

• Cloud infrastructure heavily relies on virtualization to optimize


resources. Servers are virtualized and deployed on a shared
cluster, consolidating web services and enabling efficient
resource use.
• In cloud computing, VMs (Virtual Machines) serve as
containers for services. The provisioning tools first identify
the available physical machines and deploy VMs onto those
nodes before scheduling the services to run.
• Virtualization extends to resources and infrastructure. Users
don't need to know or have access to the underlying physical
resources used to deliver services.
• Application developers are abstracted from concerns like
scalability and fault tolerance, as these are managed by the
cloud infrastructure. Their focus is on developing the service
logic, not the infrastructure details.
• Figure 4.17 illustrates the infrastructure required to virtualize
servers in a data center, facilitating the implementation of
specific cloud applications.
[Link] Hardware Virtualization:
• Virtualization software is used to simulate hardware execution in cloud
computing systems, allowing even unmodified operating systems to run on
virtualized environments. This is essential for legacy software and
specialized applications.
• Cloud providers use virtualization to support a variety of operating systems
and programming environments, enabling developers to work in the same
environment for both development and deployment, reducing runtime issues.
• Virtualization technology allows users to run their applications without
worrying about system environment constraints, providing an ideal platform
for hosting third-party programs in cloud environments.
• VMs (Virtual Machines) in cloud computing ensure flexibility for users by
isolating their environments from one another. Each user has full control
over their VM, providing customization options without affecting other users.
• Resource sharing in cloud systems is efficiently handled through
virtualization, where multiple VMs can run on a single physical server. VMs
can run different operating systems, ensuring separation and security
between users.
• The virtualized resources are managed as a pool of resources by specialized
servers, using virtualizing integration managers to handle aspects like load
balancing, security, and provisioning.
• Figure 4.18 shows two VM platforms that implement virtual solutions to
user tasks, with all cloud services managed in dedicated boxes at the top of
the architecture.
[Link] Virtualization Support in Public Clouds:

• Armbrust et al. evaluated three major public clouds— Amazon Web Services (AWS), Microsoft Azure, and Google App Engine
(GAE)— in terms of their virtualization support.
• AWS offers the most flexibility by allowing users to run their own applications on virtual machines (VMs).
• GAE supports only application-level virtualization, restricting users to build apps using Google-defined services.
• Microsoft Azure provides programming-level virtualization through .NET virtualization, allowing users to build and deploy .
NET-based applications.
• Virtualization tools vary across platforms: VMware supports workstations, servers, and virtual infrastructure; Microsoft tools
are used on PCs and some servers; XenEnterprise is for Xen-based servers only.
• The entire IT industry is moving toward cloud adoption because virtualization supports high availability (HA), disaster
recovery, dynamic load balancing, and efficient provisioning.
• Both cloud computing and utility computing benefit from virtualization by enabling scalable, autonomous, and flexible
computing environments.

[Link] Storage Virtualization for Green Data Centers:


• IT power consumption in the U.S. has doubled, now accounting for 3% of the country's total energy use— with data centers
being major contributors.
• Over half of Fortune 500 companies are introducing corporate energy policies to address this energy crisis.
• IDC and Gartner surveys confirm that virtualization significantly reduces power consumption, thus lowering operational
costs.
• The IT industry is becoming increasingly energy-conscious, especially with the limited development of alternative energy
sources.
• Virtualization and server consolidation have already helped in reducing energy usage effectively.
• Emphasis is now on green data centers, and storage virtualization is seen as a way to enhance energy efficiency and support
the goals of green computing.
[Link] Virtualization for IaaS
• VM technology enables customized user environments on shared physical infrastructure.
• Benefits include:
• Server consolidation to reduce underutilized resources.
• Running legacy code without API conflicts.
• Improved security using sandboxed VMs.
• Performance isolation for better QoS and SLA support.

[Link] VMCloning for Disaster Recovery


• Traditional physical recovery is slow and costly due to hardware and OS setup.
• VM recovery is faster (only ~40% of traditional recovery time) by avoiding OS reinstallation.
• VM cloning creates remote backup VMs in suspended mode for each active VM.
• On failure, the remote clone is activated using snapshots for live migration.
• Only changes (delta data) are transferred to speed recovery.
• RPO and RTO depend on snapshot frequency.
• Security during live migration is critical.
4.3.4 Architectural Design Challenges
Cloud architecture faces six main design challenges as identified by Armbrust et al. Solutions for these are still evolving.
Challenge 1. Service Availability & Data Lock-in
Clouds managed by a single company risk failure. Using multiple providers improves availability. DDoS attacks also
threaten uptime. Proprietary APIs make it hard to migrate data or apps, causing lock-in. Standardizing APIs can enable
“surge computing” and cross-platform compatibility.
Challenge 2. Data Privacy & Security
Public clouds face increased risks from attacks like malware, VM hijacking, and man-in-the-middle threats. Encryption,
firewalls, and legal compliance (like data location laws) help mitigate risks. Passive attacks steal data; active ones
corrupt systems.
Challenge 3. Unpredictable Performance
VMs share CPU and memory well, but I/O sharing causes bottlenecks. High bandwidth needs (e.g., EC2) highlight this.
Solutions include better I/O virtualization and placement strategies. Data movement and cost must be optimized.
Challenge 4. Distributed Storage & Bugs
Cloud databases grow fast, needing scalable, reliable storage systems. Distributed SANs must support durability and high
availability. Debugging distributed systems is tough. VMs and simulators may help capture issues.
Challenge 5. Scalability, Interoperability & Standards
Clouds must scale up/down quickly to match load and control cost. OVF supports VM portability across platforms.
Standardized, hypervisor-agnostic VMs and live migration across different CPUs are ongoing challenges.
Challenge 6. Licensing & Reputation
Commercial licenses don’t fit cloud use well. New models (pay-per-use, bulk) are needed. Misuse by one user can harm a
provider’s reputation. Reputation management and clear SLAs are key to legal and operational trust.
4.4 Public Cloud Platforms: GAE, AWS, and Azure
4.4.1 Public Clouds and Service Offerings
• Cloud computing users include IT administrators, software vendors, and end users, each demanding different services.
• Five levels of cloud players exist—from individual users to infrastructure providers.
• SaaS (Software as a Service) primarily serves individual users with ready-to-use applications.
• PaaS (Platform as a Service) and IaaS (Infrastructure as a Service) mostly cater to business and enterprise needs.
• IaaS providers offer essential resources like computation, storage, and networking.
• PaaS providers define the application environment and support infrastructure, and users directly.
• Cloud platforms rely on technologies like virtualization, service-oriented architecture (SOA), grid computing, and energy-efficient
systems.
• Customers buy services in the form of IaaS, PaaS, or SaaS, often because it's cheaper than maintaining their own servers.
• Amazon AWS is a pioneer in IaaS:
• EC2 (Elastic Compute Cloud) provides scalable virtual machines.
• S3 (Simple Storage Service) offers unlimited cloud storage.
• Microsoft Azure is a major platform offering:
• Support for .NET services, SQL, CRM, and Hotmail applications.
• [Link] uses [Link] to deliver a wide range of SaaS-based CRM solutions.
• All cloud models are accessed via the Internet, supported entirely by the provider's infrastructure.
• Service Level Agreements (SLAs) define terms for availability, data integrity, privacy, and security.
• SLAs in cloud computing are harder to standardize compared to traditional network services due to service diversity.
• Table 4.5 summarizes features of major cloud providers (by 2010), noting that some fields were still under development or
unspecified at the time.
4.4.2 Google App Engine (GAE)
Overview
Google App Engine (GAE) is a Platform as a Service (PaaS) developed by Google. It allows developers to build and run web
applications on Google’ s powerful infrastructure. Google has vast experience in handling massive data, which led to innovations
like MapReduce, BigTable, and GFS. GAE is designed to support scalable and highly available applications using resources from
Google’ s global network of data centers.

[Link] Google Cloud Infrastructure


• Google has hundreds of data centers and over 460,000 servers worldwide.
• These are used to run services like Gmail, Google Docs, Google Earth, etc.
• Data is stored in various forms (text, images, videos) and is replicated to
prevent data loss.
• Google developed several key technologies:
• GFS (Google File System) – For storing large files.
• MapReduce – For processing large-scale data in parallel.
• BigTable – A scalable, distributed storage system for structured
data.
• Chubby – For managing distributed locks and coordination.
• GAE was launched in 2008 and is now used by many developers and
companies to build web applications that scale easily.
[Link] GAE Architecture
• GAE runs apps in Google’ s data centers managed by Google engineers.
• It is similar to a web application framework like [Link] or JSP, allowing apps to be built and deployed without managing
physical servers.
• Supported languages: Python, Java, and now Ruby.
• Key components:
• Frontend: Handles web requests and responses like a web server.
• Backend: Runs the core logic and stores data using BigTable.
• A GAE application can be deployed across many servers and data centers to support high traffic and usage.

[Link] Functional Modules of GAE


d. Administration Console
a. Datastore • A web interface to manage application life cycles (not physical
• A distributed, object-oriented database built on BigTable. hardware).
• Provides structured storage and ensures data security. • Allows easy tracking, monitoring, and updates.

b. Application Runtime Environment e. Web Services Infrastructure


• A scalable environment where user applications are executed. • Offers APIs for flexible storage and network management.
• Supports Python and Java for application development. • Enables communication and interaction between different
services.
c. Software Development Kit (SDK) • GAE is free to use for users with a Gmail account within a usage
• Used for writing and testing applications locally before deployment. quota. Charges apply beyond the free limit.
• Helps developers upload and run apps on the cloud. • GAE does not offer IaaS (like Amazon EC2); it only provides
PaaS.
[Link] GAE Applications
• GAE powers Google’s own services like Gmail, Google Search, Google Earth, Google Docs.
• It supports building custom third-party web applications.
• Users interact via standard web interfaces.
• Applications can:
• Store persistent data
• Perform database-like functions (querying, sorting, transactions)
• Use Google services for user login and email through Gmail accounts
• Developers can skip building complex user authentication systems, as GAE uses Google’s login system.

4.4.3 Amazon Web Services (AWS)


Overview
Amazon Web Services (AWS) is a leading public cloud platform that follows the Infrastructure as a Service (IaaS) model. It
provides users with virtual machines (VMs) and other computing resources on-demand. These resources can be used safely and
flexibly to build and run applications in the cloud. Developers and companies can use AWS to create powerful applications
without needing to own physical hardware.
AWS Architecture
Figure 4.21 illustrates the AWS architecture, which includes several major
services:
• Amazon EC2 (Elastic Compute Cloud): Offers virtual servers
(instances) for running applications. EC2 provides flexible computing
capacity and allows users to choose operating systems, instance
types, and configurations.

• Amazon S3 (Simple Storage Service):A highly scalable object storage


system for storing and retrieving data like images, videos, backups,
and static website content.
• Amazon EBS (Elastic Block Store):Provides block-level storage, similar
to traditional hard drives. It is suitable for storing databases, file
systems, or applications that require persistent storage.
• Amazon SQS (Simple Queue Service):A message queuing service that
allows different parts of an application to communicate
asynchronously. Messages can be stored even if the receiving service
is temporarily offline.

• Amazon ELB (Elastic Load Balancing):Automatically distributes


incoming application traffic across multiple EC2 instances. It helps
ensure high availability and fault tolerance by avoiding overloaded or
failed instances.
• Amazon CloudWatch:A monitoring service for AWS resources like EC2.
It tracks metrics such as CPU usage, disk reads/writes, and network
activity. CloudWatch works with auto-scaling and ELB to improve
Additional AWS Features
• SNS (Simple Notification Service): Sends real-time alerts and notifications to users or applications using SMS, email, or other
messaging systems.
• RDS (Relational Database Service): Provides a managed relational database system, similar to MySQL, PostgreSQL, or Oracle,
making database setup and management easier.
• Elastic MapReduce (EMR): A cloud-based big data processing service built on Hadoop, which runs on EC2. It is useful for
processing large datasets.
• AWS Import/Export: Lets users ship physical storage devices to AWS to transfer large volumes of data faster than uploading
over the internet.
• CloudFront: A Content Delivery Network (CDN) that speeds up content delivery to users by caching data at edge locations
worldwide.
• DevPay: A billing and account management tool for businesses offering paid applications hosted on AWS.
• FPS (Flexible Payments Service): Helps developers charge users for apps built on AWS using Amazon’ s existing customer
payment infrastructure.
• FWS (Fulfillment Web Service): Lets merchants outsource order fulfillment to Amazon. Orders can be sent directly to Amazon
for packaging and shipping.
• MPI Clusters & Cluster Compute Instances: Offered since 2010, these provide high-performance computing capabilities for
scientific and technical workloads. They use hardware-assisted virtualization and boot from EBS volumes.

Advantages of AWS
• AWS offers flexibility, scalability, and a pay-as-you-go pricing model.
• It is suitable for startups, medium-sized companies, and large enterprises.
• Unlike Google App Engine, which is more restricted to PaaS, AWS allows full control over virtual infrastructure via IaaS.
• Developers can build complex and scalable applications using a wide range of services available in the AWS ecosystem.
4.4.4 Microsoft Windows Azure
Overview
Microsoft launched the Windows Azure platform in 2008 as a response to the growing needs of cloud computing. It is a cloud
operating system that runs on Microsoft’ s global network of data centers. Azure provides developers with tools to build, deploy,
and manage applications through Microsoft-managed infrastructure. Figure 4.22 illustrates Azure's cloud architecture.

Architecture and Platform


The Azure platform is structured into three main component layers, built on top of Microsoft's own Windows operating system
and virtualization technologies. Applications are deployed in Virtual Machines (VMs) that are hosted within Microsoft's data
centers. Azure handles infrastructure management, including servers, storage, and networking.
Azure Cloud Services
• Live Service: Allows users to access Microsoft Live applications, enabling real-time data sharing and use across multiple
machines. It facilitates collaborative and distributed applications.
• NET Service: Supports application development using the .NET framework. Developers can build apps on local machines and
run them seamlessly on Azure's cloud infrastructure.
• SQL Azure: A cloud-based relational database service that extends SQL Server capabilities to the cloud. It makes it easy to
store, manage, and query data just like a traditional SQL Server, but without managing the hardware.
• SharePoint Service: Provides a scalable and customizable platform for developing enterprise-level business applications,
especially those that involve document management and collaboration.
• Dynamic CRM Service: Offers tools to develop Customer Relationship Management (CRM) applications. It supports functions
related to finance, marketing, sales, and customer service. On top of the infrastructure, Azure provides a range of cloud
services that support various types of application development and deployment.
Integration and Development Tools
• Azure cloud services are fully integrated with traditional
Microsoft applications like:
✓ Windows Live
✓ Office Live
✓ Exchange Online
✓ SharePoint Online
✓ Dynamics CRM Online
• These services allow for a seamless hybrid experience between
cloud-hosted and on-premises applications.
• Azure supports standard web communication protocols like
SOAP and REST, ensuring interoperability with third-party
platforms and other cloud services.
• To aid development, Microsoft provides the Azure Software
Development Kit (SDK). Developers can download and run a local
version of Azure, enabling them to build, test, and debug
applications on their own Windows machines before deploying
them to the cloud.
4.5 INTER-CLOUD RESOURCE MANAGEMENT
This section focuses on how resources are managed across different cloud environments. It explains the extended
models of cloud computing beyond the traditional IaaS, PaaS, and SaaS layers, describes emerging service trends,
and introduces how cloud services can be shared or exchanged across platforms (inter-cloud).
4.5.1 Extended Cloud Computing Services
Six-Layer Cloud Service Model
Cloud computing services can be visualized in six layers, from the physical infrastructure to application-level
services, as shown in Figure 4.23. These layers include:
1. Hardware as a Service (HaaS): The lowest layer, providing physical resources like servers, storage devices, and
computing hardware.
2. Network as a Service (NaaS): Offers connectivity solutions including Virtual LANs (VLANs) and bandwidth
provisioning. It connects hardware components together.
3. Location as a Service (LaaS): Also known as collocation services, this layer handles housing, powering, and
securing physical hardware and networking resources. Some also refer to this as Security as a Service.
4. Infrastructure as a Service (IaaS): Provides virtual machines, storage, and computing resources. It forms the
foundation for deploying platforms and applications.
5. Platform as a Service (PaaS): Sits on top of IaaS and provides tools and frameworks for building and deploying
applications.
6. Software as a Service (SaaS): The topmost layer offering ready-to-use applications directly to end users via the
internet (e.g., Gmail, Microsoft 365).
These layers are built upon one another, meaning higher layers depend on the availability and functioning of lower
layers:
• SaaS apps cannot run without PaaS.
• PaaS relies on the infrastructure provided by IaaS.
• IaaS depends on the underlying physical layers: HaaS, NaaS, and LaaS.

Cloud Models and Stakeholders


Table 4.7 categorizes the roles and priorities of different stakeholders across the three main cloud models (IaaS,
PaaS, SaaS):
• Cloud Service Providers / IT Administrators: Focus is on performance and reliability of infrastructure (IaaS level).
• Software Developers / Vendors: Concerned with how well applications run on cloud platforms (PaaS level).
• End Users / Business Users: Interested in applications and services' quality, usability, and security (SaaS level).
[Link] Cloud Service Tasks and Trends
• Cloud services are structured in five layers, with the top layer being Software as a Service (SaaS), mainly
focused on business applications.
• Customer Relationship Management (CRM) was the first successful SaaS application, used extensively in
business promotion, direct sales, and marketing through customer behavior analysis.
• SaaS is also applied in distributed collaboration, financial systems, and human resources management, and has
seen rapid growth in recent years.
• Platform as a Service (PaaS) is offered by companies like Google, [Link], and Facebook, enabling
developers to build and deploy cloud applications.
• Infrastructure as a Service (IaaS) is provided by Amazon, Windows Azure, and RackRack, allowing users to
access fundamental computing resources.
• Collocation services require collaboration among multiple cloud providers to support tasks like supply chain
management in manufacturing.
• Network cloud services, such as those offered by AT&T, Qwest, and AboveNet, enable communication
infrastructure for cloud operations.
• Vertical cloud services refer to layers of cloud functions that work together in a sequence, often combining
services through cloud mashups.
[Link] Software Stack for Cloud Computing
• Cloud computing software stacks are built from the ground up to meet demands like high throughput, high availability (HA),
and fault tolerance.
• Developers may even need to modify operating systems to suit the specific needs of cloud data processing.
• Cloud software stack structures, as seen in companies like Google, Microsoft, and Yahoo!, are layered— each layer has a
defined role and interfaces with the ones above it.
• Unlike traditional stacks, the lower layers in cloud stacks are not fully transparent to upper layers, as they influence overall
performance and behavior.
• Cloud services can run on either physical or virtual servers; using virtual machines (VMs) provides flexibility by decoupling
services from specific hardware.
• The storage layer above the platform functions like a file system, managing massive amounts of data across machines.
• Above this storage layer are components responsible for cloud application execution, including database systems, large-scale
programming frameworks, and data query languages.

[Link] Runtime Support Services


• Cloud environments, like clusters, require runtime support services to monitor system performance and manage jobs efficiently.
• Cluster monitoring collects runtime status, while the job management system schedules and distributes tasks based on node
availability.
• Cloud-specific schedulers are adapted for programs like MapReduce, enabling efficient processing across distributed systems.
• These runtime systems ensure the cloud operates smoothly and maintains high efficiency.
• For SaaS applications, runtime support enables thousands of users to run browser-based apps without installing software locally.
• Users benefit from no upfront hardware or software investment, while providers enjoy reduced costs compared to traditiona
hosting.
[Link] Provisioning of Compute Resources (VMs)

• Cloud computing introduces changes in both software and hardware architecture, focusing more on parallelism
and the number of processor cores or VM instances.
• Cloud providers enter into SLAs with users, guaranteeing specific resources like CPU, memory, and bandwidth for
a defined time period.
• Underprovisioning risks SLA violations and penalties, while overprovisioning leads to inefficient resource use and
financial loss.
• Provisioning resources autonomously is complex due to unpredictable demand, system failures, heterogeneous
services, power issues, and SLA conflicts.
• Efficient VM provisioning relies on the cloud architecture, requiring fast service discovery, VM installation, live
migration, and failure recovery.
• Users can deploy VMs as if they were physical hosts, customizing operating systems for specific applications.
• Amazon EC2 uses Xen as its virtual machine monitor (VMM), offering predefined VM templates; IBM’ s Blue
Cloud also uses Xen but doesn’ t provide templates.
• Microsoft Azure also adopts virtualization for resource deployment and management.
• Power efficiency is critical, requiring optimized caching, query processing, and thermal control due to energy
waste in data centers.
• Clouds, whether public or private, aim for cost-effective provisioning of software, hardware, and data, maximizing
IT efficiency and scalability.
[Link] Resource Provisioning Methods
• Figure 4.24 illustrates three static cloud resource provisioning cases. In case (a), overprovisioning during peak loads results
in significant resource waste (shaded area). In case (b), underprovisioning causes resource shortages, leading to both user
and provider losses due to unmet demand and wasted underutilized resources. In case (c), static resource provisioning in the
face of declining demand leads to unnecessary waste and reduced provider revenue if users cancel their service.
• Three resource provisioning methods are introduced: demand-driven, event-driven, and popularity-driven.
• The demand-driven method, used in grid computing, provides static resources based on historical demand.
• The event-driven method predicts workload changes over time, adjusting resources accordingly.
• The popularity-driven method monitors Internet traffic to adjust resources based on user demand trends.
• These methods offer different approaches to balancing resource allocation and demand in cloud environments.
[Link] Demand-Driven Resource Provisioning:
• This method adjusts the number of computing instances based on current resource utilization levels.
• When a resource exceeds a threshold for a set period, additional resources are allocated; if usage drops below the threshold,
resources are reduced.
• Amazon EC2 uses an auto-scaling feature that implements this approach.
• The method is easy to implement but struggles when there are sudden workload changes.
• In Figure 4.25, initial fluctuations in CPU load are followed by stabilization.
• The demand-driven method reaches a maximum of 20 VMs at 100% utilization (Figure 4.25(a)).
• The event-driven method peaks at 17 VMs and drops quickly (Figure 4.25(b)).
• Popularity-driven provisioning shows fluctuations with peak VM utilization in the middle (Figure 4.25(c)).

[Link] Event-Driven Resource Provisioning


• This method provisions (adds/removes) machine instances based on specific scheduled or seasonal events.
• It is particularly effective for predictable patterns, such as holiday shopping seasons, such as Christmas in Western
countries or Lunar New Year in the East.
• The system anticipates increased traffic before the event starts, ensuring that resources are ready in advance.
• If the event is accurately predicted, this approach maintains high Quality of Service (QoS) with minimal delays.
• However, if the event doesn't follow the expected pattern, it can lead to overprovisioning and significant resource
waste.
[Link] Popularity-Driven Resource Provisioning
• This approach provisions resources based on the popularity
of applications as tracked by Internet trends or search traffic.
• It assumes that applications with increasing online interest
will require more computational resources soon.
• If the popularity forecast is correct, the system performs
efficiently with minimal QoS loss.
• On the downside, if the predicted traffic spike doesn’ t occur,
resources remain idle, leading to inefficiency.
• For example, in Amazon EC2, CPU utilization and the number
of VMs provisioned fluctuate with the popularity trend, as
shown in performance graphs like Figure 4.25(c).
[Link] Dynamic Resource Deployment
• Cloud-based Execution Environment: Cloud systems use Virtual Machines (VMs) to build flexible execution
environments across distributed resource sites.
• InterGrid Infrastructure: Developed by Melbourne University, InterGrid is a Java-based system that enables
dynamic resource deployment by linking multiple grid resources.
• Peering Gateways: Gateways, known as InterGrid Gateways (IGGs), manage resource sharing through predefined
peering arrangements, allowing cooperation between different grids.
• Deployment Process: The process involves three main steps: (1) VM requests by users, (2) leasing of those VMs,
and (3) actual VM deployment to run applications.
• Handling Peak Load: If a local IGG lacks resources, it communicates with other IGGs or even cloud providers to
fulfill peak demands, maintaining performance.
• Coordination Across Grids: IGGs are aware of which other grids they can partner with and make resource
allocation decisions based on peering agreements and cost.
• Distributed Virtual Environment (DVE): InterGrid sets up DVEs, which are clusters of VMs running in isolation,
enabling user applications to operate securely and independently.
• DVE Manager Role: The DVE manager handles resource allocation and management for each user’ s application.
• Core Components of IGG: It includes a scheduler for enforcing provisioning and peering policies and a
communication module that uses asynchronous messaging with parallel handling via thread pools.
[Link] Provisioning of Storage Resources
• Cloud storage layer is built on physical or virtual servers to support the data needs of cloud applications that serve users
globally.
• Real-world examples include email systems and web search engines, which require storage of massive data— millions of users,
thousands of emails per user, and gigabytes of usage per account.
• Emerging storage technologies like solid-state drives (SSDs) are being considered alongside traditional hard disk drives due to
their higher I/O bandwidth and performance, despite earlier concerns about cost and capacity.
• Distributed file systems are essential for handling large-scale data efficiently. Examples include Google File System (GFS),
Hadoop Distributed File System (HDFS), and Microsoft’ s Cosmos.
• Alternative data storage models, such as key-value pairs (e.g., Amazon S3), are also used, which allow efficient access to
unstructured or semi-structured data.
• Structured and semi-structured data storage (like HTML pages) enables easier data processing and application logic
development for cloud-based apps.
• Cloud-based databases are necessary for developers who prefer database-style access for large-scale applications. They offer
convenience and familiar paradigms.
• Popular cloud databases include Google’ s BigTable, Amazon’ s SimpleDB, and Microsoft Azure’ s SQL service. These are
designed to scale with large datasets while offering acceptable consistency levels.
• Traditional databases face limitations at large scales, so cloud systems offer flexible, scalable solutions that support rapid
development and deployment.
4.5.3 Virtual Machine Creation and Management
• Cloud infrastructure management involves handling resource allocation for service jobs and running third-party applications effectively
through virtual machines (VMs).
• A case study by a Melbourne group on the French Grid’5000 demonstrates VM creation, highlighting issues in workload balancing and
management through experiments.
• VM managers offer public APIs, allowing users to submit and manage VMs across the cloud infrastructure.
[Link] Independent Service Management
• Independent services handle unrelated tasks via APIs, often exposed as web services for ease of use.
• Amazon’s SQS ensures reliable communication between services even when endpoints are offline.
• Cloud apps can use multiple independent services in parallel, including services for compute, storage, or data.

[Link] Running Third-Party Applications


• Cloud platforms support third-party applications developed using Web 2.0 technologies like Ajax.
• APIs are service-oriented rather than traditional function libraries.
• Engines like WebSphere (IBM Blue Cloud) or Google App Engine (GAE) and Microsoft Azure provide tools to develop and run these
applications.
• Amazon EC2 enables users to run any compatible application engine within VMs.

[Link] Virtual Machine Manager


• The VM Manager (VMM) serves as a bridge between cloud gateways and virtualized resources.
• It handles VM deployment on physical clusters using various virtualization platforms like OpenNebula and Xen.
• VMMs are developed for multiple systems including Amazon EC2 and Grid’5000, usually acting as wrappers for CLI
tools.
• The VMM generates and manages VMs using predefined templates, interacting with different Virtual Infrastructure
Engines (VIEs).
[Link] Virtual Machine Templates
• VM templates are configuration files that define VM attributes like:
• Number of CPU cores
• Memory allocation
• OS kernel
• Disk image
• Hourly pricing
• Administrators can update, add, or delete templates anytime and ensure consistency across InterGrid sites.
• A VM descriptor is generated from the template when deploying an instance and includes:
• Disk image path
• Physical machine address
• Network settings
• Deployment information for IaaS providers
• For providers like Amazon EC2, network settings are auto-assigned, and temporary disk image copies are created for multiple
instances.
[Link] Distributed VM Management
• Distributed VM managers request VMs on behalf of applications and track their status via the gateway.
• The request includes template selection, number of VMs, deadline, wall time, and backup gateway.
• The local gateway first tries to allocate local resources, and if unavailable, initiates negotiation with remote gateways.
• Once VMs are scheduled, access info (IP addresses, SSH tunnels) is sent to the requester.
• Managers then configure VMs, establish SSH tunnels, and launch user tasks.
• Peering policies guide resource sharing, with conservative backfilling and request redirection algorithms ensuring
efficient scheduling.
4.5.4 Global Exchange of Cloud Resources
• Cloud providers (IaaS) operate multiple geographically distributed data centers to ensure redundancy and
reliability, as seen in Amazon’ s centers in the US and Europe.
• Currently, cloud users must manually select hosting locations, but this lacks automatic scaling and
cross-location flexibility, creating inefficiencies.
• Challenges include:
• SaaS providers may not know the geographical origin of end users.
• QoS (Quality of Service) may degrade due to distance or poor location choices.
• Dynamic, seamless cross-region scaling is not natively supported.
• Solution: InterCloud Architecture, proposed by the Melbourne Cloudbus Project, enables federation of multiple
cloud providers for dynamic, global resource provisioning.
• Federated cloud model benefits:
• SaaS providers can use multiple IaaS providers to meet global QoS demands.
• Supports dynamic scaling of applications across domains and providers.
• Ideal for globally distributed enterprises and services like media hosting and Web 2.0 apps.
• InterCloud capabilities:
• Enables resource leasing between providers during high workload spikes.
• Supports market-driven SLAs based on availability, price, and QoS guarantees.
• Delivers reliable, scalable, cost-effective services using virtualization.
• Utility-based federation:
• Includes components like client brokers and coordinators.
• Manages application scheduling, workload migration, and resource allocation.
• Utility-based federation:
• Includes components like client brokers and coordinators.
• Manages application scheduling, workload migration, and resource allocation.
• Integrates distributed compute and storage under a unified leasing abstraction.
• The Cloud Exchange (CEx):
• Acts as a marketplace for matching demand and supply of cloud services.
• Uses economic models (commodity market, auctions) for service trading.
• Facilitates SLA-based contracts with rewards for meeting and penalties for breaking agreements.
• Includes a secure banking system to handle financial transactions between cloud users and providers.

You might also like