0% found this document useful (0 votes)
5 views77 pages

Module 5 Cloud Platform

The document provides an overview of Amazon Web Services (AWS) and Google App Engine (GAE), detailing their core services, including compute, storage, and messaging solutions. AWS is highlighted for its Elastic Compute Cloud (EC2) and Simple Storage Service (S3), while GAE is described as a Platform-as-a-Service (PaaS) that supports scalable web applications. Key features such as scalability, remote accessibility, and access control mechanisms are emphasized for both platforms.

Uploaded by

Sooraj S Naik
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)
5 views77 pages

Module 5 Cloud Platform

The document provides an overview of Amazon Web Services (AWS) and Google App Engine (GAE), detailing their core services, including compute, storage, and messaging solutions. AWS is highlighted for its Elastic Compute Cloud (EC2) and Simple Storage Service (S3), while GAE is described as a Platform-as-a-Service (PaaS) that supports scalable web applications. Key features such as scalability, remote accessibility, and access control mechanisms are emphasized for both platforms.

Uploaded by

Sooraj S Naik
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

Cloud Platforms

Amazon web services


AWS is a collection of web services providing developers with compute, storage,
and more advanced services. AWS is mostly popular for IaaS services and primarily
for its elastic compute service EC2 , storage service S3
Service Type: IaaS, PaaS, SaaS
Amazon Web Service

● Amazon Web Services is a platform allowing the development of flexible


applications by providing solutions for elastic infrastructure capability,
messaging, and file and data storage.
● The platform is accessible through SOAP or RESTful Web service interfaces and
provides a web-based console where users can administrate and monitor the resources
required as well as their expenses computed on a pay-as-you-go basis
1. AWS Services Overview: AWS offers a comprehensive suite of services catering to various
aspects of application development and deployment, including compute, storage, data
management, networking, and communication.
2. Core Services: Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (S3)
form the foundation of AWS, providing raw compute and storage capabilities, respectively. These
are fundamental components often used together in building applications.
3. Scalability and Elasticity: AWS offers Elastic MapReduce and Auto Scaling for smarter and more
elastic computing systems, enabling applications to dynamically scale resources based on
demand.
4. Data Management: AWS provides a range of solutions for data management, including Elastic
Block Store (EBS), Amazon SimpleDB, Amazon Relational Database Service (RDS), and Amazon
ElastiCache, catering to various data storage and management requirements, from reliable data
snapshots to structured and semi-structured data handling.
5. Networking and Communication: AWS addresses networking and communication needs through
services like Amazon Virtual Private Cloud (VPC), Elastic Load Balancing, Amazon Route 53, and
Amazon Direct Connect. Additionally, more advanced communication services such as Amazon
Simple Queue Service (SQS), Amazon Simple Notification Service (SNS), and Amazon Simple
Email Service (SES) facilitate seamless interaction between applications.
Compute services
● Compute service is the fundamental element for clod computing system.
● The fundamental service in this space is Amazon EC2, which provides infrastructure
as a service
● It has represented a reference model for several offerings from other vendors in the
same market segment
● Amazon EC2 allows deploying servers in the form of virtual machines created as
instances of a specific image
● Each virtual image comes with an already preinstalled operating system and a
software stack, and instances can be configured for memory, number of
processors, and storage.
● Users are provided with credentials to remotely access the instances and further
configure or install software if needed
Amazon machine image

● AMIs are templates from which it is possible to create a virtual image


● They are stored into Amazon s3 and are identified by a unique identifier in the form
of ami-xxxxxx and manifest XML file
● An AMI consists of a physical file system layout with predefined operating system
installed
● Amazon Ramdisk Image (ARI Image (ARi:id ari-yyyyyy))
● Amazon Kernal Image (AKI:id aki-zzzzzz)
● Which are part of the configuration of the template
EC2 instance
● EC2 instances represent virtual machines
● They are created by using AMI as template, which are specialized by selecting the
number of cores, their computing power, and the installed memory.
● The processing power is expressed in terms of virtual cores and EC2 compute
units.(ECU)
● ECU is a measure of computing power of a virtual core and it is used to express a
predictable quantity of real CPU power that can be allocated to an instance.
○ Standard instances
○ Micro instances
○ High memory instances
○ High CPU instances
○ Cluster Compute Instances
○ Cluster GPU Instances
EC2 environment
Advanced compute service

