I believe that the best way to learn is to learn from each other, so I’m always on the search for stories of Canadian developers who have either built new applications using Windows Azure services or have migrated existing applications to Windows Azure. This is the story of Agile Business Cloud Solutions.
- [01:36] HTML5 and Windows Azure
”We use real-time graphs where we connect to our WCF service, which pumps all the data to our client. That data is stored in [Windows Azure] Table Storage.” [Before the interview, Jaime also shared that they are working to get this done via HTML5’s WebSockets to get better performance with the “real-time” requirement for graphing. The graph is constantly querying the backend services to feed it updated data.]
- [02:10] The Architecture of the Solution
”Primarily, right now, our workload is on web roles, which are Windows Azure Compute instances. Most of our data is stored in Windows Azure Table storage. We use that because it is really great for the type of data that logging data is – it is fairly flat but we hold all the data within it to get a model. Straightforward.”
- [02:45] Rationale for Using Windows Azure as the solution’s infrastructure
”We started down this path primarily because of the idea of scale and just being able to guarantee uptime. Windows Azure gives us a lot of different possibilities around scale and also guarantees an [financially-backed] SLA that we’re comfortable with. Those things really helped us move to the platform, and we really see it as very positive thus far on the platform.”
- [03:33] Getting Started with Windows Azure as .NET Developers
”We found lots of useful help on MSDN and in communities that support Azure developers, so finding the right amount of information to get on the platform isn’t that challenging. Also the integration within Visual Studio and the tools that we were most familiar with made it extremely easy to get on there and start testing, and deploying, and seeing what Azure is all about.”
- [04:28] Getting Started with Windows Azure as Node.js Developers
”When they released the Node.js SDK for Windows Azure, I dove right into it, followed the directions, and within 3 hours, I had an instance talking to table storage. No problem. [Literally that easy? Three hours and you’re good to go?] Absolutely.
- [05:00] Moving Existing Applications to Windows Azure
”We’ve worked with other companies too for ASP.NET and SQL Server, traditional hosted websites and help get them on Windows Azure and we typically find that, you know, within 2, 3, 4 hours, we can have their site running on Azure. … It gives you a good sense, like a prototype, where you get to see if there are any issues with your application – get to really test it out through and through. But the best part of moving applications to Azure, in my mind, is looking at all of the new and interesting benefits that your application can gain from being there.”
- [05:56] Hurdles and Gotchas or Things to Wrap Your Head Around
”One of the big ones is to make sure that your web app is stateless – you need to do that because you’re going to be running more than one web server so you’re definitely going to have what you would traditionally think of as a web farm. It’s things like that you definitely need to be aware of and start thinking about when you are moving applications to Azure. I think that a lot of these things that Azure makes you do, that might be initial gotchas, it’s really best practice kind of mentality. There’s a lot of help on the Internet about statelessness is and also specifically Azure – what are the problems you can encounter there. … For me, moving into Table Storage (I’ve been obviously pretty heavy into SQL – MySQL, SQL Server, whatever it is, relational data model) is quite different. I find that it is a lot more simple, but there are a few things that you need to think about when you’re designing what a table looks like. It’s a lot flatter of a structure and you have less ways to represent data so you have to think about that up front. [For Jaime] From a Node.js perspective, I think I ran into one little hurdle where you would have your NPM modules in a certain place, but you just end up packaging it in the same directory and you’re good to go. But that’s pretty much it. Everything else is pretty awesome.”
- [08:10] Is It Just that Easy?
”I think the tooling around it, if you’re using Visual Studio, and you’re used to ASP.NET, I think that the tooling makes it really easy to start running your application and testing it. You can do that with the set of emulators also – so you can just do it on your desktop, you don’t necessarily have to upload it to Azure. Obviously you’ll gain more experience and benefit from when you actually get your application on Azure. The communities around technologies like PHP and Node.js and things like that are really growing, and they’re really helpful in moving Node.js to Azure or working with Java or PHP on Azure.”
- [09:00] The Easiest Way to Learn This Stuff is By Diving In: The Experience
”… We do things locally and we also do things in Azure. I guess initially when I first started doing work within Azure, I was writing an application that was very straight forward, it was like a Windows Service with a SQL Azure backend, and it was just really easy to port the Windows service to Azure. The big thing, though, that I came away from that was looking at all of the other ways to integrate with Azure – starting to think about Table Storage, starting to think about Caching, or starting to look at Traffic Manager. There’s a lot of different technologies there that you can then leverage.”
- [10:16] Approach to Moving Applications/Skills to Windows Azure
”It’s good to look at Azure – the overview of what the technologies are that are there – and then depending on what kind of data you have or what your workloads are like, you can start targeting the ones that really make sense. I think that something like Caching, most people can see the benefit of that right away and might be naturally drawn to, and over time, you’ll get more and more of those items on your tool belt and you’ll be able to make extremely robust applications.”
Relevant Architecture Points
- Windows Azure Compute to host WCF services used by remote clients.
- Windows Azure Table Storage for storage of logging data, as well as prepared/compiled reporting data for real-time graphing on the front end.
AGILE BUSINESS CLOUD SOLUTIONS
We bring developers cloud-based performance analysis and real-time application monitoring systems. We are dedicated to helping you transition new or existing workloads onto Windows Azure. Our open-source initiatives help developers quickly and easily get into the cloud and start leveraging some of the amazing new technologies that are offered.
Jef has worked in the software industry for twelve years. Over this time he has experienced a range of responsibilities in various industries. His passion for technology and motivating teams has kept his drive and focus strong. Early on in his career he showed an entrepreneurial spirit, starting multiple small companies. He departed from this to learn more about the software industry by working with larger companies, such as Microsoft. These diverse experiences have given a very unique perspective on teams and software engineering. Since moving back to Vancouver he has built several highly productive software development teams, and inspired others to try similar techniques.