Windows Azure Outage – A Considered View

March 1, 2012

Yesterday (29th Feb 2012) our website at www.kynetix.com was down for most of the day. Our site is hosted in the cloud on the Windows Azure platform which suffered from a major outage for most of the day.

The outage, which affected the Windows Azure platform across the world, has been attributed to a leap year bug. It’s ironic that, 12 years after the damp squib that was the Year 2000 changeover, the Azure platform suffered from a bug that should have been easily preventable.

The Windows Azure outage has, of course, played into the hands of the cloud computing cynics and will give them plenty of fuel for their arguments. However, I won’t be joining them even after an outage like this and we will continue to host our site on the Windows Azure platform.

This outage will certainly knock the credibility of Microsoft as a cloud platform provider but it should not be seen as proof that cloud computing is doomed to fail. On the contrary, I think this outage will only improve the Azure platform in particular and cloud computing generally.

Every serious outage like this leads to improvements and to tighter process that will ensure that it is highly unlikely to happen again – certainly for the same reason. It will also have severely tested the capability of Microsoft to respond to such a critical issue and you can bet that Steve Ballmer will be ensuring that a full and thorough post-mortem will be held and improvements implemented.

I doubt that other cloud computing vendors will be gloating much about this outage. Every platform vendor knows that they are just one line of code away from having the same problem. In fact most of the major competitors to Microsoft (Amazon, Google etc.) have all suffered from their own outages so it can happen to anybody.

I would venture that there is not a single large enterprise that hasn’t had some form of internal service outage. From power cuts to loss of internet connectivity through to crashed servers nobody can guarantee 100% uptime.

As further proof you only need to look at that beacon of the the financial markets, The London Stock Exchange (LSE), which has had a number of outages over the last few years.

Cloud computing cynics who will justify their position on the back of this outage are akin to people who are afraid of flying and justify their position after a plane crash. Yes, it occasionally happens, but each crash greatly improves the safety and reliability for the future. A plane crash doesn’t stop people flying and I don’t think this outage will stop the growth of cloud computing.


The new Martini…

February 9, 2012

Microsoft has announced that the Q2 update for 2012 for Microsoft Dynamics CRM 2011 will include a number of new capabilities. Based on the premise “CRM Anywhere” (hence the reference to the 70’s Martini advert: ‘Anytime, anyplace, anywhere’!), the update will include new capabilities around:

  • Mobility
  • Browser Flexibility
  • Social (Activity Feeds)
  • Industry Templates
  • SQL Server 2012

Of all of these, Mobility and SQL Server 2012 interest our clients the most (at least in the short term).

Mobility

Microsoft will be launching a new product called Microsoft Dynamics CRM Mobile, which will enable customers to use CRM on up to three devices per user (note: IFD required for On Premise instances).

There will be native clients (i.e. offline support) for Windows Phone 7.5, Apple iPhone & iPad, Android and some BlackBerry devices.

Browser Flexibility

With this release, CRM will be fully supported on: Internet Explorer 7 or above; Safari 5.1.1 or above on Mac OS-X or iOS5; Firefox 6 or above; Chrome 13 or above (platform restriction may apply – ask us for more details!).

Industry Templates

Building on the work of Microsoft partners and its own consulting team, the Dynamics Labs will be releasing several industry templates into the Dynamics Marketplace. The first few templates are likely to be:

  • Non-Profit
  • Health Sales Plans
  • Wealth Management
  • Relationship Management for Health.

The templates will likely include data model customisations, dashboards, workflows and some sample data. They’re designed to help customers in those industries visualise how Dynamics CRM can help their business, and speed up an implementation without necessarily being a fully-packaged vertical industry product.

SQL Server 2012

Microsoft’s own data centres have already been upgraded to SQL Server 2012 and the new CRM update will bring official support for partners and customers wanting to upgrade their own deployments to SQL Server 2012. Additionally, there will be some new CRM features that make use of SQL Server 2012 new capabilities. For example: performance improvements, enhanced database recovery, next generation business intelligence (“Crescent”) such as pre-defined Power Pivot models, Power View reports and time-animated reports.

For more information, download the R8 Release Preview Guide from the Microsoft Dynamics CRM website: http://crmpublish.blob.core.windows.net/docs/ReleasePreviewGuide.pdf


Retrospective Meetings: Agile Learning from the Past

August 1, 2011

In the latest Visual Studio Magazine, Aaron Bjork writes a pithy reflection on the power of learning from the past and gives some insight into how to get the most out of retrospectives in your Agile projects.

