Working with Windows Azure
by Simon Bisson
Simon Bisson talks to three companies that are using Windows Azure to develop and deliver their services.
HardCopy Issue: 56 | Published: May 1, 2012
Cloud services such as Microsoft’s Windows Azure are becoming increasingly popular for new application developments. There are plenty of reasons for that popularity, such as developers only having to pay for the resources they need when they need them, together with the ability to work with familiar development tools and languages. It’s a popularity that looks likely to grow as development teams work to do more with less, while still delivering solutions that are flexible and innovative. It’s also a technology that makes life easier for start-ups, able to concentrate on software development rather than building and managing the infrastructure on which they run.
We sat down with three British companies that have switched to Azure and asked each of them why they’d made the change from traditional application development; what technologies they’re using; what lessons they’ve learned; and what advice they’d give anyone else wanting to switch from on-premises development to the cloud.
CaseLines from Netmaster Solutions is an online tool used by the legal industry to collate, index and search bundles of legal documents. It’s a product that solves a complex problem, helping law firms deal with the increasingly onerous burden of massive document disclosures. CaseLines is able to handle millions of pages of documents, saving time and cost for its customers, and at the same time allowing online disclosures, which keeps costs down for both sides in a legal litigation case and saves paper, as no photocopying is needed.
The CaseLines in-house team scans and processes paper and electronic documents, building indexes and document stores on Azure which are securely shared with law firms and with their clients and their opponents. Cloud-stored data is accessed anywhere and on any device – even a 3G-connected iPad. There’s no need for client applications as everything is delivered from Azure, even the CaseLines’ secure Web site.
We spoke to Netmaster’s managing director Paul Sachs, and started by asking him why he had gone for Windows Azure. He responded, “Three years ago, I decided to build a system for the legal world. I needed a production platform that wasn’t going to require maintenance on my behalf and that would give me easy administration. I don’t come from a server administration background so I needed a shortcut to that – something that would give me an off-the-shelf production environment.”
Sachs told us that he came from a mixed management and technical background: “I come from .NET; I’m a C# developer.” That background helped make the decision to use Azure, “I was familiar with the tightly integrated offerings you get from Microsoft, and I wanted to take advantage of the integration between Visual Studio and Azure.” It was that integration, and familiarity with the Visual Studio tooling, that tipped the balance between Azure and Amazon Web Services.
However it wasn’t the only reason for CaseLines being built on Azure. “Another factor was the table storage. The system needed to be highly scalable, and we didn’t want to hit SQL Server limits. That made the Azure table store very attractive as a result, and we’ve found that it scales well.” Sachs has been able to use this to work with a model-driven approach to handling data, “We’ve been able to create a middle-tier object model and don’t have to replicate it in the data layer.” That’s meant they only need to define the data model once, “It reduces development time, as we’re not administering a database.”
However that doesn’t mean it was all plain sailing. As Sachs notes, “One of the challenges was to design the aggregate data model that needed to work against table storage. It was a challenge as we had complex relationships, which aren’t normally applied to table storage. That meant having to do a lot more in code, and designing the indexing of the storage tables carefully, but I prefer to work in C# than stored procedures anyway. I was able to use LINQ to handle the relationships.”
Data is key to a service like CaseLines, and using table storage means there’s no need to manage database schema. “It’s a very simple data model. Clients contain cases, cases contain sections, sections contain documents, with relationships between owners and users. Quite straightforward.” Using Azure table storage, data items have a row key and partition key. Sachs’ approach was to apply a unique ID to the row key and use the row key as the aggregate parent in the partition key of the child.
As Sachs notes, a lot of domain knowledge was required to build CaseLines as legal firms (and the courts) have very strict requirements. While his background was not legal, Sachs had spent part of his career as a consultant at PA, which meant he understood requirements. He was also helped by civil litigation lawyers. “In civil litigation there are massive amounts of paper – often over 100,000 pieces of paper in a single case.” CaseLines’ requirements meant that everything has to be put forward in the bundle, which meant that scalability had to be key to any solution. “We scan the paper in and produce an index against that. Other people have tried to do this, but only on a small scale because results can’t be returned quickly.”
Using cloud services makes a difference: “We’re delivering from the cloud, even while we’re working on the data. Clients have secure access from the Web into the same cloud space.” CaseLines has been built using ASP.NET MVC to deliver content which simplifies working with security and re-routing content appropriately. Sachs points out, “Security is paramount for this, getting the right people the right document at the right time. We need to give and remove access as required.” That’s a requirement which becomes even more important during disclosure. “We send an index to the other side, they review it and request to have individual documents sent to them. In the past the whole process took forever, but now the bundle is in the cloud, disclosure is simpler. It’s by email: an invite to view the document in the cloud. It saves time and money.”
The resulting data remains in the cloud, kept there for clients. “We charge on a per page basis, count the number of pieces – it’s sufficient to cover the costs as a one-off charge. We fall in line with the way a law firm charges. That parity comes from one of the real advantage of the cloud, namely the fact that there’s no upfront investment cost for clients to use the technology – our main competition is software solutions that need installation at the client site.” Sachs notes that that lawyers aren’t particularly fond of upfront costs “It’s money not related to a case, so they hate it!” CaseLines can be marketed around one of the cloud’s key messages, “Use it when you need it, pay for it when you use it.”
Not everything was easy, though, and there were challenges. Sachs notes that “Table storage is different. It was a challenge to map the object model into table storage rather than the traditional relational schema, and designing the system for this.” Even so, there were aspects of the .NET platform and Azure that helped solve the problems. “The ease of MVC helped here. All that I needed to deal with was the persistence layer.”
Other challenges came from the regulatory environment around legal industry. “It was very important that we were able to store data within the EU. We could do that by using Azure’s affinity to a data centre. We needed clear evidence of ISO 270001, and had to be able to show this.”
So what advice would Sachs give anyone looking to move to Windows Azure? “To seriously consider table storage as an alternative to SQL Azure. Its features and its scalability are particularly attractive. Don’t assume that the way it’s been done before is the only way to do it. For us, Azure storage was key. The whole thing just works, and so well you hardly notice it. Especially the ability to make a change and have it live within 20 minutes without needing any system administration skills.”
Eos is inventory management software that mixes familiar desktop tools with cloud storage and a Web user interface, and Eos Operating Systems aims to use it to deliver a subscription-based full-featured inventory management system that is location independent and also gives users social networking tools. Data is stored in SQL Azure, using BLOB storage for images, reports and attached files. The Eos Web site runs on Azure compute instances, with worker roles handling background tasks.
We spoke to managing director Clyde Kent, who told us, “We were working in .NET to start with, which made Windows Azure the obvious choice.” The decision to move to using the cloud was an evolution of their existing applications. “It wasn’t initially a cloud service, but we decided to make it one so users could access it from anywhere.”
There were two quick benefits from the decision, as Kent noted, “There’s no need for infrastructure, and it takes the burden of managing a database out of the customer hands.” Using Azure changed the way Eos could work, “We can concentrate purely on coding the application itself, with no need to manage infrastructure, and we’re also able to scale with customer demands – no need to work with hardware and resource constraints.”
As Kent points out, for anyone offering a cloud service “The main issue is ensuring an acceptable level of performance.” While some elements, like network connectivity, are out of your hands, there are ways to optimise performance from a cloud platform, and Kent recommends using your data as efficiently as possible.
Developing a cloud service isn’t much different from a traditional desktop application. Kent says “We were able to get there with Microsoft’s tools, which are well documented. That meant we could write code as efficiently as possible from the start.” Kent also found support in places other than the online documentation. “The Techdays boot camps were a really great introduction; we got a lot of good tips from them.”
Eos is using a cross section of Azure technologies to deliver its services. “We’re using SQL Azure, and storage for pictures and reports. We’ve also got some compute instances, with our Web UI on Azure as a MVC application. MVC is a way of getting to the data.” Initially Eos was a local application, deployed to multiple sites. It evolved into something that needed a centralised database, and needed to support more customers, which resulted in moving to the cloud. Kent describes it as “Evolving from desktop to software-as-a-service, but still a WinForms application.” The cloud version is launching now, and existing customers will be migrated to the platform.
Kent is happy with the tooling he’s been using. “Visual Studio is our main tool, with the Azure integration. We’re also using SQL Management Studio 2012 and the Azure online tools as well. We really like the Metro-styling of SQL Azure, and it’s a lot easier to debug the application with everything centralised.”
Respond from Azullo is an online advertising tool that adds call-to-action buttons to Web sites. Much like a Facebook ‘Like’ button, Respond’s buttons make it easy for a user to interact with an advert or a piece of content – for example, adding a ‘buy it’ button to the review of a piece of software. The online advertising market is fiercely competitive, and Azullo uses Windows Azure to build a platform that scales quickly, responding to the needs of its advertising and publisher partners.
Currently the service is built using five hosted services and two databases. The services are a mix of worker and Web roles. Worker roles are ReportUpdate for running stored procedures on the database; and NetworkUpdate which is responsible for updating Azullo’s systems from those of its partners. Web roles are Admin for administering the Respond platform; Publisher giving Azullo’s publisher clients access to reporting; and Services which is used to deliver adverts to the company’s publisher network. The databases run on SQL Azure, and Azure Reporting Services hosts the various Respond management reports.
Co-founders Guy Cookson and Andrew Dobson described the company’s experience with Azure. Dobson told us why they’d started using Azure: “The main reason is purely for growth. Azure scales very, very quickly, and we couldn’t get that from a traditional data centre.” Cookson added, “Scale is key for us. The business is one that scales very quickly – bringing on a new publishing group adds additional traffic and we need to deliver to clients. We’re also expanding into other regions, so we need geographic load balancing.”
Dobson continued: “Our background is .NET so Azure was an obvious choice when compared to other cloud-based services. And it keeps administration to a minimum.” Dobson noted that Azullo based its cloud version of Respond on an earlier version of its advertising platform, “It was very easy to port from existing Windows Servers. We’re running a tight ship, and this let us put our resources where they are needed, to support our customers.”
Azure was a good fit for the way the Respond service operates. Publishers just need to add a script to a Web site, which calls the Respond Web service. That call determines the advert to be placed, and delivers it to the publisher’s site. Dobson noted that, “There was no need to make changes from the initial architecture in order to work in the cloud.” No new tools were needed, either, “We used Visual Studio 2010, and SQL Server for development – the same traditional stuff as before. We just added the Azure SDK. That was one of its strong points: it was very simple to integrate into the existing model.”
Cookson added, “Reliability has been important, and has been very good, it’s very good to push that to clients.” The company is also considering moving some other services to Azure, as Cookson told us, “We currently maintain some services in our Manchester data center, but we’re looking at moving customer facing Web sites and blogs to Azure, for cost savings as it’s pay-per-use.” Dobson noted a couple of issues with the move to the cloud, “On the database side, it would be nice to automatically update tables, which was easier in the traditional SQL space and harder in Azure. We also have a number of reporting tables that update daily. This process was more complex after moving to Azure.”
So what advice would Azullo give another company looking to use Azure and the cloud? Cookson had some thoughts: “The simplicity of moving from traditional to the cloud has been very easy, and we’ve found the advantages outweigh any issues. There are so many advantages over a traditional server base, especially if you need to grow quickly, and being able to respond quickly gives us an advantage over our competitors. It would almost be impossible to do what we are doing without this.”