AWS cloudFormation
AWS ElasticBeanstalk
Amazon Elastic BeansTalk
Storage Services

● Amazon provides a collection of services for data storage and information


management
● The core service in this area is represented by Amazon simple storage Service
(Amazon S3)
● This is a distributed object store that allows users to store information
● The core component of S3 are two
○ Buckets
○ objects
● Bucket consists of virtual containers where to store objects, while the objects
represent the content that is actually stored
● Objects can also enriched with metadata that can be used to tag the content stored
with additional information.
S3 key concepts
S3 has been designed to provide a simple storage service accessible through a REST interface,
which is quite similar to a distributed file system, but that represents some important differences
that allow the infrastructure to be highly efficient.
● The storage is organized in a two-level hierarchy
○ S3 organizes its storage space into buckets that cannot be further partitioned
○ This means that it is not possible to create directories or other kinds of physical groupings for objects stored in a
bucket.
○ There are fewer limitation in naming objects this allows users to simulate directories and create logical
grouping
● Objects stored cannot be manipulated like standard files
○ S3 has been designed to essentially provide storage for objects that will not change over time.
○ Therefore, it does not allow renaming, modifying, or relocating an object.
○ Once an object has been added to a bucket, its content and position is immutable, and the only way to change
one of them is to remove the object from the store and add it again.
S3 key concepts

● Content is not immediately available to users


○ The main design goal of S3 is to provide an eventually consistent data store.
○ As a result, being a large distributed storage facility, changes are not immediately refl ected.
○ For instance, S3 uses replication to provide redundancy and effi ciently serve objects across the globe; this introduces latencies when
adding objects to the store—especially large ones—which are not available instantly across the entire globe.
● Request will occasionally fail
○ Due to the large distribute infrastructure being managed, requests for object may occasionally fail.
○ Under certain conditions, S3 can decide to drop a request by returning an internal server error.
○ Therefore, it is expected to have a small failure rate during day-to-day operations, which generally it does not identify a persistent
failure.
○ Access to S3 is provided with RESTful Web services. These express all the operations that can be performed against the storage in
the form of HTTP requests (GET, PUT, DELETE, HEAD, and POST), which operate differently according to the element they
address.
○ As a rule of thumb, PUT/ POST requests add new content to the store, GET/HEAD requests are used to retrieve content and
information, while DELETE requests are used to remove elements or information attached to it.
S3 key concepts

Resource Naming
○ Buckets, objects, and attached metadata are made accessible through a REST interface.
○ Therefore, they are represented by Uniform Resource Identifi ers (URIs) under the [Link]
domain.
○ All the operations are then performed by expressing the entity they are directed to in the form of a
request for a URI.
○ Amazon offers three different ways of addressing a bucket
1. Compute Services EC2 important points Recap)
1. Amazon EC2 (Elastic Compute Cloud): As a core component of cloud
computing, EC2 offers Infrastructure-as-a-Service (IaaS) solutions, enabling the
deployment of virtual servers known as instances. These instances are created
from specific images, preconfigured with an operating system and software
stack.
2. Customizable Configuration: EC2 instances can be tailored to meet specific
requirements by adjusting parameters such as memory, processor capacity, and
storage. This flexibility allows users to optimize their computing resources
according to workload demands.
3. Remote Accessibility and Management: Users are granted remote access to
EC2 instances via credentials, facilitating configuration adjustments and
software installations as necessary. This remote accessibility streamlines
administration tasks, enhancing efficiency in managing cloud-based computing
resources.
Storage services -S3 important points Recap
Amazon Simple Storage Service (S3): S3 is a distributed object store designed for storing data in
various formats. It consists of two core components: buckets and objects. Buckets serve as virtual
containers for storing objects, which are the actual content stored within S3. Objects can be
enriched with metadata for additional information.