He reflects on one of the twelve principles behind the Agile Manifesto:
“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”.

Read the full article at http://visualstudiomagazine.com/Bjork0711


Microsoft Developers, it’s time to prioritise HTML5

May 6, 2011

The battle between Silverlight vs HTML5 continues, with Microsoft prioritising HTML5.

The latest specifications for HTML5 were released on 27 April 2011. You can view them at http://dev.w3.org/html5/spec/Overview.html

Last year, in October, Bob Muglia (Microsoft President in charge of server and tools) said that Microsoft’s “strategy has shifted” and that “HTML is the only true cross platform solution for everything” (Read more).  Microsoft have invested significantly into HTML5 compliance in the recently released IE9.

Muglia later tried to clear up the confusion by stating in the Silverlight Team Blog: “Make no mistake; we’ll continue to invest in Silverlight and enable developers to build great apps and experiences with it in the future.”

However, Steve Ballmer also issued a Press Release in which he said: “HTML 5 will provide the broadest, cross-platform reach across these devices, and Microsoft will build the world’s best implementation of HTML 5 for devices running Windows”

Ballmer also tried to reassure us by emphasising that Microsoft will still invest in Silverlight, which he said ”provides the richest media streaming capabilities on the web”.

While Microsoft are reported to have de-emphasised Silverlight at MIX11 (a gathering of Web developers in Las Vegas in April 2011), they did announce the Silverlight 5 Beta Release (Silverlight 5 Beta and Tools are available for download here).

Not sure whether you should use Silverlight or HTML5? Scott Hanselman makes an astute observation: “Use HTML when it makes sense to your solution. Use a plugin when it provides unique functionality… Apply common sense”.

What is HTML5?

HTML5 is the next major version of HTML (HyperText Markup Language), the key coding language behind the World Wide Web. The previous version, HTML 4.01, was published as a W3C Recommendation in December 1999, and this new version is set to transform web development.

HTML5 provides new functions that provide a much richer user experience on what is a universal platform — without any need for a plugin.

In conjunction with the new version of Cascading Style Sheets (CSS3),  ”things that you used to have to use Silverlight, Flash, or custom/dynamic images for, you can now do with a single line of code” (Sanford).

New elements include:

(1) The Canvas Element used for “rendering graphs, game graphics or other visual images on the fly”.

(2) Video and Audio Elements make it possible to directly embed streaming multimedia without third-party plugins.

(3) Offline Web Applications – the ability for users to “continue interacting with web applications and documents even when their network connection is unavailable”.

(4) Geo-location support to make the most of a user’s location.

[See What is HTML5 Infographic]

Tim O’Brien, a general manager in Microsoft’s platform strategy group, has stated that they will place more emphasis on HTML5 at the upcoming Professional Developers Conference in September 2011.

So, now it’s time for Microsoft developers to prioritise HTML5.

Remember, HTML5 is not 100% complete, but you can get ready to use it.

Developers may anticipate using HTML5 in conjunction with MVC 3.  Visual Studio 2010 lets you work with HTML5 now — although you do need to make a small change after installing SP1. Scott Guthrie has a great blog post: “HTML5 Improvements with the ASP.NET MVC 3 Tools Update

You can delve into the many interesting sessions on HTML5 from MIX11.

- Alister


Software that’s Secure

March 8, 2011

The SAFECode organisation has just refreshed their whitepaper: Fundamental Practices for Secure Software Development.  It covers a broad range of security topics with brief overviews and best practice.  Each section then includes pointers to related tools and resources.  I recommend it highly.

I got the link through Microsoft’s Security Development Lifecycle (SDL) website.

-Krip


Is Microsoft finally up to scratch with its standards compliance?

February 17, 2011

Internet Explorer 9 (Release Candidate) was made available on February 10th.

As of today, IE9 RC has already hit the two million download milestone.

Microsoft says that — after four developer-oriented preview releases — they’re acting on feedback, and that “the product has made progress on all fronts — performance and standards, user experience, and safety and privacy.”

As a developer, as with every release of Internet Explorer, I’m asking:
Is Microsoft finally up to scratch with its standards compliance?

Microsoft’s recent blog features a table that claims that Internet Explorer 9 RC shows the highest compliance with Web Standards against that of other stable versions of mainstream browsers.

However, Paul Rouget (a technology evangelist at Mozilla) has pointed out in his blog post that this table is based solely on Microsoft’s own test cases and does not compare IE9 RC against other pre-release versions of other browsers.

