Wednesday, March 17, 2010

Recently, I noticed that the in last couple of months the amount of of time that I spend on cloud computing (Microsoft Azure in particular) is increasing quite rapidly. I am currently involved in a few initiatives/projects around Microsoft Azure and I suddenly realized that cloud computing has a positive impact on the way we think about Application Lifecycle Management (ALM). When we think about cloud computing from a project delivery or operations perspective (and not only from a technical perspective) there are absolutely interesting advantages that cloud computing can bring us.

[For more information about the way we think about ALM and a better understanding of the image I am using below, have a look at this post]

From a project delivery perspective, a cloud project has the advantage that we don’t have to buy the hardware and software that we need during for the development, testing and running the application in production (because we use the compute and storage power from the cloud). Of course we have to pay for using the Azure platform but these costs are likely less compared to buying bare metal and licenses for the complete lifecycle of the application. Another advantage of using a cloud platform is the time it takes to get our environment approved and up and running which potentially decreases the time to market of the application. If we have a look at the image below which represents the lifecycle of an application we can see that less hardware and an environment that doesn’t take long to get it up and running have a positive impact on the application lifecycle of the application. From a project delivery perspective lower costs (less hardware and licenses) for the project and a decreased time to market have a positive impact on the complete lifecycle of the application (represented by arrow 1 in the image below).

Further, one of the important goals of ALM (at least in our opinion) is increasing the added value of the application for the business user. Cloud computing enables some very interesting scenarios that potentially bring a lot of value to the business user. For example, the unlimited scalability of the platform (at relative low costs) makes it possible to deliver completely new (business) services for markets that couldn’t be reached that easily in the past. Also integration between companies, networks, applications, etc. becomes much easier with applications running in the cloud. The new scenarios that we can deliver by using cloud computing potentially add extra business value to the applications we are delivering and therefore have a positive impact on the complete lifecycle of the application (represented by arrow 2 in the image below). 

value1

From an operations perspective, the fact we have less hardware and software to maintain (back-up, monitoring, patching, etc.) also has a positive impact on the lifecycle of the application (represented by arrow 3 in the image below).

So, besides all the technical challenges of cloud computing that I am very interested in, I like to think of cloud computing as “just another delivery form” for our software development projects with a very interesting positive impact on the application lifecycle of the application that we deliver.

posted on 3/17/2010 10:27:51 AM UTC  #   
 Monday, March 15, 2010

A few days ago Microsoft patterns & practices released a (preview) set of Layer Diagrams for Visual Studio that comply with their Application Architecture Guide 2.0. The diagrams are included in a simple VSIX package that can be downloaded from the Visual Studio Gallery. The image below gives you some idea about what to expect from this package. The diagram also contains a link to the complete architectural guidance on MSDN.

layer

The layer package is a great start but there might be more opportunities for integrating architectural guidance in Visual Studio 2010. Right now, the package contains 5 layers diagrams so it shouldn’t be too difficult for an architect to decide which of the layer diagrams he should choose from the toolbox. But, what if we have additional layer diagrams or in addition to the diagrams we also have predefined architectural inspections and/or validations that the architect can choose from? In that case we might need additional guidance to help the architect choose between the various diagrams, validations and inspections. Below you can see a screenshot of a prototype we did in this direction where we use a WPF form to ask the architect some questions. Additional questions pop up based on the selection the architect makes (clicking yes or no on the form) to help him decide what exactly he needs for his architecture. In the end, based on his selections, the the environment is prepared for him.

 InterAccess-Architectural-Guidance-Project-Wizard-Screenshot

This is just a prototype and not production ready but it might give you some ideas about how we think we should provide guidance. In the past couple of months Clemens and I have done some work on these ideas  but we haven’t really finished it yet. Now Visual Studio 2010 becomes close to RTM it is time to finish this so expect some updates in this direction.

Stay tuned!

posted on 3/15/2010 8:30:14 AM UTC  #