Storage Organization: S3 organizes storage into buckets, which cannot be further partitioned
into directories. While objects within a bucket can simulate directories through naming
conventions, the fundamental structure remains flat.

Immutability of Objects: Objects stored in S3 are immutable once added to a bucket. This
means they cannot be renamed, modified, or relocated within the bucket. To make changes, an
object must be removed and re-added.

Eventual Consistency: S3 aims to provide eventual consistency, meaning changes may not be
immediately reflected globally due to its distributed nature. This can result in latency, especially for
large objects, as S3 replicates data across locations.
Storage services S3 important points Recap
Intermittent Request Failures: Due to the large distributed infrastructure, requests to S3
may occasionally fail, resulting in internal server errors. However, these failures are
generally transient and are not persistent.

RESTful Interface: Access to S3 is provided through RESTful web services, allowing


operations such as GET, PUT, DELETE, HEAD, and POST. These operations enable users
to manage buckets, objects, and metadata effectively.

Resource Naming: S3 resources are accessible via uniform resource identifiers (URIs)
under the [Link] domain. Three different naming conventions are provided:
canonical form, subdomain form, and virtual hosting form, each with specific restrictions and
considerations for usage and effectiveness.
Buckets:

● A bucket is a container of objects. It can be thought as a virtual drive hosted on


the S3 distributed storage, which provides users with a flat store where to add
objects.
● Buckets are top-level elements of the S3 storage architecture and do not support
nesting.
● This means that is not possible to create “sub-buckets” or other kinds of physical
divisions.
● A bucket is located into a specific geographic location and eventualaly
replicated for fault tolerance and better content distribution.
● Users can select the location where to create the buckets , which by
default are created in US data centers.
Buckets:

● Once a bucket is created, all the objects that belong to the bucket will be
● stored in the same availability zone of the bucket. Users create a bucket by sending a PUT request to
● [Link] with the name of the bucket, and if they want to specify the availability
zone,
● additional information about the preferred location. The content of a bucket can be listed by sending a
GET request by specifying the name of the bucket
● Once created, the bucket cannot be renamed or re-located.
● If it is necessary to do so, the bucket needs to be deleted and recreated. The deletion of a bucket is
performed
● by a DELETE request, which turns to be successful if and only if the bucket is empty.
Object Management:
1. Objects constitute the content elements stored in S3. Users either store files or push to a S3 text stream representing
the object’s content.

2. An object is identified by a name that needs to be unique within the bucket in which the content is stored. The name
cannot be longer than 1024 bytes when encoded in UTF-8, and it allows almost any character. Since buckets do not
support nesting, even characters normally used as path separators are allowed.

3. This actually compensates for the lack of a structured file system since directories can be emulated by properly naming
objects.

4. Users create objects via a PUT request that specifies the name of the object together with the bucket name, its content,
and additional properties. The maximum size of an object is 5 GB.

5. Once an object is created, it cannot be modified, renamed, or moved into another bucket. In order to retrieve an object,
it is possible to retrieve it via a GET request, while its deletion is performed via a DELETE request.
Object Management:

● Objects can be tagged with metadata, which are passed as properties of the PUT request.
● Such properties are retrieved either with a GET request or with a HEAD request, which only returns the object’s
● metadata without the content.
● Metadata are both system- and user-defi ned: the fi rst ones are used
● by S3 to control the interaction with the object, while the second ones are meaningful to the user, who
● can store up to 2KB per metadata property represented by a key-value pair of strings.
Access Control and Security.