He claims: “IE9 is definitely better than IE8 and a step in the right direction, but I don’t believe it to be a truly modern browser…”.

He lists a lot of stuff that IE9 doesn’t support.

HTML5 is not complete, and so the IE9 team are being careful what they implement. Rob Mauceri, Principal Group Program Manager of IE told Ars Technica, “Our approach to it is, let’s really get the standard right”.

IE9 does give Web developers a richer set of tools for building complex interactive sites:

  • Scalable Vector Graphics (SVG)
  • Canvas bitmap graphics
  • HTML5 video and audio elements.
  • Many parts of CSS3
  • WOFF web fonts
  • ECMAScript 5 and many parts of DOM level 2 and Level 3

So IE9 may still not be as standards compliant as other browsers, but I welcome the improvements.

The top features I’m most interested in are:

The new Javascript engine (Chakra), optimised to take advantage of multiple cores.
While interpreting the JavaScript in the foreground, it is compiling the Javascript into faster machine code optimised for your PC in the background and, as soon as it’s finished, it swaps to the compiled and faster code.

F12 Developer Tools
IE9 has built-in developer tools to aid rapid prototyping, testing, and debugging of webpages.  You can make change to code from within the browser itself which can then be previewed.  There is also a user-agent switching tool, a network traffic inspector, and improved JavaScript profiler, and integrated support for the newly adopted web standards.

I’d recommend you try it.  IE9 is available from www.beautyoftheweb.com

- Alister


Computing Visual Studio Code Metrics during Builds

January 31, 2011

Microsoft have just released a new command line tool for computing the same code metrics that Visual Studio provides.  These include Maintainability Index, Cyclomatic Complexity, Class Coupling, Depth of Inheritance, and Lines of Code. The tool is named Metrics.exe and can be downloaded here.

The results will be placed in an XML file whose schema matches the provided MetricsReport.xsd.  Jakob Ehn has already documented how to integrate this with TFS 2010 Build.  All that’s needed is an XSL file to integrate with CruiseControl.NET.

Thanks to Cameron Skinner for the announcement of the tool.

Update (1 Feb 2011): Please note that .NET Framework 4.0 is required for this tool.  Also it requires version 10.0.0.0 of Microsoft.VisualStudio.CodeAnalysis.Common so you should have Visual Studio 2010 installed.

-Krip


How to speed up SQL Server Management Studio

January 21, 2011

In some cases you will find SQL Server Management Studio (SSMS) slow to start up (could take up to a minute).

To resolve the issue uncheck the “Check for publisher’s certificate revocation” box in the Security section of Internet Explorer’s Options.  This disables a lookup on the Internet that could account for the time.  Note that this affects all managed applications (.NET).

Thanks to Euan Garden for the tip.

-Krip


SQL Azure Database Backups

January 20, 2011

While Microsoft has always ensured that your SQL Azure database is replicated multiple times for reliability, there is now a way to perform your own ad-hoc backup.  This is known as copying.  You can copy to the same server or to a different one.  The process is asynchronous.  Full details including the T-SQL syntax (CREATE DATABASE…AS COPY OF) can be found here.

-Krip


Sharding on SQL Azure

December 24, 2010

Sharding is a technique used to horizontally partition data across physical servers.  It is used to achieve high levels of scalability.  Each database in this architecture is referred to as a shard.

Microsoft has recently published a whitepaper to explain how sharding can be accomplished on SQL Azure today.  The application will need to implement the sharding logic and route calls to individual databases as necessary.  The whitepaper can be found here: http://social.technet.microsoft.com/wiki/contents/articles/sharding-with-sql-azure.aspx

The final section of the paper explains how an upcoming feature of SQL Azure known as SQL Azure Federations will make sharding much simpler and in the long run possibly totally transparent.  Clients will continue to route to one database, known as the root database.  That database will contain definitions for one or more Federations.  Each Federation will include the sharding details (known as Federation Scheme) – included is the Federation key(s) which describes how the data is partitioned.  Each Federation consists of one or more Federation Members which then map to physical databases.

A T-SQL command will be available to split a Federation unit into two, resulting in two physical databases with the data spread across the two.  The really cool bit is that SQL Azure will let you do this “online” by ensuring that the view of the federation unit is consistent until the split is complete!  And a T-SQL ‘merge’ is also planned which does the reverse.

I’d also like to refer you to Steve Yi’s post which explains this at a high level: http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx.  Steve is one of the reviewers of the whitepaper.

-Krip


Follow

Get every new post delivered to your Inbox.