Having recently been involves in the Windows Server Service Bus TAP and also working on a project using Azure Service Bus I thought it would be useful to bring together some of the excellent community resources which are available into the technet wiki to help people have a single place to access most of the material.
I thought something like the excellent job done with the BizTalk part of technet wiki would be ideal.
The links are below:
Azure Service Bus - http://social.technet.microsoft.com/wiki/contents/articles/13825.windows-azure-service-bus-resources.aspx
Windows Server Service Bus - http://social.technet.microsoft.com/wiki/contents/articles/13824.service-bus-for-windows-server-resources.aspx
If you come across any content which you think should be added please do so.
Recently one of the clients I work with completed a project which put live a solution using Microsoft Dynamics CRM Online using the Windows Azure Service Bus to do a hybrid integration solution to integrate with on-premise applications.
From a technology perspective it was relatively simple but for a company doing their first serious cloud project, and in addition integrating the cloud with on-premise applications there were many challenges which had little to do with technology. Although some of these are not specific to a cloud or hybrid project I wanted to talk about some of our experiences so that we can help others undergoing similar projects.
This is a bit of a brain dump of some of my thoughts from this project.
One of the key areas involved the infrastructure team in the organization. Many organisations are in the middle ground where they tend to follow a few years behind the latest versions of hardware and software from most of their vendors. There are many reasons for this but it often means when you work on a project which needs to introduce some new infrastructure which may not be cutting edge for the industry, for your organization it may be very different to what they are used to and involve a new culture that the infrastructure teams are not used to.
With our project it was important to involve the infrastructure team as early as possible so they were given an opportunity to understand the new technology and how it lines up to the current infrastructure.
In our case we had relatively simple requirements which was some servers which were given permission to be able to connect to the Windows Azure Service Bus. While technically this was quite simple, the infrastructure teams will be concerned with many things such as quality or service, security, performance, networking, firewalls and many other aspects which when you explain this kind of solution to them will trigger a number of concerns. A lot of these concerns will be completely valid and its really a learning exercise to understand how the proposed solution addresses each of these areas, but also it can ensure your project has covered all bases.
Knowledge Transfer & Service Introduction
In the transition of our solution into production there were a number of challenges with knowledge transfer and working out the support model for the solution. Typically many organisations will be used to supporting on-premise applications but when you have a hybrid SAAS solution you have a new paradigm which your support team will need to be prepared for.
The support team needed to not only take the time to understand a new architectural pattern and the associated technologies but they also needed to understand how to support applications such as Service Bus which were hosted in the cloud and also potentially develop different types of vendor relationships when the SAAS applications may be supported by other companies.
I find the billing area one of the most interesting. If you are working with a start-up of small company you will probably find this quite simple with just a credit card being used for Azure Service Bus Bill.
When you are working with a large corporate you are more likely to be interested in the invoice billing options or using an Enterprise Agreement with Microsoft or your licensing reseller. In large corporates I was surprised how long these processes can take and how complicated they can be internally. In our case this part of the project actually took longer to arrange than any other and the cost will probably be more than our service bus usage for the first 6 months when you factor the effort required to calculate costs, and all of the associated discussions around how it will be paid and broken down.
The key thing I would recommend here is that if your working with a large corporate organization you will be likely to have an account manager or technical contact at Microsoft. Your account manager can be a really big help to you here and ours was excellent at making sure we had the right information and contacts throughout our project and particularly in the cost area.
Planning for Change
When we did the initial estimates for the projects and planning sessions throughout the project I think we did a reasonable job for most of the development and testing and deployment activities. The one key thing we didn't account for as well was the impact of the culture shift and how it would affect progress of some activities. This was particularly noticeable in the infrastructure area and service introduction area.
Environment Management was quite a challenging area because there are many test environments in a typical large corporate environment and it was challenging to make sure people understood how the new technology would affect different test environments and to make sure the right things were provisioned in the appropriate times.
Fear of the Unknown
Probably the biggest challenge and the thing underlying most of the above challenges was that when people only know a little bit about something it can create a fear or lack of confidence in what a project is trying to implement. When people only partially understand something they can identify things which they would be concerned would be a problem but in actual fact the project has covered the concern adequately but the person just didn't know enough about what was happening on the project or what the solution was.
In hindsight here are a few things I would encourage you to do in a similar project.
Stakeholders & PR
In a big project you are likely to have many stakeholders who are close to the project and many who are not. I think its really important to ensure those stakeholders who are not close to the project are identified and given regular face to face communication sessions so that any concerns are raised early and can be mitigated so they don't come up to bite you later in the project.
Involve Infrastructure Early
One of the good things we did was to involve infrastructure early in the project lifecycle. A lot of people assume that a cloud project means you don't need to think about your infrastructure team but the opposite is true. Having support from your infrastructure team and involving them extensively is a good thing to do.
Make sure infrastructure are looking ahead
If your organization are developing an IT Strategy its important that this is not simply a powerpoint slide deck or a word document. You should make sure that your infrastructure team is getting training aligned to this strategy so that when you come to do your first Windows Azure Service Bus project the infrastructure team have heard or it, know what it is and are relatively comfortable with the idea of connecting applications in the cloud or at partners sites to internal line of business applications via a messaging solution.
Start Service Introduction as early as possible
In most organisations the support teams are always busy and in hindsight it would have been better to involve someone from the production support team day to day from the start of the project. This would ensure that they had a full understanding of the solution and how it evolved. Trying to do knowledge transfer and service introduction for the integration piece as early as possible will make your life easier.
The importance of senior management buy in
This was one of the most important aspects for our project. When we did hit blockers and things weren't moving in any of the areas being able to call on a member of the senior management team who has the vision to support this hybrid solution meant that we had someone who could focus people and provide direction where required. This is really important when you are changing the culture.
Use your support network
For a Windows Azure Service Bus project there are some excellent resources available on in the community and we have tried to bring some of these together so that everyone can easily find them. Please check out the technet wiki on the following link:
Use your Microsoft Reps
If you have an account manager and a technical representative at Microsoft make sure they are aware of what you are doing and if you need help they can often point you in the right direction. One of the best things to come out of our project was the enhanced relationship with our reps at Microsoft in the UK. This will definitely help us on future projects.
As I said that was a bit of a brain dump of some of my thoughts around the challenges and lessons learnt from our project. I would be interested to hear how others got on.