Windows Azure is a flexible platform which
supports several programming languages and that can be used to
create applications and services. The tools and technical expertise
necessary to create software applications and services in
Windows Azure are the same that are used in
conventional development (like Microsoft Visual Studio
2010 and .Net 4.0).
Additionally, Windows Azure offers support for industry norms, protocols and languages such as SOAP, REST, XML, Java, PHP, Ruby, among others.
One of the awesome features of Windows Azure is that the billing model is based on client use: you only pay the cost of the computational power you actually use for your application (pay-per-use), in terms of processing power or bandwidth. The platform also offers dynamic scalability - if a certain Web site is overloaded, additional servers can be allocated to serve the site's requests without need for any installation on those servers. When the site's load decreases, the additional servers can then be freed.
Windows Azure is already commercially available in 40 countries.
Windows Azure's hosting environment is built on Microsoft's Data Centers, geographically distributed around the planet, including locations in Europe.
Technically, we can have two types of applications hosted on Windows Azure:
- "Roles": Web Sites developed over Asp.Net/IIS7;
- Calculation Services: they can execute asynchronous operations in the background to support websites, for instance.
These are important concepts not only technically, but also because they are directly related to the cost of hosting the applications.
Besides these two types of applications available on Windows Azure, there are four types of additional services which are particularly interesting, namely:
Windows Azure Storage Services - Data Storage
O Windows Azure Storage Service allows data to be stored in four different ways:
- Binary Large Objects (BLOBs) - used to store binary information (like documents and images);
- Queues - message queues, which can be used to exchange information between the different services developed on the Azure platform;
- Tables - used to store structured information, it is a mechanism similar to SQL tables, but it supports high availability and scalability requirements;
- Windows Azure Drive - allows applications which are hosted on Windows Azure access VHD images as if they were local hard drives. The VHD files themselves are stored as BLOBs.
Windows Azure AppFabric - Application Services
Windows Azure AppFabric is a middleware platform which supports the development, implementation and management of applications and services in the Windows Azure platform. This middleware platform allows the programmer to use a set of additional functionalities beyond the existing base features of the platform and it is the basis of the Platform-as-a-Service offer (PaaS) of Windows Azure
Windows Azure AppFabric is made up of five separate components:
- Service Bus - used for connectivity and exchanging messages in a secure way between services and applications, even behind firewalls;
- Access Control - used for access and identity management (centralized or federated);
- Caching - used for caching data Windows Azure;
- Integration - used for integration between common systems, as well as Business Activity Monitoring (BAM), rules engines and the creation of processing pipelines for B2B;
- Applications - used to automate the development and management of several applications as if they were one logical entity, and to host services and workflows.
These powerful features increase the productivity in application development by providing higher abstraction for building end-to-end applications, and simplifies and maintenance of the application as it takes advantage of advances in the underlying hardware and software infrastructure.
An additional feature worthy of mentioning is Windows Azure Connect, which enables a secure connection to be made between the local network of an organization and the machines hosted on Windows Azure in any geographical location. This is especially interesting because it allows local applications to work together with applications hosted in the Cloud, making it easier to integrate new applications with legacy applications, where the data cannot leave the organization.
SQL Azure is a Cloud-based version of SQL Server, Microsoft's database engine. The service provides high availability, scalability and multi-tenant support. With SQL Azure, all installation, configuration and update tasks are carried out by Microsoft. Developing applications that use SQL Azure requires the same skill set as normal SQL Server development and the same data management tools.
Content Distribution Network (CDN)
Windows Azure Content Distribution Networks (CDNs) are currently used to accelerate the performance of applications or Web Sites that have global visitors, storing copies of those applications or Web Sites in several geographical locations, which are then used seamlessly by the users which are closest to those locations. This way, CDNs increase the reliability and performance of applications and Web Sites hosted on Windows Azure.