Saturday, July 30, 2011

Cloud Types

So far, we had an overview of microsoft cloud storage and its types. Letz focus on 3 different types of Cloud. They are:
  1. Public Cloud
  2. Private Cloud
  3. Hybrid Cloud
Public Cloud
Cloud storage means different things to different people depending on how it’s implemented. The most common implementation is a ‘public cloud’, which is essentially storage capacity accessed through the internet or a wide area network (WAN) connection, and purchased on an as-needed basis. Users can expand capacity almost without limit, by contacting the provider, which typically operates a highly scalable storage infrastructure, sometimes in physically dispersed locations. Itz from an off-site third-party provider who shares resources and bills on a fine-grained utility computing.

Private Cloud
Private cloud (also called internal cloud or corporate cloud) is a marketing term for a proprietary computing architecture that provides hosted services to a limited number of people behind a firewall. Advances in virtualization and distributed computing have allowed corporate network and datacenter administrators to effectively become service providers that meet the needs of their "customers" within the corporation. Marketing media that uses the words "private cloud" is designed to appeal to an organization that needs or wants more control over their data than they can get by using a third-party hosted service such as Amazon's Elastic Compute Cloud (EC2) or Simple Storage Service (S3) or Windows Azure.

Hybrid Cloud
A hybrid cloud environment consisting of multiple internal and/or external providers will be typical for most enterprises

Sunday, July 17, 2011

Azure Queue

In general, Queue stores messages that may be read by any client who has access to the storage account. Azure queue is a FIFO queue, so when you peek/get a message, it returns the first message (earliest message by time) that was inserted into the queue, problem is this is not guaranteed, so you need to carefully plan your application.

When a new consumer requests a message in Azure queue, the next available visible message is sent to it. In case a consumer asks for a 30sec processing time, but fails to delete the message during this time, the message is marked visible again by the queue and is made available to the next consumer. If the consumer tries to delete a message after the timeout, the queue checks the ‘popreceipt’ to see if it indeed is the most recent requester of the message, if not an exception is thrown.

Azure queue can contain an unlimited number of messages, each of which can be up to 8 KB in size. Messages are generally added to the end of the queue and retrieved from the front of the queue, although first in, first out (FIFO) behavior is not guaranteed.

Windows Azure Queue provides a reliable message delivery mechanism. It provides a simple and asynchronous work dispatch mechanism, which can be used to connect different components of a cloud application. The Windows Azure Queues are highly available, durable and performance efficient. Its programming semantics ensure that a message can be processed at least once. Furthermore, Windows Azure Queue has a REST interface, so that applications can be written in any language and they can access the queue at anytime from anywhere in the Internet via the web.

Saturday, July 9, 2011

Azure Table

Windows Azure Table storage causes a lot of confusion/query among developers becaz of their traditional RDBMS work experience. Most of their experience with data storage is with relational databases that have various tables, each containing a predefined set of columns, one or more of which are typically designated as identity keys

By design, Windows Azure Table services provides the potential to store enormous amounts of data, while enabling efficient access and persistence. A table doesn’t have a specified schema. It’s simply a structured container of rows/entities either stores one particular type or rows with varying structures in a single table, as shown in the attached image. Windows Azure Tables use keys that enable efficient querying and load balancing when the table service decides time to spread your table over multiple servers. How?

In Windows Azure Tables, the string PartitionKey and RowKey properties work together as an index for the table, so when defining them, you must consider how your data is queried. Each entity in a table must have a unique PartitionKey/RowKey combination, acting as a primary key for the row. PartitionKey is used to fetch the result from query. Also used for physically partitioning the tables, which provides for load balancing and scalability. Letz watch an illustration.

Letz considern EmployeeMaster and has PartitionKeys that correspond to job designation types, such as Director, Manager, Developer, etc. During DeveloperSummit, the rows in Developer partition might be very busy (hope of having niche developers!). The service can load balance EmployeeMaster table by moving the Developer partition to a different server for better handling the many requests made to that partition. If you anticipate more activity on that partition than a single server can handle, you should consider creating more-granular partitions such as DeveloperJunior and DeveloperSenior. This is because the unit of granularity for load balancing is the PartitionKey.

Isn't it Cool for load balancing and scalability? Cloud storage developers just deal with data, data, data.. BigData !

Sunday, July 3, 2011

Azure Blob

Binary Large Object (BLOB) is one of the four core storage services that are secure, scalable and easy to access. Itz the simplest way to store text or binary data with Windows Azure.

As the concept, each storage account has access to blob storage. For each account there can be 0..n containers. Each container contains the actual blobs, which is a raw byte array. Containers can be public or private. In public containers, the URLs to the blobs can be accessed over the internet while in a private container, only the account holder can access those blob URLs.

Each Blob can have a set of metadata set as a NameValueCollection of strings. Key terms are explained in the below list:

Storage Account – All access to Windows Azure Storage is done through a storage account. This is the highest level of the namespace for accessing blobs An account can have many Blob Containers

Blob Container – A container provides a grouping of a set of blobs. The container name is scoped by the account.

Blob – Blobs are stored in and scoped by Blob Containers. Each blob can be up to 50GB. A blob has a unique string name within the container. Blobs can have metadata associated with them, which are pairs, and they are up to 8KB in size per blob. The blob metadata can be gotten and set separately from the blob data bits