DBaaS Security Risks and Solutions
DBaaS Security Risks and Solutions
Security in Database-as-a-Service (DBaaS) is a major concern for cloud users who delegate control of
their data to Cloud Service Providers (CSPs). The security model typically involves data owners, users,
CSPs, and Third-Party Auditors (TPAs).
• Data Loss: May result from weak authentication, poor encryption practices, accidental
deletions, or operational failures.
• Integrity and Privacy: Threatened by missing or ineffective access control and poor
encryption key management.
• Confidentiality: Only authorized users should access data. Unencrypted data is highly
vulnerable to bugs and attacks.
• Insider Attacks: Superusers with full access rights can misuse sensitive data (e.g., medical or
business information).
• External Attacks: Spoofing, sniffing, man-in-the-middle, and side-channel attacks can lead to
data breaches and DoS attacks.
• Illegal Data Recovery: In multi-tenant environments, data can be recovered from improperly
sanitized storage devices.
2. Data Unavailability:
• Data Provenance: Tracking data origins using metadata is resource-intensive but essential for
trust.
• Physical Location: Cloud users don’t know where their data is physically stored, complicating
breach response.
• Execution Control: Users lack fine-grained control or visibility into the execution
environment.
• Timely Backups: Needed for fast recovery but can be a point of failure or attack.
• Jurisdictional Issues: Users may unknowingly violate laws (e.g., EU or South American data
residency regulations) due to unknown storage locations.[‘/
Security risks in cloud environments can arise from both the sharing of virtual machine images and
the management operating system responsible for orchestrating virtualized resources.
I. Security Risks Posed by Shared Images (e.g., Amazon Machine Images - AMIs)
Shared images, especially in IaaS models, present significant security risks if not properly managed by
both creators and users.
o AMIs can be created from running systems, other AMIs, or VM images. The process
(bundling) involves creating, compressing, encrypting, and uploading the image (e.g.,
to S3).
▪ SSH keys: Malicious AMI creators can leave their public SSH keys
in authorized_keys, allowing them remote login to any instance of that AMI.
▪ Omission of cloud-init script: This script regenerates host SSH keys. Its
omission makes systems vulnerable to man-in-the-middle attacks if keys are
shared across instances. Tools like NMap can be used to match discovered
SSH keys.
o Privacy Risks for Image Providers: Recovery of their own private keys (including AWS
API keys, leading to unauthorized cloud usage billed to the provider), IP addresses,
browser/shell history, and sensitive data from deleted files (if not properly wiped
using utilities like shred, scrub, zerofree, or wipe). Block-level image creation can
include blocks marked as free but containing old data.
While hypervisors are smaller than traditional OSs, the Trusted Computer Base (TCB) of a virtual
environment includes not only the hypervisor but also the Management OS (e.g., Xen's Dom0),
which handles VM creation, device drivers, live migration, and administrative tools.
• Diagram: Figure 11.4 (The trusted computing base of a Xen-based environment including
hardware, Xen, and Dom0 with its components like administrative tools, live migration,
device drivers, device emulation, and XenStore, supporting Guest OS/applications in DomU).
o Split Drivers: Communication between DomU (frontend) and Dom0 (backend) via
shared memory rings can be a target.
o Unencrypted Communication: Transport Layer Security (TLS) might not prevent a
malicious Dom0 from extracting cryptographic keys from DomU memory.
o XenStore: As a central repository for system state, it's a critical point. A malicious VM
could deny access or gain unauthorized access to a DomU's memory via XenStore.
o Restricting Foreign Mapping: Prohibiting Dom0 from using foreign mapping unless
initiated by DomU via a hypercall, with data being encrypted.
o This increased security incurs overhead in domain build, save, and restore times.
Virtual Machine (VM) security involves protecting VMs from various threats and leveraging
virtualization's inherent capabilities for enhanced security. The discussion often focuses on system
VMs where a hypervisor controls hardware access.
• Diagram: Figure 11.3A (Virtual security services provided by the hypervisor/Virtual Machine
Monitor) and Figure 11.3B (A dedicated security VM).
I. Inherent Security Advantages of Virtualization:
1. Isolation:
o Hypervisors are less complex and better structured than traditional OSs, making
them potentially more resilient to attacks.
o The state of a guest VM (including its OS and applications) can be saved, restored,
cloned, and encrypted by the hypervisor.
o Cloning for Malicious Code Detection: A running system can be cloned, and
potentially dangerous applications can be tested on the clone to observe behavior
without affecting the production system.
3. Challenges for Hypervisor Security Services: Hypervisors see raw data (e.g., disk blocks),
while security services often operate at a higher logical level (e.g., files).
4. Attacker Sophistication: Attackers can fingerprint VMs to avoid honeypots and may attempt
to access VM-logging files for sensitive data (e.g., cryptographic keys).
o Intrusion prevention systems (e.g., SVFS, NetTop, IntroVirt) also leverage these.
o Systems like Terra use a trusted hypervisor to partition resources among VMs.
• VM State Capture: The complete state of an OS within a VM can be saved to a file, copied,
and shared. This is useful for:
• Rollback Risk: A hypervisor's ability to record and roll back VM state can be exploited by
attackers to access sensitive data the owner attempted to destroy.
(Relevant OCR text: Module 4, Sections 11.8, 11.9, parts of 11.2, 11.7)
Reputation systems are designed to establish public opinion about the character or standing (e.g.,
honesty, reliability) of an entity, which could be a person, agent, product, or service. They aggregate
collective evaluations from a group. For cloud services, reputation systems can help protect data
centers and user communities.
• Diagram: Figure 4.36 (Design options of reputation systems for social networks and cloud
platforms, showing a two-tier classification: Centralized/Distributed at the first tier, and User-
oriented/Data center-based at the second tier, with examples like eBay, Google, Amazon,
PeerTrust, EigenTrust, PowerTrust).
▪ Easier to implement.
▪ Demand more powerful and reliable server resources from the central
authority.
▪ Reputation is modeled for the resource site (e.g., data center) as a whole.
▪ Commercial systems (eBay, Google, Amazon) often use this for their service
reputation.
• Adaptation from P2P/Social Networks: Existing systems designed for P2P or social networks
can be converted for protecting cloud computing applications and data centers.
• Hierarchy: P2P reputation systems can be structured hierarchically to protect cloud resources
at the site level and data objects at the file level, demanding both coarse-grained and fine-
grained access control.
o Can assist in safe cloning of VMs (with snapshot control based on RPO).
o Support secured information logging and migration over secure virtual LANs.
o Privacy can be enforced by matching colored user IDs with colored data objects.
Reputation systems aim to create a trusted cloud environment by providing objective evaluations,
which, when combined with SLAs and security policies, enhance the overall security and reliability of
cloud services.
5. What are the various system issues for running a typical parallel program in either parallel or
distributed manner?
Running a parallel program on a distributed computing system involves several system issues that
need to be managed to ensure correct and efficient execution. These issues abstract the complexities
of parallel execution from the user to varying degrees depending on the programming paradigm.
o Computation Partitioning:
▪ These parallel parts might process different data or different copies of the
same data.
o Data Partitioning:
2. Mapping:
o Assigns the smaller parts of the program (tasks) or the smaller pieces of data to the
underlying resources (e.g., workers, computation engines).
o This process aims to appropriately assign these units for simultaneous execution on
different workers.
3. Synchronization:
o Manages data dependency (where one worker needs the processed data from
another worker before it can proceed).
4. Communication:
o The efficiency of communication is critical for the overall performance of the parallel
program.
5. Scheduling:
o Task/Data Piece Scheduling: When the number of computation parts (tasks) or data
pieces exceeds the number of available workers, a scheduler selects a sequence of
tasks/data pieces to be assigned to workers. The scheduler decides the order based
on a scheduling policy, while the resource allocator does the actual mapping.
Addressing these issues manually can be very time-consuming and requires specialized programming
knowledge, potentially detracting from the core application logic and affecting programmer
productivity and time-to-market. Parallel and distributed programming paradigms and models (like
MapReduce) aim to abstract many of these details from users.
6. With a neat diagram, explain the data flow in running a MapReduce job at various task trackers
using Hadoop Library.
Running a MapReduce job in Hadoop involves interactions between a user node, a single JobTracker
(master), and several TaskTrackers (slaves). The JobTracker manages the overall job, while
TaskTrackers execute individual map or reduce tasks.
• Diagram: Figure 6.12 (Data flow in running a MapReduce job at various task trackers using
the Hadoop library. This diagram should show the User submitting a job (via runJob(conf)),
the JobTracker, and multiple TaskTrackers. Arrows should indicate: job submission to
JobTracker, task assignment from JobTracker to TaskTrackers, TaskTrackers running Map tasks
(on JVMs, reading from DataNodes/Blocks) and Reduce tasks (on JVMs, potentially HMM -
Hadoop MapReduce Master interaction for shuffle/sort), and heartbeats from TaskTrackers
to JobTracker). Data Flow and Process:
The data
flow starts when a user calls the runJob(conf) function within their program on a user node.
The conf object contains tuning parameters for MapReduce and HDFS.
1. Job Submission:
o Request Job ID: The user node contacts the JobTracker to request a new job ID.
o Compute Input Splits: The user node computes the input file splits. Typically, HDFS
blocks are used as input splits.
o Copy Resources: The user node copies necessary resources for the job (e.g., the job's
JAR file, configuration files, computed input splits) to the JobTracker's file system
(which is usually HDFS).
o Submit Job: The user node calls the submitJob() function, formally submitting the job
to the JobTracker.
o Map Task Creation: The JobTracker creates one map task for each input split
computed by the user.
o Map Task Assignment: The JobTracker assigns these map tasks to available execution
slots on the TaskTrackers.
▪ Data Localization: The JobTracker considers data locality when assigning map
tasks. It tries to assign a map task to a TaskTracker running on the same
DataNode that stores the input split for that task. If not possible, it tries a
TaskTracker on the same rack, and then any available TaskTracker.
o Reduce Task Creation: The JobTracker also creates a predetermined number of
reduce tasks (specified by the user).
o Reduce Task Assignment: These reduce tasks are assigned to available TaskTrackers.
There's typically no data locality consideration for reduce tasks in the initial
assignment phase, as they process intermediate data from multiple map tasks.
o Copy JAR File: The TaskTracker first copies the job JAR file from HDFS to its local file
system.
o Launch JVM: It then launches a new Java Virtual Machine (JVM) to execute the map
or reduce task.
o Map Task Execution: The map task processes its assigned input split, performing the
user-defined map function and generating intermediate key-value pairs.
o Reduce Task Execution: The reduce task fetches relevant intermediate data from map
tasks (shuffling), sorts it, and then processes it using the user-defined reduce
function to produce the final output.
o These heartbeats notify the JobTracker that the TaskTracker is alive and indicate
whether it's ready to run new tasks or if its current tasks are progressing.
o The JobTracker uses these heartbeats to monitor job progress and handle failures
(e.g., by re-scheduling failed tasks).
Each TaskTracker node has a number of simultaneous execution slots (determined by CPU cores and
thread capacity), and each slot can execute either a map or a reduce task. There's a one-to-one
correspondence between map tasks and data blocks processed in their respective DataNodes,
facilitated by the TaskTracker.
Google App Engine (GAE) provides a Platform-as-a-Service (PaaS) for developing and hosting web
applications in Google's scalable infrastructure. It abstracts much of the underlying system
administration and focuses on application development.
• Diagram: Figure 6.17 (Programming environment for Google AppEngine, showing Datastore,
Memcache, Blobstore, Python/Java application, URL fetch, Users, Mail, Cron, Images, Google
app secure data connection SDC, Secure intranet, Admin console, Google corporate apps,
and Google data API). Additional Diagrams (Conceptual for GFS/BigTable/Chubby): Figures
6.18 (GFS Architecture), 6.19 (GFS Data mutation), 6.20 (BigTable data model and system
structure), 6.21 (BigTable Tablet location hierarchy).
Key Components and Programming Features of GAE:
o Python environment can use frameworks like Django, CherryPy, or Google's built-
in webapp.
o Java environment allows JVM-based languages (e.g., JavaScript via Rhino, Ruby via
JRuby) and uses a client environment with an Eclipse plug-in and Google Web Toolkit
(GWT).
2. Datastore:
o Queries can retrieve entities of a given kind, filtered and sorted by property values.
o Java Interfaces: Java Data Object (JDO) and Java Persistence API (JPA) via Data
Nucleus.
o Blobstore: For large files (size limit 2GB), suitable for serving static content like
images or videos.
o Google File System (GFS): The underlying fundamental storage service, designed for
large files, high fault tolerance (replication, checksums), and append-heavy
workloads. GFS has a single master for metadata and multiple chunkservers. (Figure
6.18, 6.19)
o BigTable: A distributed, multi-level sparse map built on GFS, used by the Datastore. It
handles structured and semi-structured data, indexed by row key, column key, and
timestamp. Tables are split into "tablets." (Figure 6.20, 6.21)
o URL Fetch: Allows applications to fetch resources and communicate with other hosts
over HTTP/HTTPS.
o Users Service (Google Accounts): Handles user authentication and sign-in, allowing
users with existing Google accounts to use GAE apps.
o Images Service: Manipulates image data (resize, rotate, flip, crop, enhance).
o Cron Service: Schedules tasks to run at regular intervals (e.g., daily, hourly).
o Google Data API: Access to Google's corporate facilities like Maps, Sites, Calendar,
Docs, YouTube.
o Software Development Kit (SDK): Provided for local application development and
testing. Includes tools to simulate GAE services locally.
o Quotas: GAE applications consume resources up to certain limits (quotas). Use is free
up to these quotas; exceeding them incurs charges.
o Chubby: A distributed lock service used for master election in GFS and BigTable, and
for location bootstrapping. (Figure 6.22 implies its structure).
GAE is designed for web applications that require high scalability and reliability, offloading
infrastructure management to Google. It emphasizes a specific application model and provides a rich
set of services tailored for web development.
(Relevant OCR text: Module 5, Sections 6.3, 4.4.2; Figures 6.17-6.22)
• Diagram: Figure 6.30 (OpenStack Nova system architecture. This diagram should show the
User Manager (LDAP), API server (Boto), Cloud controller (AMQP), S3 (Tornado), Nodes
(Libvirt/KVM), and Storage (ATA over Ethernet). Key communication protocols like HTTP,
AMQP, LDAP should be indicated between components).
Core
Architectural Concepts and Components of OpenStack Nova:
1. Shared-Nothing Architecture:
o Most components are designed to be independent and do not share state directly.
o The overall system state is kept in a distributed data system (not explicitly shown as a
single box in Fig 6.30, but implied by the interaction of components).
2. Messaging-Based Communication:
o This prevents blocking components while waiting for responses; deferred objects
and callbacks are used.
3. Key Components:
o API Server:
▪ Receives HTTP requests from clients (e.g., using boto, an Amazon API library
in Python).
o Cloud Controller:
o User Manager:
▪ Typically interacts with the Cloud Controller via LDAP (Lightweight Directory
Access Protocol).
▪ Receive instructions from the Cloud Controller via the message queue.
o Storage:
Implementation Details:
• It utilizes externally supported libraries and components like boto and Tornado.
The architecture aims for scalability and resilience by distributing responsibilities and using
asynchronous communication. It allows for managing virtual machines, storage, and networking in a
cohesive IaaS environment.
9. Explain the security risks faced by cloud users and cloud service providers.
Both cloud users and Cloud Service Providers (CSPs) face a multitude of security risks, stemming from
the shared, multi-tenant nature of cloud computing and the reliance on internet-based access.
o Rogue Employees of CSP: Insider attacks from CSP employees are a concern as
hiring/screening policies are opaque to users.
o Data Deletion: Virtually impossible for a user to verify if data marked for deletion
was actually deleted and if the media was wiped, preventing recovery by subsequent
users.
6. Multi-tenancy:
o The root cause of many user concerns. Threats differ by cloud model (e.g., SaaS
private info compromise affects many users).
o Law enforcement data requests (e.g., subpoenas for emails) can compromise privacy.
o The vast amount of cloud resources and large user populations amplify the impact of
traditional threats (DDoS, phishing, SQL injection, cross-site scripting).
o User-site infrastructure (used to connect to the cloud) may be outside their firewall.
9. Availability of Services:
o CSP espionage.
o Contractual obligations often place all data security responsibility on the user (e.g.,
Amazon's agreement).
While many user risks indirectly impact CSPs (reputation, liability), some are more direct:
o Users leveraging cloud instances (e.g., IaaS) to launch DDoS attacks, distribute
spam/malware. This requires CSPs to implement mechanisms to prevent nefarious
use.
o If APIs for authentication, access control, monitoring are not secure, they can be
exploited to compromise the platform or user data.
o DDoS attacks against CSP services, phishing targeting CSP admin credentials, SQL
injection against CSP management portals.
o Protecting against system failures, power outages, and natural disasters to meet
SLAs.
o Adhering to various regional and international data protection laws (e.g., GDPR,
HIPAA), especially concerning data location and cross-border data transfer.
o Ensuring security mechanisms can scale with the growth of users and resources.
o Any security incident, whether affecting users or the CSP directly, can severely
damage the CSP's reputation and business.
• Platform Security: SSL, data encryption, strict password policies, system trust certification.
• Authenticated/Authorized Access.
(Relevant OCR text: Module 4, Sections 11.1, 11.2; Module 3, Section 4.6)
• Legal Protections:
o U.S. Constitution: While no express right to privacy, the Bill of Rights reflects
concerns for protecting specific aspects (e.g., 1st Amendment - beliefs, 3rd - home,
4th - person/possessions against unreasonable searches, 5th - self-
incrimination/personal information).
o European Court of Human Rights: Developed many documents defining the right to
privacy.
• Limitations: The right to privacy is not absolute and is limited by laws (e.g., taxation laws
requiring income disclosure). It can also conflict with other basic human rights like freedom
of speech. Privacy laws differ significantly from country to country.
The digital age has introduced new and significant challenges to privacy:
1. New Threats:
o Personal information voluntarily shared but subsequently stolen or misused can lead
to identity theft.
o Data Residency: Data, often unencrypted, resides on servers owned by a CSP, giving
users less control.
o Varying Concerns by Delivery Model: Privacy implications differ for IaaS, PaaS, and
SaaS.
o Lack of User Control: User-centric data control is often incompatible with cloud
usage. Once data is on CSP servers, users lose control over its exact location and
sometimes even access (e.g., Gmail user has no control over where emails/backups
are stored).
o Potential Unauthorized Secondary Use: CSPs might use data for purposes like
targeted advertising without explicit consent. Technological prevention is difficult.
o Data Proliferation: Data is copied, backed up, and moved, increasing the risk of
exposure.
1. Legislation:
o Some countries (e.g., EU with strict laws like GDPR) are more aggressive in
addressing new privacy concerns.
o The Federal Trade Commission (FTC) for the US Congress proposed that consumer-
oriented commercial websites comply with four widely-accepted fair information
practices:
o A PIA tool (e.g., web-based service) could take project info, documents, risks,
stakeholders as input and produce a PIA report (findings, risk summary, security,
transparency, cross-border data flows).
o Often uses a knowledge base (KB) created by domain experts and questionnaires
filled by users. An expert system infers rules and executes based on priority.
Operating System (OS) security is fundamental to protecting applications and data by managing how
multiple applications share hardware resources subject to defined policies. A critical OS function is to
defend against malicious attacks like unauthorized access, code tampering, and spoofing, even on
single-user systems.
o Defined as "any security policy where the definition of the policy logic and the
assignment of security attributes is tightly controlled by a system security policy
administrator."
o Elements include:
o They should operate with the lowest level of privileges necessary (e.g., via type
enforcement).
o Discretionary security mechanisms place the burden on individual users and can be
changed by applications without user consent, unlike mandatory policies which
require administrator changes.
o Some (e.g., Windows NT) allow programs to inherit all privileges of the invoking
program, regardless of trust.
4. Trusted Paths:
o Mechanisms supporting user interactions with trusted software are critical. Without
them, malicious software can impersonate trusted software.
o Some systems provide trusted paths for limited functions (login, password change).
o Solution: Decompose complex mechanisms into components with well-defined roles
(e.g., access control into enforcer and decider).
▪ The enforcer gathers information about the agent and object, passes it to
the decider for a policy decision, and then carries out the action.
o Java Security Manager uses type-safety for sandboxing, but JVMs can accept
bytecode violating language semantics and cannot protect themselves from
tampering by other applications.
o Security relies on file system integrity for Java class code. Digitally signed applets
from trusted sources can fail due to the all-or-nothing security model.
• Offer low assurance due to complexity (millions of lines of code) and vulnerability to many
attacks.
• Poorly isolate applications; a compromised application can affect the entire platform.
• Provide weak mechanisms for inter-application authentication and lack trusted paths
between users and applications. These shortcomings are problematic in distributed
computing.
Application-specific security implemented above the OS can sometimes be more effective (e.g.,
digital signatures in e-commerce).
Virtual Machine (VM) security is a critical aspect of cloud computing, focusing on protecting the
integrity, confidentiality, and availability of VMs and the data they process. It leverages
virtualization's inherent capabilities while also addressing new threats introduced by the virtualized
environment.
• Diagrams: Figure 11.3A (Virtual security services by hypervisor) and 11.3B (Dedicated
security VM) would be relevant here.
1. Isolation:
o This helps contain threats within a compromised VM, preventing them from
spreading to others on the same physical host.
2. Hypervisor's Role:
o As the control point, the hypervisor's security is paramount. It's generally less
complex than a full OS, potentially reducing its attack surface.
4. Threats to VMs:
5. Security Mechanisms:
o Secure VM Images: Ensuring images are from trusted sources, regularly patched,
and their integrity verified (e.g., via digital signatures).
o Careful Management of VM Logging Files: To prevent unauthorized access to
sensitive data like cryptographic keys.
o While VM state capture is useful (for IaaS, reliability, load balancing), the rollback
capability can be a risk if an attacker accesses previous states containing sensitive
data that was meant to be destroyed.
Securing VMs requires a multi-layered approach, addressing vulnerabilities in the hypervisor, the
guest OS, applications within the VM, and the management plane that controls VM lifecycle and
image repositories.
13. Discuss about the system issues for running a parallel program in either a parallel or distributed
manner.
(This question is identical to question 5. The answer is a reiteration of the key points.)
Running a parallel program effectively, whether on a tightly coupled parallel system or a distributed
system, involves addressing several fundamental system issues. These issues are often abstracted by
parallel programming paradigms to simplify development.
o Data Partitioning: Splitting the input data or intermediate data into smaller chunks
for parallel processing by different workers or tasks.
2. Mapping:
3. Synchronization:
o Coordinating the execution of different workers or tasks, especially when they share
data or have dependencies.
4. Communication:
o The exchange of data and control information between different workers or tasks.
o Often necessitated by data dependencies identified during partitioning. Efficient
communication is crucial for performance.
5. Scheduling:
o Determining the order and timing of execution for tasks or jobs, especially when the
number of tasks exceeds available resources or when multiple jobs compete for
resources.
o A scheduler applies a policy to select the next task/job, while the mapper (resource
allocator) assigns it to a worker.
Effectively managing these issues is critical for achieving the desired speedup and efficiency from
parallel execution. Modern parallel programming models aim to automate or simplify the handling of
these complexities for the programmer.
The Google File System (GFS) is a large-scale, distributed file system designed and built by Google
primarily as the fundamental storage service for its search engine and other data-intensive
applications. It is optimized for Google's specific workload patterns, which involve huge files, append-
heavy writes, and large streaming reads.
• Diagrams: Figure 6.18 (Architecture of Google File System, showing Application/GFS client,
GFS master with file namespace and chunk locations, and multiple GFS chunkservers with
Linux file systems storing chunk data. Control and data messages should be distinguished)
and Figure 6.19 (Data mutation sequence in GFS, illustrating the client-master-primary
replica-secondary replicas interaction for writes).
•
1. xeeeeeeeeeCore Components:
o Single Master:
▪ Manages all file system metadata, including the namespace (directory tree),
access control information, mapping from files to chunks, and current
locations of chunk replicas.
▪ To mitigate the single point of failure and bottleneck issues, the master's
operations are minimized for data transfer (clients read/write data directly
to/from chunkservers), and its state is replicated to shadow masters for fault
tolerance.
o Multiple Chunkservers:
▪ Store file data on their local disks as chunks. Chunks are fixed-size (typically
64 MB).
▪ Chunkservers read or write chunk data specified by a chunk handle and byte
range.
▪ They do not cache file data; Linux buffer cache is relied upon.
o GFS Clients:
▪ Communicate with the master for metadata operations but directly with
chunkservers for all data-bearing operations.
o The master manages replica placement and re-replication upon chunkserver failures.
3. Data Operations:
o Read: The client asks the master for chunk locations. The master replies with
locations of replicas. The client caches this and contacts the nearest chunkserver to
read the data.
o Write/Append (Mutations):
▪ The client asks the master for the chunkserver holding the lease for the
chunk (the primary replica) and locations of other (secondary) replicas.
▪ The client pushes data to all replicas (data flow).
▪ Once all replicas acknowledge data receipt, the client sends a write request
to the primary (control flow).
▪ The primary assigns a serial order to mutations and applies them to its local
state.
▪ The primary forwards the write request (and serial order) to all secondary
replicas, which apply the mutation in the same order.
▪ Secondaries reply to the primary; the primary replies to the client. (Figure
6.19 illustrates this).
o Record Appends: GFS supports atomic appends where a client specifies only the
data; GFS appends it at least once atomically at an offset of its choosing and returns
the offset to the client. This is crucial for concurrent producer-consumer queue
applications.
4. Fault Tolerance:
o Checksumming: Each 64 KB block within a chunk has checksums for data integrity
verification.
5. Interface:
o GFS provides a familiar file system interface but it's not strictly POSIX-compliant. It
includes custom operations like snapshot and record append.
Amazon Simple Storage Service (S3) is a highly scalable, reliable, and low-latency data storage service
offered by Amazon Web Services (AWS). It provides an object storage model, allowing users to store
and retrieve any amount of data, at any time, from anywhere on the web.
• Diagram: Figure 6.24 (Amazon S3 execution environment, showing User, REST interface,
SOAP interface, a Bucket with multiple Objects, each Object having Key, Value, Metadata,
Access control, all on top of a Virtualization layer and underlying physical storage).
o Objects are stored in buckets. A bucket is a container for objects and has a globally
unique name.
2. Object Attributes:
o Value: The actual data content of the object (from 1 byte to 5 terabytes).
o Metadata: A set of name-value pairs that describe the object (e.g., content-type,
last-modified). Custom metadata can also be associated.
o Access Control Information: ACLs define who can access the object and what
permissions they have (read, write, etc.).
3. Access Interfaces:
o Users can interact with S3 via these interfaces using browsers, AWS SDKs, or third-
party tools.
4. Key Features:
o Scalability: Designed to handle virtually unlimited amounts of data and high request
rates.
o Durability: Engineered for 99.999999999% (11 nines) durability of objects over a
given year. This is achieved through redundant storage across multiple facilities and
devices.
o Security:
o Logging: Provides access logs for buckets for auditing and tracking requests.
o Data transfer out of S3 is charged, with pricing varying by region and volume.
o Storage is charged per GB per month, with tiered pricing (cost per GB decreases with
higher total storage).
o No charge for data transfer between Amazon EC2 and Amazon S3 within the same
region.
6. Use Cases:
o Big data analytics (as a data lake for services like Amazon EMR, Redshift, Athena).
o Disaster recovery.
S3 serves as a foundational storage layer for many AWS services and customer applications due to its
robustness, scalability, and rich feature set.
Several emerging cloud software environments, primarily open-source, aim to provide IaaS
capabilities, allowing organizations to build and manage their own private or hybrid clouds. These
environments offer alternatives to proprietary public cloud solutions and foster innovation in cloud
infrastructure management.
1. Eucalyptus:
o Key Feature: AWS compatibility, allowing tools and applications designed for AWS
EC2/S3 to be used with Eucalyptus.
2. Nimbus:
o Goal: Provide IaaS by allowing clients to lease remote resources by deploying VMs.
o Architecture: (Figure 6.27 would show Cloud client, HTTP, Service node with Nimbus
IaaS and Cumulus storage, SSH, VMM node with Control, Libvirt, Xen/KVM, VMs, and
DHCP server).
3. OpenNebula:
o Goal: Transform existing infrastructure into an IaaS cloud with flexible and modular
integration capabilities.
o Architecture: (Figure 6.28 would depict OpenNebula core, Scheduler, Drivers for
Virtualization/Network/Storage/External cloud, interfaces like Command-
line/Libvirt/Cloud interface, Local infrastructure, and External cloud).
▪ Hybrid Cloud: Supports hybrid models using cloud drivers (e.g., EC2 driver)
to supplement local resources.
4. Sector/Sphere:
o Goal: Support very large distributed data storage and simplified distributed data
processing.
o Architecture: (Figure 6.29 would show Security server, Master, Slaves, and Client,
with SSL and Data communication paths).
▪ Client provides API, tools, and a FUSE user-space file system module.
5. OpenStack:
o Key Components:
▪ OpenStack Compute (Nova): IaaS fabric controller for managing large groups
of VMs. (Architecture detailed in question 8, Figure 6.30). Uses shared-
nothing, messaging-based architecture.
These environments are crucial for fostering competition, providing flexibility for users who want to
avoid vendor lock-in, and enabling research into new cloud architectures and management
techniques.
5)
Manjrasoft Aneka is a cloud application platform designed to support the rapid development and
deployment of parallel and distributed applications. It can be deployed on private clouds (enterprise
resources), public clouds (like Amazon EC2), or hybrid combinations. Aneka aims to provide a flexible
and powerful environment for accelerating diverse workloads.
1. Core Mission:
o Build: Provides an SDK with APIs and tools for rapid application development. Allows
building runtime environments for private, public, or hybrid clouds.
o Manage: Offers management tools (GUI, APIs) to set up, monitor, manage, and
maintain Aneka compute clouds. Includes accounting and priority management
based on SLA/QoS.
o Aneka Container: A lightweight layer that interfaces with the hosting environment
(physical or virtual nodes) and manages deployed services.
o Platform Abstraction Layer (PAL): Mediates interaction with the hosting platform,
hiding OS heterogeneity. Handles infrastructure-related tasks like
performance/system monitoring, crucial for QoS.
4. Runtime Environment:
o Supports .NET on Windows and can run on Linux environments through Mono.
5. Deployment Flexibility:
o Can form a private cloud using an organization's internal network of desktops and
servers.
o Can create a hybrid cloud by combining private cloud resources with dynamically
leased public cloud resources.
6. Virtual Appliances:
o Aneka can integrate VMs and P2P network virtualization into self-configuring,
prepackaged "virtual appliances."
o These appliances contain the entire software stack (OS, libraries, Aneka) for easy
deployment of homogeneously configured virtual clusters across heterogeneous,
wide-area systems.
• GoFront Group used Aneka to create an enterprise cloud from networked PCs to accelerate
3D rendering of engineering designs using Autodesk Maya.
• Aneka Design Explorer was used for parameter sweep (rendering different images/camera
angles).
• Reduced rendering time for 2000+ frames from 3 days (on a single four-core server) to 3
hours (on a 20-node Aneka cloud).
Aneka provides a comprehensive platform for developing, deploying, and managing distributed
applications, emphasizing flexibility in programming models, runtime environments, and cloud
deployment types (private, public, hybrid).
(Relevant OCR text: Module 5, Section 6.5.3)
InterCloud resource management refers to the strategies, architectures, and mechanisms for
managing and exchanging resources between different cloud environments. This becomes crucial as
organizations adopt hybrid cloud models or need to leverage services from multiple public cloud
providers.
o Diagram: Figure 4.23 (A stack of six layers of cloud services and their providers:
HaaS, NaaS, LaaS/Security-aaS, IaaS/DaaS/CaaS, PaaS, SaaS) is foundational to
understanding what resources might be managed across clouds.
▪ Dynamically provisioning VMs from external clouds when local resources are
insufficient (bursting to the cloud).
▪ Requires common VM formats (like OVF - Open Virtualization Format) for
portability and interoperability between different cloud platforms.
o Storage Resources:
▪ Strategies for data placement and movement to minimize latency and cost.
o Network Resources:
o Cloud Brokers: Intermediaries that select and manage resources from multiple cloud
providers on behalf of users, often based on cost, QoS, or specific capabilities.
(Figure 4.26 in Module 3 depicts a cloud broker architecture).
o Need for hypervisor-agnostic VMs and cross-platform live migration (e.g., between
x86 Intel and AMD).
o Managing trust relationships between different cloud providers and between users
and multiple providers.
o Securely managing credentials and access control when resources are distributed.
7. SLA Management:
o Negotiating and monitoring SLAs when services span multiple cloud providers.
InterCloud resource management is essential for realizing the full potential of cloud computing,
enabling greater flexibility, resilience, cost optimization, and avoidance of vendor lock-in. However, it
also introduces significant technical and administrative challenges that require ongoing research and
standardization efforts.
Google App Engine (GAE), Amazon Web Services (AWS), and Microsoft Azure are three major public
cloud platforms, each with distinct characteristics, service models, and target use cases.
• Diagrams: Figure 4.20 (Google cloud platform/GAE major building blocks), Figure 4.21
(Amazon cloud computing infrastructure/AWS key services), Figure 4.22 (Microsoft Windows
Azure platform for cloud computing). Table 4.5 (Five Major Cloud Platforms and Their Service
Offerings) provides a good comparative overview.
• Focus: Designed for building and hosting scalable web applications. It abstracts away much
of the infrastructure management.
• Key Services/Features:
o Integrated services: Mail, Users (Google Accounts), Images, Cron, Task Queues.
• Strengths: Highly scalable, simplified development for web apps, robust integrated services,
free tier for small applications.
o EC2 (Elastic Compute Cloud): Virtual servers (VM instances) with various OS options.
o EBS (Elastic Block Store): Persistent block storage for EC2 instances.
o SQS (Simple Queue Service), SNS (Simple Notification Service): Messaging services.
• Strengths: Most mature public cloud, widest range of services, extensive global
infrastructure, strong ecosystem, high flexibility for developers.
• Limitations: Can have a steeper learning curve due to the vast number of services, cost
management can be complex.
• Service Model: Offers both PaaS and IaaS, with a strong integration with Microsoft's existing
enterprise software and development tools.
o Azure App Service (Web Apps, Mobile Apps, API Apps, Logic Apps): PaaS for
building web and mobile applications.
o Azure Storage (Blobs, Tables, Queues, Files, Disks): Scalable storage services.
• Strengths: Strong integration with Microsoft ecosystem, good for hybrid cloud scenarios,
comprehensive PaaS and IaaS offerings, enterprise-focused.
• Limitations: Historically, might have been perceived as more Windows-centric, though Linux
support is now extensive.
Application
Virtualization OS & Xen (for EC2) OS level / Hyper-V
Container
All three platforms offer robust solutions for various cloud computing needs, with continuous
evolution and expansion of their service portfolios. The choice often depends on specific application
requirements, existing technology stacks, desired level of control, and pricing considerations.
18. InterCloud resource management. (Revised 10-Mark Answer - aiming for better balance)
InterCloud resource management refers to the strategies and mechanisms for coordinating and
utilizing resources across multiple, distinct cloud environments. It is essential for enabling hybrid
clouds and leveraging specialized services from different providers, but presents significant
challenges in interoperability, security, and management.
1. Foundational Layers (HaaS, NaaS, LaaS): At the base, InterCloud management involves
coordinating physical hardware (HaaS), network connectivity (NaaS, e.g., extending Virtual
LANs across providers like AT&T), and secure colocation facilities (LaaS, e.g., Savvis). This
requires managing physical security and basic infrastructure across potentially different
ownership domains.J
2. Infrastructure Services (IaaS, DaaS, CaaS): This involves provisioning and integrating
compute, data, and communication services from diverse IaaS providers (e.g., AWS, Azure).
Key challenges include managing resource allocation, data synchronization, and ensuring
consistent performance when infrastructure components are sourced from multiple clouds.
3. Platform and Application Services (PaaS, SaaS): Managing resources at these higher layers
across clouds is complex. It involves deploying SaaS applications (e.g., Salesforce CRM) onto
PaaS environments (e.g., Google App Engine) which may, in turn, rely on IaaS from yet other
providers. This demands application portability, data integration across platform APIs, and
consistent user experience.
• Varying Cloud Player Perspectives (Table 4.7): Different stakeholders (IT administrators,
developers, end-users) have distinct roles and concerns when dealing with IaaS, PaaS, or
SaaS resources spread across clouds. For example, developers need robust APIs for platform
integration, while administrators focus on SLA monitoring across providers.
o The underlying software stacks (OS, file systems, databases) and runtime support
services (monitoring, scheduling, e.g., for MapReduce) in different clouds often lack
inherent compatibility.
• Security and Trust: Managing security policies, data privacy, and trust relationships across
multiple autonomous cloud providers is a critical and complex aspect of InterCloud resource
management.
In essence, InterCloud resource management aims to create a cohesive and efficient operational
environment from disparate cloud services, addressing challenges of heterogeneity, control, and
security to realize benefits like flexibility and optimized cost/performance.