This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx 

Description:

Agility in this context is defined as the ability to quickly develop and deploy an application. In theory, the speed at which your organization can develop and deploy an application on available hardware is identical to what you could deploy in a distributed environment. But in practice, this is not always the case. Having an option to use a distributed environment can be much faster for the deployment and even the development process.

Implementation:

When an organization designs code, they are essentially becoming a Software-as-a-Service (SaaS) provider to their own organization. To do that, the IT operations team becomes the Infrastructure-as-a-Service (IaaS) to the development teams. From there, the software is developed and deployed using an Application Lifecycle Management (ALM) process.

A simplified view of an ALM process is as follows:

  • Requirements
  • Analysis
  • Design and Development
  • Implementation
  • Testing
  • Deployment to Production
  • Maintenance

In an on-premise environment, this often equates to the following process map:

Requirements Business requirements formed by Business Analysts, Developers and Data Professionals.
Analysis Feasibility studies, including physical plant, security, manpower and other resources.

Request is placed on the work task list if approved.
Design and Development Code written according to organization’s chosen methodology, either on-premise or to multiple development teams on and off premise.
Implementation Code checked into main branch.

Code forked as needed.
Testing Code deployed to on-premise Testing servers.

If no server capacity available, more resources procured through standard budgeting and ordering processes.

Manual and automated functional, load, security, etc. performed.
Deployment to Production Server team involved to select platform and environments with available capacity.

If no server capacity available, standard budgeting and procurement process followed.

If no server capacity available, systems built, configured and put under standard organizational IT control.

Systems configured for proper operating systems, patches, security and virus scans.

System maintenance, HA/DR, backups and recovery plans configured and put into place.
Maintenance Code changes evaluated and altered according to need.

In a distributed computing environment like Windows Azure, the process maps a bit differently:

Requirements Business requirements formed by Business Analysts, Developers and Data Professionals.
Analysis Feasibility studies, including budget, security, manpower and other resources.

Request is placed on the work task list if approved.
Design and Development Code written according to organization’s chosen methodology, either on-premise or to multiple development teams on and off premise.
Implementation Code checked into main branch.

Code forked as needed.
Testing Code deployed to Azure.

Manual and automated functional, load, security, etc. performed.
Deployment to Production Code deployed to Azure.

Point in time backup and recovery plans configured and put into place.(HA/DR and automated backups already present in Azure fabric)
Maintenance Code changes evaluated and altered according to need.

This means that several steps can be removed or expedited. It also means that the business function requesting the application can be held directly responsible for the funding of that request, speeding the process further since the IT budgeting process may not be involved in the Azure scenario.

An additional benefit is the “Azure Marketplace”, In effect this becomes an app store for Enterprises to select pre-defined code and data applications to mesh or bolt-in to their current code, possibly saving development time.

Resources:

Whitepaper download- What is ALM?  http://go.microsoft.com/?linkid=9743693 

Whitepaper download - ALM and Business Strategy: http://go.microsoft.com/?linkid=9743690 

LiveMeeting Recording on ALM and Windows Azure (registration required, but free): http://www.microsoft.com/uk/msdn/visualstudio/contact-us.aspx?sbj=Developing with Windows Azure (ALM perspective) - 10:00-11:00 - 19th Jan 2011