Windows Azure - Planning Architecture Compute, Database and Storage

Windows Azure has created lot of interest and folks are looking forward to move to Azure. I belong to Operation Engineer community and this community has lots of excitement over Azure because kind of scalability, fault tolerance and business continuity it provides is amazing. Top of that Azure made life easier as no more waiting for months to procure HW and then after maintaining long server inventory.

One of the first and most common questions I hear from PM / Business and Operation team is how to plan Infrastructure for Azure. In this article I would try to answer some of the basic concept of Azure on compute and infrastructure Planning, costing and SLA.

 

What is Windows Azure?

Windows Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. You can build applications using any language, tool or framework.
And you can integrate your public cloud applications with your existing IT environment.Windows Azure delivers a 99.95% monthly SLA and enables you to build and run highly available applications without focusing on the infrastructure. It provides automatic OS and service patching, built in network load balancing and resiliency to hardware failure.

The core services needed for an Azure Application deployment are following. We will discuss about each of them in detail.

  • Windows Azure Compute         
  • SQL Azure         
  • Storage                  

 

This is how a typical Windows Azure Service Architecture looks like

 

Windows Azure Compute

Each Compute instance is a virtual machine that isolates you from other customers. Once Compute resources are assigned to your application, Windows Azure automatically handles network load balancing and failover to provide continuous
availability. Windows Azure provides a 99.95% monthly SLA. for Compute services.

Applications in Windows Azure utilize Compute resources through one or more Compute containers called “roles”. Roles come in three different types: Web, Worker and Virtual Machine (VM). Some common uses or application patterns for these
roles include:

  • Web Roles in Windows Azure are special purpose, and provide a dedicated Internet Information Services (IIS) web-server used for hosting front-end web applications. You can quickly and easily deploy web applications to Web Roles and then scale your Compute capabilities up or down to meet demand.
  • Worker Roles, Applications hosted within Worker roles can run asynchronous, long-running or perpetual tasks independent of user interaction or input. It's more like backend processing or business logic.
  • Virtual Machine (VM) roles, now in Beta, enable you to deploy a custom Windows Server 2008 R2 (Enterprise or Standard) image to Windows Azure. You can use the VM role when your application requires a large number of server OS customizations and cannot be automated. The VM Role gives you full control over your application environment and lets you migrate existing applications to the cloud. Click here for more information about the VM role.

 To conclude this is place where your FE and MT will go. You may have one Web Role performing role of FE and MT. Or you may like to keep your FE on web role and MT on worker role.

Pricing and Metering for Compute:

Virtual Machine Size

CPU Cores

Memory

Disk Space for Local Storage Resources in Web and Worker Roles

Disk Space for Local Storage Resources in a VM Role

Allocated Bandwidth (Mbps)

Cost Per Hour

ExtraSmall

Shared

768 MB

19 GB (6 GB reserved for system files)

20 GB

5

$0.02

Small

1

1.75 GB

224 GB (6 GB reserved for system files)

165 GB

100

$0.12

Medium

2

3.5 GB

489 GB (6 GB reserved for system files)

340 GB

200

$0.24

Large

4

7 GB

999 GB (6 GB reserved for system files)

850 GB

400

$0.48

ExtraLarge

8

14 GB

1.9 TB (6 GB reserved for system files)

1890 GB

800

$0.96

 

Compute hours are charged only when your application is deployed. Compute hours are billed based on the number of clock hours your service was deployed multiplied by the number of compute instances. hAll compute hours are converted into small instance hours when presented on your bill.

 

SQL Azure

SQL Azure is a highly available and scalable cloud database service built on SQL Server technologies. With SQL Azure, developers do not have to install, setup or manage any database. High availability and fault tolerance is built-in and no physical administration is required. SQL Azure is a managed service that is operated by Microsoft and has a 99.9% monthly SLA.

Pricing and Metering for SQL Azure Database

SQL Azure supports a flexible subscription-based pricing model and supports both a pay-as-you-go and 6 month commitment offer. SQL Azure can be purchased independently or with other Windows Azure platform products. You can provision multiple SQL Azure databases for your application(s) and can use either the Web or Business Edition offering. The Web Edition supports up to a 5 GB maximum T-SQL based relational database. The Business Edition supports up to a 150 GB maximum size T-SQL-based relational database.

Database Size

Price Per Database Per Month

0 to 100 MB

Flat $4.995

Greater than 100 MB to 1 GB

Flat $9.99

Greater than 1 GB to 10 GB

$9.99 for first GB, $3.996 for each additional GB

Greater than 10 GB to 50 GB

$45.954 for first 10 GB, $1.998 for each additional GB

Greater than 50 GB to 150 GB

$125.874 for first 50 GB, $0.999 for each additional GB

Customers are billed based on the peak database size in a day. SQL Azure Database is charged as a monthly fee for each database, but that database fee is amortized over the month and charged on a daily basis. For databases greater than 1 GB, you will be billed in the next whole gigabyte increment.

For example, if you utilized two Business Edition databases, one that was 4.4 GB and one that was 14.4 GB for 1 day during a billing month, you would be charged for a 5 GB and 15 GB database for that day, which would total $2.643. Below are the calculations:

  • 5 GB: ($9.99 for the first GB +
         $3.996 per GB for the next 4 GB) / 31 days = $0.838
  • 15 GB: ($45.954 for the first 10 GB +
         $1.998 per GB for the next 5 GB) / 31 days = $1.805

Windows Azure Storage

Storage provides secure, scalable and easily accessible storage services that remain highly available and durable. The Storage service supports virtually all types of storage needs, from structured to unstructured data, NoSQL databases, and queues. Storage is a managed service and has a 99.9% monthly SLA. Some practical uses for the Storage include:

  • BLOB (Binary Large Object) storage - BLOB Storage is the simplest way to store large amounts of unstructured text or binary data such as video, audio and images.
  • Table storage - Table Storage is used by applications requiring storing large amounts of data storage that need additional structure. While a table stores structured data, it does not provide any way to represent relationships between the data, sometimes called a NoSQL database.
  • Queue - Queues are used for reliable, persistent messaging between applications. You can use Queues to transfer messages between applications or services in Windows Azure.
  • Windows Azure Drive - Windows Azure Drive allows applications to mount a Blob formatted as a single volume NTFS VHD. You can move your VHDs between private and public clouds using Windows Azure Drive.

 Pricing and Metering for Windows Azure Storage

Standard pay-as-you-go pricing for storage

$0.125 per GB stored per month based on the daily average

$0.01 per 10,000 storage transactions

 

 

For calculating prices refer to https://www.windowsazure.com/en-us/pricing/calculator/. For more details on pricing please refer https://www.windowsazure.com/en-us/home/features/compute/.

 

I am sure you will find this article helpful. Pleaes rate this article and share your feedback. For more details please feel free to contact me at arunrakwal@yahoo.com.