Cloudeve.ning got off to a great start with 46 keen and eager technologists turning up to the inaugural event at WorkMatters in North London.
Aside from the initial coffee and chit-chat before we got down to business, I made sure I got a good place for the mountains of AV kit I brought with me. Having travelled 10 stops on the Circle Line with a tripod and bag full of heavy technology I was determined to use it!
The format was simple, 2 talks with a break for beer and pizza. First up was Ross Scott, a developer from Cheddar – yes the place the world’s most popular cheese was invented – to give us the benefit of his experience of working with Windows Azure. Ross has a full-time job but is also burning the midnight oil in a private venture of his own using cloud services.
He concentrated on the storage system within Windows Azure, showing us how to create and use tables, queues and blobs. He made sure to point out the differences and limitations of table storage compared to SQL Azure relational storage. It was a neat and compact overview of the right place for the right storage. One interesting and engaging element to his talk was what he did between hitting F5 in Visual Studio and having his application running in the development fabric. As he said – “…when I do a demo, it takes about 40 seconds for the dev fabric to fire up, so in these 40 second gaps I’ll just talk about business ideas”. The 40 second interludes were great insights in to how a small startup on a limited budget might approach a software project.
In one was the notion that you could architect and build an application absolutely correctly and perfectly from the start. It may take longer and be a more involved and complex process but in the long run getting it right first time would make code and application maintenance easier in the future. The trouble with this approach is that it slows down your time-to-market and costs more. Ross proposed predicting the future success of the application is difficult. If you put a lot of time, money and effort in to an architecturally elegant design, if the application doesn’t catch the attention of the market and fails – all that effort is wasted. Essentially, you put yourself in debt and you have to pay that back later; literally, if the application doesn’t sell. The other approach is to take a less rigorous approach to designing and architecting the application. Use shortcuts, tips and tricks to get something that works and can be taken to market quickly. This approach also puts you in debt. You can’t keep the application as it is: if it turns out to be successful, it will be difficult and time-consuming to maintain. So re-architecting the application and re-doing a new project from the ground-up becomes the debt you have to pay back. However this debt is easier to pay back if you are making an income from the initial release of the application. If the application doesn’t do well in the market, then you are throwing away less time, money and effort than you would have if you’d built an elegantly architected application.
Another interesting point Ross made was that of cost-driven development. He had spreadsheets of application usage. Concentrating on storage he showed the financial saving he’d make by using table storage rather than SQL Azure storage. Yes, it meant more work in his application and there was definitely a balance between the time, money and effort spent on working around table storage limitations compared to taking the built-in feature set from SQL Azure at a higher cost. I found this to be an interesting idea. In an Enterprise development shop, it’s always assumed there will be a relational database on-tap. It’s simply a case of getting the DBA to add new databases to the infrastructure he manages. There appears to be no particular cost to it. Of course there is; it’s all hidden in different line items in the overal IT budget, but it appears to be free. In a world say 10 years from now, when the vast majority of server-based application run in the cloud, this hidden cost will be a much more highlighted component of the required resources of application development than it is today.
What a shame I don’t drink; there was no shortage of beer during the break! The chilli pizzas proved popular and they were rather nice! I think we’ll make sure there’s some Shloer and alcohol-free beer at the next one!
Next, Mark Rendle from DotNet Solutions gave a great talk highlighting all the new features for Windows Azure announced at the Professional Developers Conference a few weeks ago. Starting off with SQL Azure Data Sync 2.0 he pointed out the matrix of sync options – SQL Azure to on-premise, SQL Azure to SQL Azure and even syncing between geo-locations (data centers). He then divided his talk in to what is available now/this year and what will be available next year. VM Role, the Extra Small Instance, Full IIS, Elevated Privileges, Remote Desktop and AppFab:Caching. There was great interest among the audience in VM Role and the caching features. VM Role because it seems there’d be an option to more easily migrate those applications that have complicated setup, such as OS configuration changes, to the cloud. True it then puts the onus on the VM creator to patch and maintain the instance, but it’s definitely a way round an immediate problem. The VM Role still benefits from the Azure Service Model and is subject to the entries in the .cscfg and .csdef files. Like a web or worker role, it doesn’t guarantee to maintain state across instance re-starts. For example, if you made changes to files in local storage which you then relied on when the instance re-started, there’d be no guarantee that they would be there. Caching caught the audience’s imagination, especially because it was recognised that scale-out is the model for Azure and therefore maintaining state across multiple instances would be important. Caching allows this in a high performance way by ensuring the highest probability that the state information would be retrieved from memory rather than disk.
Mark also talked about a feature that has been in CTP for some time now, Application Fabric Labs Access Control Service 2.0 (ACS 2.0) and even did a demo to show a complete absence of code for adding Facebook authentication to the existing Windows Live ID authentication to a simple web application. All done with the aid of a drop-down list in the Azure portal that sported Active Directory Federation Services (allowing you to connect your on-premise identity up to the cloud), Live ID, Yahoo, Google and Facebook as the range of Identity Providers you could automatically integrate with. Literally, you just had to click a few buttons.
A very good time was had by all…
A few of the delegates retired to the pub down the road to swop war stories, but I had a “train to catch”.
Catch us all at the next one in January, stay tuned for the date.