Amazon S3 allows controlling access to buckets and objects by means of Access Control
Policies (ACPs). An ACP is a set of grant permissions that are attached to a resource expressed
by means of an XML configuration file.
A policy allows defining up to 100 access rules, each of them granting one of the available
permissions to a grantee.
Currently, five different permissions can be used:
● READ: allows the grantee to retrieve an object and its metadata and to list the content of a
bucket as well as getting its metadata.
● WRITE: allows the grantee to add an object to a bucket as well as modify and remove it.
● READ_ACP: allows the grantee to read the ACP of a resource.
● WRITE_ACP: allows the grantee to modify the ACP of a resource.
● FULL_CONTROL: all of the above.
Communication Services

Virtual Networking
Messaging
. Access Control and Security:

● Access to buckets and objects is controlled through Access Control Policies (ACPs),
defined by XML configuration files.
● ACPs grant permissions to grantees, allowing actions such as READ, WRITE,
READ_ACP, WRITE_ACP, and FULL_CONTROL.
● Grantees can be single users or groups, with options for all users, authenticated users,
and log delivery users.
● S3 attaches a default ACP granting full control permissions to the resource owner only.
● ACPs can be modified using GET and PUT methods, or predefined canned policies
can be used during resource creation.
● For finer-grained access control, signed URIs can be defined to grant temporary access
tokens to nonauthenticated users for limited periods.
Messaging

The three different types of messaging services offered are

Amazon Simple Queue Service (SQS),

Amazon Simple Notification Service (SNS),

Amazon Simple Email Service (SES).


Amazon Simple Queue Service (SQS):

· SQS is a fully managed message queuing service that enables decoupling and
scaling of distributed systems components.

· It allows applications to asynchronously send, store, and process messages


between distributed components, promoting reliability and scalability.

· SQS provides features such as message durability, multiple message types, and
flexible message processing.
Amazon Simple Notification Service (SNS):

· SNS is a fully managed pub/sub messaging service that enables the sending and
receiving of notifications from cloud-based applications.
· It facilitates the communication between distributed components and services by
delivering messages to a variety of endpoints, including HTTP/S, email, SMS, and
more.

· SNS supports fan-out and fan-in messaging patterns, allowing for the broadcast of
messages to multiple subscribers and the aggregation of messages from multiple
publishers.
Amazon Simple Email Service (SES)

· SES is a cloud-based email sending service that allows developers to send and
receive emails without managing email infrastructure.

· It provides a reliable and scalable email delivery platform with features such as
email authentication, inbox placement monitoring, and email analytics.

· SES can be integrated with applications to send transactional, marketing, and


notification emails, ensuring high deliverability rates and compliance with email
sending best practices.
Google App Engine(GAE)

● Architecture and core concepts


● Infrastructure
● Runtime ENVIRONMENT
● Storage
● Application SERVICES
● Compute SERVICES
● Application life cycle
Google App Engine (GAE)
● Freely available
● Datacenters across the globe and every regions have many datacenters
● A Platform as a Service (PaaS) for deploying applications.
● Features
○ Automatic scaling,
○ built-in security
○ easy deployment

Architecture of Google App Engine

● Standard Environment: Supports specific languages (Python, Java, Go, [Link]).


● Flexible Environment: Supports custom runtimes and Docker.
● Components of GAE:
○ Application Servers
○ Datastore (Cloud SQL, Firebase)
○ Load Balancer
○ Task Queues & Cron Jobs
Google App Engine
● Google AppEngine is a Platfom-as-a-Service implementation providing services for
developing and hosting scalable Web applications.
● AppEngine is essentially a distributed and scalable runtime environment that leverages
Google’s distributed infrastructure to scale out applications facing a large amount of
requests by allocating more computing resources to them and balancing the load among
them.
● The runtime is completed by a collection of services allowing developers to design and
implement applications that naturally scale on AppEngine.
● Developers can develop applications in Java, Python, and Go, a new programming
language developed by Google to simplify the development of Web applications.
● Application’s usage of Google resources and services is constantly metered by AppEngine,
which bills users when their applications exceed free quotas.
Architecture and Core Concepts
● Infrastructure
● Runtime Environment
○ Sandboxing
○ Supported Runtime

