Microsoft formally rolled out developer enhancements for its Windows Azure Cloud platform at the Tech-Ed conference in New Orleans Monday. The company spotlighted support for .NET 4 and Visual Studio 2010 that allows .NET developers to begin to work on Microsoft's cloud computing platform. Important
As Azure matures, IT shops will need to address differences in developing for Microsoft's cloud platform. Some developers may not be used to building services ready for massive scaling and federated security access, say some Microsoft engineers, but the company is updating tools and providing guidance on best practices to ease the transition.
During the TechEd keynote, Microsoft announced an update to Azure Tools and a Software Development Kit with full support for .NET Framework 4 and Visual Studio 2010 (VS2010).
"Azure now supports running .NET 4 applications in the runtime," said Scott Densmore, software development engineer at Microsoft. "You can use parallel libraries and any of the new .NET 4 features – like routing and IntelliTrace for logging and debugging applications in the actual cloud."
On the tooling side, VS2010 support means you can monitor Azure applications in the Server Explorer and publish applications to the cloud directly from Visual Studio, Densmore said.
When building applications and services for Windows Azure, or porting over new ones, developers need to consider aspects they may not have thought about in the non-cloud world, said Eugenio Pace, senior program manager at Microsoft's Patterns & Practices group. Pace has recently been working on a Windows Azure Architecture Guide.
"For example, you need to be aware of network use and latency issues that are unavoidable simply because you're running on a different datacenter," said Pace. "If you build services that are very chatty with very fine-grained interfaces then you will probably have some issues because each interaction will have to go across the network."
These are not issues just for Azure, but for cloud computing in general, said Pace. Where most developers are used to running on private datacenters with low latency and free bandwidth, such things could be taken for granted. But on a cloud platform bandwidth is metered and applications take up space in someone else's datacenter.
One of the keys in keeping Azure costs down is designing services to scale.
"If you're building a service that is targeted to millions of users and massive scalability is a requirement," said Pace, "then you will probably look into design patterns that favor asynchronous processes." This type of design pattern could make use of the multi-core parallel processing features that .NET 4 now brings to Azure. However, some development shops might have to rework their application code to do this.
Another area where developers will have to think a bit differently is application security – things like identity and authentication, said Pace.
AppFabric Access Control
Azure lets IT shops build multi-tenant applications, which means they can run multiple client views of one app, each supporting multiple users, which in turn need individual access rights.
For this, the Azure team built AppFabric Access Control which manages identity from a centralized point, said Clemens Vasters, principal technical lead on Windows Azure platform AppFabric. While some API configuration is involved, Access Control tries to leverage existing identity information. For example a client of an ISV running an application on Azure may manage employee access rights in Active Directory, said Vasters.
"We need to have a service that trusts the client's Active Directory" said Vasters, ''and the knowledge that they have about the organizational structure leverages that by issuing tokens with information about the customers and then gives that to Access Control."
On the back end, a set of rules in access control can be configured to grant access based on the tokens and groups associated with a user. The system is configured through a management API at the moment. Vasters said there will be a console for Access Control in the next AppFabric release.