Since Cloud computing has taken off and many companies now provides hosted
environments that you can use for putting up your application “up there”,
Microsoft too provides its own set of services that you can take advantage of.
Named as the Windows Azure Platform or simply Azure, this offers a platform on
which you simply develop your custom application or product and let the
infrastructure be managed by Microsoft and the platform itself. For instance, if
you're planning to build the next big web or social site, you can start off on
Azure. The advantage of this would be that you don't need to invest in the
infrastructure (servers, software, bandwidth, etc.) when starting up nor have to
maintain it (security, updates, etc.) and people to do it. As the application
requirements grow or reduce you can simply provision or de-provision (both
automatically or manually) the infrastructure to scale up or down as needed.
Direct Hit! |
Applies To: Cloud app developers |
Azure is a combination of a bunch of different “products” that you use in the
cloud. At the base is Windows Azure — a specialized version of Windows 2008 and
customized Hyper-V that runs on thousands of servers in Microsoft datacenters.
This specialized version runs a “fabric” — a way of tying all these different
servers together to provide one huge environment for each application. Apps can
request more or less resources from this huge fabric as required and will be
instantly given since there is no need to actually provision a server at that
time — it is just picked up the existing “pool”. Windows Azure allows you to run
almost any app that can run on the Windows platform — Windows apps, websites
built in ASP.NET or PHP, Java apps and even as background “services”.
The same methodology continues for storage as well. SQL Azure is the second
main component of the Azure platform and provides data storage facilities.
Comparative to an RDBMS, SQL Azure lets you store relational data, blobs and
even objects into it. SQL Azure also allows storage of other types of data and
features such as indexes, stored procedure and triggers. Developers already
familiar with ADO.NET can easily make their apps use SQL Azure. Operational
details of managing the database are taken care of by the cloud.
The third main component of the Azure platform is the AppFabric. This
basically is a set of infrastructure “services” that can be used by apps running
on Windows Azure to expose important functionality from the cloud to the
Internet. For this, there are two sub-services that can be used. The first is a
“Service Bus” that allows developers to expose endpoints in SOAP or REST formats
as a URL that can then be used by other apps anywhere on the internet. For
instance, if you're hosting a financial app on the cloud, you could expose a
currency converter service from the cloud that can be used by banks around the
world. The second is an “Access Control” service that authenticates external
calls and ensures that can access and use only what they are allowed to.
Apps hosted in the cloud work with different components of Azure |
Windows Azure lets you create instances of what are known as “roles”. Azure
basically has two role types — Web and Worker. Web role is hosted within IIS and
usually hosts a Web based application or service — such as a Web site in ASP.NET
or PHP or a Web/WCF Service. The Worker role can host any kind of app that does
not need IIS. For instance, you can even go ahead and host Apache web server in
the Worker Role! Each role when created is assigned some “resources” such as the
space, the processing power and memory it has.
When the needs of the apps grow — say if the web site becomes popular and
traffic increases — you can go ahead and increase the number of roles that are
running your application. By virtually assigning a new bunch of such roles, the
application scales up (or down, if you need to reduce it) very quickly. So if
your site is popular during say, US work timings, you can have the roles
increase during that time and decrease when it becomes night in that part of the
world.
Each app can have their own set of “instances” or “roles” as they need |
Enterprise Cloud offering has been in the works for a while now and in July
2010, Microsoft announced the availability of a “Cloud-in-a-box” or cloud
appliance that runs the Azure platform. However, this is not your typical set of
rack servers that act as a few nodes. This is a complete and standalone
datacenter in a box — the box being a customized shipping container — that hosts
thousands of servers. Naturally this cloud in a box is aimed at ISPs, humungous
enterprises and governments that wish to run their own private cloud or provide
their own customized cloud offerings based on Azure.
Azure is a powerful and easy way to get into cloud based custom applications.
With built in tools in Visual Studio and the millions of developers and users
familiar with Windows, SQL and .NET, using Azure for a highly scalable app
infrastructure is very compelling with minimum of your own investment.