● Storage
● Application Services
● Compute Services
● Application Life Cycle
Infrastructure
● AppEngine hosts web applications, and its primary function is to serve user requests
efficiently.
● In order to do so, AppEngines infrastructure takes advantage of the many servers
available within the googles datacenters and
● For each HTTP request, locate the servers hosting the application, process the
requests, and evaluate their load; if necessary, allocate more resources (servers);
otherwise, redirect the resources to an existing server.
Google App engine

Runtime Environment
The runtime environment represents the execution context of applications hosted on
AppEngine. With reference to the AppEngine infrastructure code, which is always active
and running, the runtime comes into existence when the request handler starts to execute
and terminates once the handler has completed.
Runtime Environment
Sand Boxing
Supported Runtime: Currently, it is possible to develop AppEngine applications by using
three different languages and related technologies: Java, Python, and Go. AppEngine
currently supports Java 6 and developers can use the common tools for Web applications
development in Java, such as the Java Server Pages (JSP) and the applications interact
with the environment by using the Java Servlet standard. Also, access to AppEngine
services is provided by means of Java libraries that expose specifi c interfaces of provider
specifi c implementations of given abstraction layer. Developers can create applications
with the AppEngine Java SDK that allows developing application with either Java 5 or
Java 6 and by using any Java library that does not exceed the restrictions imposed by the
sandbox.
Google App Engine

Storage -
● AppEngine provides different types of storage, which operate differently according to
the volatility of the data they are designed for.
● There are three different level of storage: in memory-cach, storage for semi-
structured data, and long-term storage for static data.
● In this section, we describe DataStore and the use of static file servers, and we cover
MemCache in the application services section.
Google App Engine
Storage
Static File Servers
● Web applications are composed of dynamic and static data.
● Dynamic data is a result of the logic of the application and the interaction with the
user.
● Static data is often mostly constituted by the components that define the graphical
layout of the application (css files, plain HTML files, javascript files, images, icons,
and sound files) or data files.
● These files can be hosted on static file servers since they are not frequently modified.
Such servers are optimized for serving static content, and users can specify how
dynamic content should be served when uploading their applications to AppEngine.
Google App Engine
Storage
Data Store
● DataStore is a service allowing developers to store semi-structured data.
● The service is designed to scale and optimized to quickly access data.
● DataStore can be considered a large object database where to store objects that can be retrieved by a
specific key.
● Both the type of the key and the structure of the object can vary.
● With respect to the traditional Web applications backed by a relational database, DataStore imposes
less constraint on the regularity of the data but, at the same time, does not implement some of the
features of the relational model (such as reference constraints and join operations). These design
decisions originated from a careful analysis of data usage patterns for Web applications and have been
taken in order to obtain a more scalable and effi cient data store. The underlying infrastructure of
DataStore is based on Bigtable [93], which is a redundant, distributed, and semi-structured data store
that organizes data in the form of tables
Google App Engine
Storage
Data Store
● With respect to the traditional Web applications backed by a relational database,
DataStore imposes less constraint on the regularity of the data but, at the same time,
does not implement some of the features of the relational model (such as reference
constraints and join operations).
● These design decisions originated from a careful analysis of data usage patterns for
Web applications and have been taken in order to obtain a more scalable and effi
cient data store.
● The underlying infrastructure of DataStore is based on Bigtable [93], which is a
redundant, distributed, and semi-structured data store that organizes data in the form
of tables
Google App Engine

Application Services
UrLFetch
Google App Engine

Application Services
MemCache
● A high-performance, low-latency caching system that stores data in RAM instead of a database.
● Helps reduce database load and improve response time.
● Used for storing session data, API responses, frequently accessed queries, and computed results.

Application requests data → First, checks in Memcache.


