Cloud Services !! What’s the immediate thought that comes to your mind when you hear this term ? For me, it’s the infrastructure that you don’t need to maintain, that’s made available to you like a piece of cake on your plate. Cloud Services have evolved tremendously over the years and MSA (Microsoft Azure) to me, appears like the epitome of Cloud Services.
Before we go in detail, let’s learn about the Cloud Services a bit. It advocates providing everything-as-a-service, which further can be categorized into three:
- Infrastructure as a Service (IaaS): In this model, the infrastructure/hardware is provided as a service. Amazon EC2 is a good example, where a virtual machine is provided to the user to customize as per the needs, though you don’t need to worry about the infrastructure but software.
- Software as a Service (SaaS): Here the software is deployed on the cloud and is made available to use over the internet. The User doesn’t have to worry about it’s setup/maintenance. Eg. Mail Services, Office 365, Google Drive etc.
- Platform as a Service (PaaS): This particular type is a mix of above two, taking the best of both. Here the User is provided with a services, created and maintained by PaaS providers to help you maintain the software and infrastructure, without going into the technical complexities. Microsoft Azure, Google App Engine are good examples.
Microsoft strongly believes that PaaS has lot of potential and is promoting the same using the Microsoft Azure Platform, by providing set of services to the application developers.
Microsoft Azure’s Architecture is a huge and sophisticated concept in itself. Through this blog, I’m trying to give you guys an outline esp for the Web Developer folks out there, so it’ll be easy for you, while you create your first web application or windows service.
Microsoft Azure: An Overview
Microsoft Azure can be easily divided into three parts:
- Windows Azure: includes services related to providing a Windows Environment for running and storing the applications.
- SQL Azure: as the name suggests, includes services related to storing the relational data in the SQL server
- Windows Azure AppFabric: provides infrastructure services for the applications running on the cloud like load balancing, scaling etc.
All of the above components runs in Microsoft Data Centres located in America, Europe and Asia. Developers have the liberty to select the data centres, which they wish to choose for running their Applications.
Let’s read in detail about the Windows Azure, since that’s the one you gonna be spending most of your time with.
Windows Azure provides all the Computation and Storage services, that you need for deploying and running the
These are auto-provisioned 64 bit application containers in Windows Server Virtual Machines, for running variety of applications. These applications can be created using .NET, C++, Java, PHP and other languages. Each application runs on Azure in forms of one or more Role, running on a separate Virtual Machines. You can run three types of Roles on Compute: WebRole, Worker Role and VM Role. Web Roles are applications that run over HTTP, which includes your Web Application, Web Services etc. These run on VMs which have IIS pre-configured in it. Worker Roles are applications which run in the background, like a windows service and does the processing which in a way would help the Web Role applications. These run on VMs do not have IIS pre configured in it. VM Roles are used to load an existing Windows Sytem Image, which could be from your on premise server or any other cloud platform.
This service provides variety of storage services for storing data as Binary Long Objects, Queues for communication and Relational Tables with support of query languages.
- Fabric Controller
This is the service which actually binds the multiple Azure Servers together, to act as a single unit. The Azure Compute and Storage are then built on top of this pooled unit. The fabric controller communicates with Fabric Agent present on every server, monitors every application running on it and decides the hardware for running the application optimally. This monitoring helps the Azure to load balance, monitor and recovery.
This was a brief overview of the Azure Architecture, which will surely help you get an idea about Microsoft Azure. Once the structure is clear, it’ll be real easy for you guys to create and deploy the Web Roles and Worker Roles.
Hope This Helps!!!
To Your Coding Success