I’ve been putting of an expedition to navigate the cloud for quite some time. I have done so as I’m the type of personality that likes to wait for technology to grow a little before jumping in feet first (call it lessons learnt from the school of bleeding edge knocks).
Recently however, I’ve come across a problem in my architectural design that required the use of a external gateway for publish/subscription messaging. The problem came about due to inbound firewall issues, in that tunneling out of a corporations network is fairly easy, tunneling back in is next to impossible as I’m really now putting the IT Department on notice – “I’m now going to try and crack a window open in your firewall, game on”.
Armed with this problem I decided to check out both Amazon and Azure. I have heard more positive things about Amazon but the seduction of being allowed to use my beloved .NET + VisualStudio crutch and talk directly to Azure via this is too much to pass up.
After spending a day or two waiting for Azure to give me access to an account, I ran straight into the Management Portal with a glint in my eye and a large amount of creative hope. I should also point out at this stage the login page for the portal was down for hours (Not reassuring I must say).
A Messaging Saga
I looked at the ServiceBus that comes in what I guess (at best) as the first release of Azure, but it didn’t have the messaging capabilities I needed. Scratching my head and remembering a presentation I saw recently around this very subject I kept wondering what I am missing.
After more googling I managed to find out the problem. I was looking at the wrong portal for ServiceBus when I should be looking at the AppFabric version of the ServiceBus. Confused? It gets better.
I then manage to crack open a CTP release of Azure and proceed to write a test harness to see how one can tunnel in and out of a firewall using port 80 and some weird science project that I don’t fully understand but is similar to MSMQ.
Success! I was grinning now, Azure saves the day. I can forgive the constant state of confusion I had in kick starting the journey because now I can get messages inbound/outbound to my networks via Azure. As I have to get two separate networks to react to events from one another (ones remote while the other is in HQ).
I then deploy my test app to Windows XP Service Pack 3. As majority of the laptops that corporation uses is still Windows XP – may I also add 60% of the world’s PC’s .
It broke. Problem?
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.PlatformNotSupportedException
at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.OnSend(System.Collections.Generic.IEnumerable`1<Microsoft.ServiceBus.Messaging.BrokeredMessage>, System.TimeSpan)
at Microsoft.ServiceBus.Messaging.MessageSender.Send(System.Collections.Generic.IEnumerable`1<Microsoft.ServiceBus.Messaging.BrokeredMessage>, System.TimeSpan)
at AzureQueue.Demo.Common.AzureServiceBus.Send(System.String, AzureQueue.Demo.Common.Messages.IMessage)
Sadly, the team who wrote ServiceBus relies on this ball of code to handle its AppFabric event tracking (I can see the upside as you get a healthy amount of data via AppFabric on how things are flowing in and out).
My point here however is simple. The cloud isn’t supposed to be platform specific it’s supposed to be agnostic enough to deal with these issues. If you now impose a Windows Vista and above release matrix, you are not really convincing people to go to the cloud?
Furthermore Azure doesn’t have access to Virtual Machines in the cloud as whilst one could sit there and stare at how Roles work within the Azure hosted service offerings and achieve a cloud like nosebleed, in the end I’d rather get a VM up and running and then start to break down the habitual tendencies of an organization slowly, piece by piece via the cloud vs. having to hit a magical reset button on brown-field projects which later turn into greenfield?
Furthermore, how does Azure team anticipate breaking in and out of firewalls securely? As it’s one thing to say “Store you stuff in the cloud” but it’s entirely different matter to not only swallow that bitter pill but tunnel in and out of networks to achieve this?
Answer was Azure Connect.
Awesome, when can I get a copy? Answer is below. I’m “Pending” I’m not sure what that means or where I am in the approval process or what the approval process is?
The more I use the Azure services, the more I get the feeling it’s still in science project mode. There’s a lot missing and the stuff you have in front of you just doesn’t add value to existing problems that I can foresee in most organizations (not just my immediate pain points but as I cast my mind back to previous roles or when as a Microsoft Evangelist I’d visit large partners and hear their pain points often, I just can’t simply see an upside to running full speed into the Azure camp).
Amazon or bust??
Looking at Amazon and its services it’s clearly a front runner when it comes to maturity. All of the above is done today and I get instant access. I’ve got access to Amazon VPC through to its own version of Service Bus which doesn’t impose platform limitations my way. I also can provision a Virtual Instance in minutes and not have to apply for access?
I could sit here and tell you how a large gold partner of Microsoft’s just walked away from Azure with contempt and disappointment but that’s kind of a shallow blow given it’s going to fall on deaf ears anyway.
I don’t care about that, what I am wondering is what is the Azure team actually thinking about when it comes to this product line? Do they have a plan? Are they close to delivering this plan? Are they really going to impose Platform limitations upfront given the whole point of the cloud is to shift organizations from legacy into the new?
Is the ticket entry to Azure a case of “you must be a greenfield site” before you can begin?
Are they paying attention to Amazon?
Azure ecosystem reminds me of a cartoon I once saw where these group of people were all rushing towards a cliff but they couldn’t see the cliff coming because the dust they were kicking up created the cloud. One character asked “Where are we going?” and the other responds “I don’t know, something about the cloud. That’s not important, I just want to be first!”