If data exists in Memcache → Returns it immediately (fast response).
If data is not in Memcache → Fetches from database and stores in Memcache for future use.
Future requests → Retrieve data directly from Memcache instead of querying the database.
Google App Engine
Compute Services
Task Queues and Cron Jobs in Google App Engine (GAE) are used for handling background
tasks and scheduling automated jobs, improving application efficiency and scalability.
Task Queues
● Task queues allow asynchronous processing of tasks that don't need an immediate
response.
● Offload long-running operations (e.g., image processing, sending emails).
● ✅ Improve application performance by handling tasks in the background.
● ✅ Process multiple requests simultaneously without slowing down the main app.
● This will allow applications to submit a task for later execution
● This is useful for long computations that cannot be completed within the maximum response
time of a request handler.
● The service allow users to have upto 10 queues that can execute task at a configurable rate.
Google App Engine

Compute Services
● Cron Jobs
○ Sometimes the length of the computation might not be the primary reason why an
operation is not performed within the scope of the web request
○ It might be possible that the required operation needs to be performed at a specific time
of the day , which does not coincide with the time of the web request
○ In this case, it is possible to schedule the required operation at the desired time by
using the Cron Jobs Service.
○ the service operates similar to TaskQueues but invokes the request handler specified in
the task at a given time and does not reexecute the task incase of any failure.
Google App Engine
Application Life Cycle
● AppEngine provides support for almost all the phases characterizing the life cycle of an application:
development and testing, deployment, and monitoring. The SDKs released by Google provide
developers with most of the functionalities required by these tasks.
● Currently there are two SDKs available for development: the Java SDK and the Python SDK.
● Application development and testing
○ Java SDK
○ Python SDK
● Application deployment and management
○ Once the application has been developed and tested, it can be deployed on AppEngine with a
simple click or command-line tool. Before performing such task, it is necessary to create an
application identifi er, which will be used to locate the application from the Web browser by
typing the address: [Link] Alternatively, it is also possible to map
the application with a
registered DNS domain name; this is particularly useful for commercial development where
users want
to make the application available through a more appropriate name.
Microsoft Azure

● Microsoft Windows Azure is a cloud operating system built on top of Microsoft data
centers’ infrastructure and provides developers with a collection of services for
building applications with the cloud technology.
● Services range from compute, storage, and networking to application connectivity,
access control, and business intelligence.
● Any application that is built on Microsoft technology can be scaled by using the
Azure platform, which integrates the scalability features into the common Microsoft
technologies such as Microsoft Windows Server 2008, SQL Server, and [Link].
Microsoft Azure
Microsoft Azure

Fig. 9.3 provides an overview of services provided by Azure. These services can be all managed and controlled
through the Windows Azure Management Portal, which acts as administrative console for all the services of the
Azure platform. In this section, we present the core features of the major services available with Azure.
Azure Core Concepts

● The Windows Azure platform is composed by a foundation layer and a set of


developer services, which can be used for building scalable applications.
● These services cover compute, storage, networking, and identity management,
which are tied together by middleware called AppFabric.
● This scalable computing environment is hosted within Microsoft data centers and
accessible through the Windows Azure Management Portal.
● Alternatively, developers can recreate a Windows Azure environment (with limited
capabilities) on their own machine for development and testing purposes.
● In this section, we provide an overview of the Azure middleware and the services it
offers.
Azure Core Concepts

● The Windows Azure platform is composed by a foundation layer and a set of


developer services, which can be used for building scalable applications.
● These services cover compute, storage, networking, and identity management, which
are tied together by middleware called AppFabric.
● This scalable computing environment is hosted within Microsoft data centers and
accessible through the Windows Azure Management Portal.
● Alternatively, developers can recreate a Windows Azure environment (with limited
capabilities) on their own machine for development and testing purposes. In this
section, we provide an overview of the Azure middleware and the services it offers.
Azure Core Concepts

