Last week Microsoft’s build conference happened at California has bought lots of insights to developers in understanding Microsoft future plans. I had chance to see it live by streaming it on my laptop. Out of this conference, HTML 5 is going to take lot more importance along with XAML in developing new type of application in Windows 8 – what is called as Metro Style Application. This also indicates that Silverlight is not dead completely because of HTML 5 – because the new runtime called as WinRT (windows runtime) in windows 8 also supports applications based on XAML. This is something good news for Silverlight developers.
The two main areas of focus that remains for Microsoft is mobile/tablet computing (through windows 8) and cloud computing. While Windows 8 is still at early stages of developments, cloud computing by Microsoft – Windows Azure is doing well and pretty much in good shape currently. But Microsoft has more plans to upgrade and add new features of Windows Azure. I being a naïve developer in building azure application, showed interest in learning Windows Azure by attending sessions of Mark Russinovich. Its really very good session by him on windows azure. I have learned about basics and some advanced concepts like Fabric Controller. So to share what I have learned from him, I am blogging this post.
Before diving into cloud computing and windows azure platform, check this dilbert cartoon.
There are terminologies like IaaS, PaaS, SaaS etc. out of which IaaS is relatively older to others.
Infrastructure as a Service (IaaS): Basic compute and storage resources. These are like on-demand servers. Some of the examples are Amazon EC2, VMWare vCloud
Platform as a Service (PaaS): Cloud application infrastructure. These are like on-demand application-hosting environment. Some of the examples are Google AppEngine, Salesforce.com, Windows Azure
Software as a Service (SaaS): These are cloud applications like Office 365, GMail, Microsoft Office Web Companions
Below figure helps us to understand what are the different things that can be managed for us by IaaS, PaaS (Windows Azure) and SaaS
Below one shows developer work flow steps under IaaS
And this one shows developer work flow steps required for PaaS (Windows Azure)
So what is windows azure?
It is an operating system for the data center. It treats data center as a machine and handles resource managements, provisioning and monitoring. It manages application life cycle and allows developers to concentrate on business logic. It provides shared pool of compute, disks and network. It provides common building blocks like reliable queuing, simple structured storage, SQL storage, application services like access control and connectivity.
Windows Azure Platform Building Blocks
- Windows Azure Compute (This is responsible for your application execution)
- Web Role: IIS7 and ASP.NET in Windows Azure-supplied OS (For hosting web applications, web services etc)
- Worker Role: arbitrary code in Windows Azure-supplied OS. (For hosting middle tier, background processing engines etc.)
- VM Role: uploaded VHD with customer-supplied OS. (This is really a cool one, because you can provide your own OS in a VHD file and upload in cloud – also server level configuration will be in our control)
- Windows Azure Storage (This is like our local file storage – uses simple and familiar programming interfaces - REST (HTTP and HTTPS), .NET accessible)
- BLOBs (Provide a simple interface for storing named files along with metadata for the file)
- Tables (Provide lightly structured storage with a set of entities that contain a set of properties)
- Queues (Provide reliable storage and delivery of messages)
- Windows Azure CDN (Yet to discover more about this, but this is content caching purpose)
- SQL Azure (Cloud equivalent of SQL Server – More to be learned by me)
- AppFabric PaaS Middleware Services (And again this is also yet to discover by me)
Datacenter is made up for several clusters and each cluster has approximately 1000 rack-mounted server. Each cluster is maintained by a Fabric Controller (FC)
Fabric controller is responsible for blade provisioning, management and Service deployment and life cycle
Think of fabric controller as windows kernal. Windows kernal manages Windows Server, and fabric controller manages Windows Azure (which is datacenter OS)
Below analogous mapping will help you understand the azure terminologies:
Here is the picture that shows traditional data center( Once stack is called cluster and such clusters are placed in one data center)
Microsoft data centers evolution:
Check this images that shows current generation data centers:
That’s all from todays post, will keep posting related to this as and when I learn and have time to share.
Btw, one more thing that Microsoft published recently is: they have plans to offer the Windows Azure Platform Appliance, which can be hosted in non-Microsoft data centers. his will enable resellers, such as HP, Dell, Fujitsu and eBay, to offer cloud services based on the Microsoft Azure Platform.