Compute Services
Compute services constitute the core components of Microsoft Windows Azure, and they
are delivered by means of the abstraction of roles. A role is runtime environment that is
customized for a specific compute task. Roles are managed by the Azure operating system
and instantiated on demand in order to address surges in application demand. Currently,
there are three different roles: Web role, Worker role, and Virtual Machine (VM) role.
Microsoft Azure
Web Role
● The web role is designed to implement scalable web applicationsweb role srepreset
units of deployment of web application within the Azure infrastructure
● The Web role is designed to implement scalable Web applications.
● Web roles represent the units of deployment of Web applications within the Azure
infrastructure.
● They are hosted within the IIS 7 Web Server, which is a component of the
infrastructure that supports Azure.
● When Azure detects peak loads in the request made to a given application, it
instantiates multiple Web roles for that application and distributes the load among
them by means of a load balancer
Microsoft Azure

Worker Role
Microsoft Azure
● Virtual Machine Role
● The Virtual Machine Role allows developers to fully control the computing stack of
their compute service, by defi ningdefining a custom image of the Windows Server
2008 R2 operating system and all the service stack required by their applications.
● The Virtual Machine Role is based on the Windows Hyper-V virtualization
technology (see Section 3.6.3), which is natively integrated in the Windows server
technology at the base of Azure.
● Developers can image a windows server installation complete of all the required
applications and components, save into a Virtual Hard Disk (VHD) fi le and upload it
to Windows Azure to create compute instances on demand. Different types of
instances are available and Table 9.7 provides an overview of the options offered
during 2011–2012
Storage Services

Compute resources are equipped with local storage in the form of a directory on
the local file system that can be used to temporarily store information useful for
the current execution cycle of a role. If the role is restarted and activated on a
different physical machine, this information gets lost.
Windows Azure provides for different types of storage solutions, which
complement compute services with a more durable and redundant option if
compared to local storage. Differently from local storage, these services can be
accessed by multiple clients at the same time and from everywhere, thus
becoming a general solution for storage
Microsoft Azure
Blobs
Azure allows storing large amount of data in the form of Binary Large Objects (BLOBs)
by means of the blobs service. This service is optimal to store large text of binary fi les. Two types of blobs
are available:
1. Block Blobs. Block blobs are composed by blocks and they are optimized for sequential access
and therefore they are appropriate for media streaming. At the time of writing (during 2011-2012), blocks
are of 4MB and a single block blob can reach 200 GB of dimension.
1. Page Blobs. Page blobs are made of pages that are identifi ed by an offset from the beginning of
the blob. A page blob can be split in multiple pages or constituted by a single page. This type of blob is
optimized for random access and can be used to host data different from streaming. At the time of writing,
the maximum dimension of a page blob is 1 TB
Microsoft Azure
Azure Drive
● Page blobs can be used to store an entire fi le system in the form of a single Virtual
Hard Drive (VHD) fi le.
● This can then be mounted as a part of the NTFS fi le system by Azure compute
resources, thus providing persisting and durable storage. A page blob mounted as part
of an NTFS tree is called an Azure Drive.
Microsoft Azure
Tables
● Tables constitute a semi-structured storage solution, allowing users to store information in the form of entities
having a collection of properties.
● Entities are stored as rows into the table and identified by a key, which also constitutes the unique index built
for the table.
● Users can insert, update, delete, and select a subset of the rows stored in the table.
● Unlike SQL tables, there is no schema enforcing constraints on the properties of entities and there is no
facility for representing relationships among entities.
● Because of this, tables are more similar to spreadsheets rather than SQL tables.
● The service is designed to handle large amounts of data and query returning huge result sets.
● Two main features provide support in this sense: partial result sets and table partitions. A partial result set is
returned together with a continuation token allowing the client to resume the query for large result sets. Table
partitions allow tables to be divided among several servers for load balancing purposes. A partition is identifi
ed by a key, which is represented by three of the columns of the table.
Scientific Application and
Business Application

You might also like