Windows Azure re-imagined: Microsoft's fit for the cloud

Windows Azure re-imagined: Microsoft's fit for the cloud

Summary: After more than three years on the market, and an under-new-management experience, Microsoft's Windows Azure cloud computing platform looks comprehensive and highly competitive.


Microsoft finally took the wraps off its revamped cloud computing platform, Windows Azure, today.  If what was shown today lives up to the demos, it will put Microsoft into a whole new league.  Windows Azure has moved light years ahead of where it was in terms of power, flexibility, and usability.  More than that, though, Azure has transformed itself from a private club with a bunch of arbitrary rules to an inclusive society governed by common sense.

The dark days That may be a little melodramatic, but it's not an exaggeration.  When Azure first launched, it was, at its core, a Windows Server-based platform for running .NET Web applications and services.  And at the same time that it catered to that particular platform choice, it also imposed awkward requirements that the developers in that demographic found foreign.

The reason for these requirements?  Windows Azure was designed as a pure Platform as a Service (PaaS) cloud.  The PaaS scheme, in theory, is superior, because explicit management of virtual machines is not required.  You simply deploy your apps, storage, databases, and so forth, and the rest is taken care of for you.  But the PaaS scheme also prevents you from administering machines directly and, for some applications, that's quite inferior; it can even be a deal-breaker.

The competition On the other hand, an Infrastructure as a Service (IaaS) cloud, like that of Amazon Web Services' Elastic Compute Cloud (EC2), forces you to manage your machines directly, but in doing so enables most on-premise applications to run.  EC2 was Linux-only when it launched, but Windows instances were added early on as was a companion SQL Server option.  The IaaS architecture and choice in operating systems has made EC2 very popular, and that hasn't changed.

Back on the Azure side, file and key-value data storage services replaced conventional file access.  Local drives were present but offered only "ephemeral" storage; in other words, if your Azure virtual machine instance were rebooted, all changes to the local disk would be lost.

PaaS vs. IaaS Access to the actual desktops on the virtual machines was unavailable.  Deployment of your applications took minutes as the underlying virtual machines were deployed, and had to be done through a Web portal that...well...was built to lower productivity standards than Visual Studio, or just about any other development environment.

Things did get better.  A cloud-outfitted version of Microsoft's SQL Server relational database was added.  Databases were limited in size to 10GB, but that maximum has steadily increased and now sits at 150GB.  Distributed caching was added too, albeit based on Microsoft's own technology code-named "Velocity" rather than the popular open source distributed cache called Memcached.  The Azure portal was improved, and creature comforts like Remote Desktop, admin Web server access, VPN support, a traffic manager and database reporting came too. "Queues" and "topics" were added to the Azure Service Bus, providing message-based middleware.  For the enterprise at least, Azure had become much more flexible.

Tricks and tweaks, for flexible setup Tools that aided in the scripted installation of software allowed Azure compute instances to be treated more like a conventionally administered server, but it was a work-around.  You can't make a PaaS compute instance become an IaaS instance. A beta of an Azure "VM Role" provided a real IaaS solution solution, but in Beta it stayed.

Microsoft strecthed Azure to make it support the PHP Web development language popular in the open source and startup world, but did so expecting those developers to use SQL Server as their database. Given that most PHP developers work with the open source MySQL database by default, Microsoft still had great difficulty making its case to startups.  It seemed tone deaf to all except .NET developers and even that constituency was not monolithically on-board.

Worst of all worlds Microsoft was challenged on every front. Lack of an IaaS option blocked enterprise adoption.  Lack of support for Linux and many open source technologies kept the startups away.  And though prices had come down quite a bit over Azure's lifetime, entry-level solutions were still cheaper to deploy onto low-end hosting accounts.

When Microsoft Corporate Vice President Scott Guthrie moved from Microsoft's Developer Division to take over the Azure team, he had his work cut out for him.  Guthrie, who is somewhat of a folk hero in .NET developer circles, confused some people by the move. But others were left thinking that if anyone could rationalize Azure, tie up its loose ends, make it fun and easy to use, and make its cross-platform story strong and credible, it was Guthrie.

A year later, it's a new cloud That latter camp was seemingly proven correct on Thursday, as Guthrie keynoted the Meet Azure event live in San Francisco, and streamed online for all to see.  In his customary red polo, Guthrie announced, discussed and demoed the numerous additions and reworkings of the Windows Azure platform.  It was as if someone created a punchlist and Guthrie carefully descirbed how his team had nailed every item on it.

Here's a rundown of what's new:

  • Azure now supports Linux virtual machines using any of several distributions.  Ubuntu, Suse and CentOS are on the list; Red Hat is not
  • A true IaaS option, with durable storage, is now available and the VM images are 100% compatible with the Hyper-V virtualization platform on Windows Server, allowing them to be run on-premise or in the Azure cloud
  • In addition to .NET, applications written in Java, PHP, Node.js and Python get first class support
  • Beyond Microsoft's own Team Foundation Server, deployment from source code repositories in GitHub Git are Azure-compatible too
  • In addition to SQL Azure, developers now have access to a PaaS implementation of MySQL
  • Popular NoSQL databases are supported too.  Cloudant offers a PaaS implementation of BigCouch, its API-compatible implementation of CouchDBMongoDB is available as well
  • Azure's distributed cache is now API-compatible with Memcached.  This means PHP code written against MySQL, and which uses Memcached for caching, can run on Azure's PaaS platform with very little if any change
  • Application deployment has been sped up significantly
  • New so-called Web Sites, which can be developed in .NET, PHP or Node.js, make Azure competitive with low-cost hosting accounts. How competitive? You can deploy up to 10 apps, in the Multi-tenant environment, for free. Azure Web Sites offer simplified deployment, quick provisioning of popular apps like WordPress, Drupal and Joomla, and the ability to run on-premise as well.
  • Deployment tools for Linux and Mac were introduced, and the Eclipse tools were updated
  • The Azure Management portal has been completely revamped and tested to work well in a number of browsers on a few different platforms.  Microsoft has even added a command-line tool for performing all portal-based functions, and REST-based application programming interfaces (APIs) that do likewise.

Swing your partner These changes really put to rest a number Azure's chief criticisms. I think a key ingredient here is not just the support for non-Microsoft technologies, but actual, numerous partnerships with many of the companies behind those products.  This includes 10gen for MongoDB, Cloudant for CouchDB/BigCouch, Joyent for Node.js and more.

I cover Big Data for this Web site, and although Microsoft is incubating an offering in that arena (including an Azure-based flavor) the Big Data world in general is well removed from the Microsoft universe.  But lately more of the vendors I talk to about Big Data are telling me that they've been working with Microsoft to get their products running on Azure.  These worlds used to be a long distance call away, and you'd have to dial a country code first. Now the call is a local one.

Folklore I've heard some Azure stories.  In one of them, Scott Guthrie, on the first day at his new job running Windows Azure, put himself through the process of coding, deploying and managing an application on Windows Azure.  Guthrie wanted to see this process end-to-end, and be hands-on with each step involved.  The story goes on to say that he was perplexed and disturbed by what he saw and vowed to get all the inefficencies out, and make the hodge podge tooling and procedures into something unified and elegant.

In another Azure story, a C-level Microsoft exec has Azure's first boss and original visionary in his office.  The C-level exec, speaking with a down-home accent, asks why the Azure business isn't doing better.  The boss responds by saying PaaS is the right way to go, that it's the future, and that people are still learning that it's the best solution.  The C-level guy then says: "Well, that may be.  But tell me something.  How does it feel to have your @$s handed to you by a bookseller?"  The story goes on to explain how the meeting with the C-level ended and that it was that boss' last."

I imagine there's at least some legend and exaggeration involved in one or both of these stories.  But it does seem like Guthrie made a list of things he needed to change, and then he and his team achieved those changes.  Once these new features become available to the public, Microsoft's got a cloud platform it can really sell.  And it might just take its rear-end back from that "bookseller."

Related Links:

Topic: Cloud

Andrew Brust

About Andrew Brust

Andrew J. Brust has worked in the software industry for 25 years as a developer, consultant, entrepreneur and CTO, specializing in application development, databases and business intelligence technology.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • .

    *waits for the linux geek to pounce with a FOSS comment"
    • I honestly do not get the penguinistas

      I want a cloud provider that offers a good SLA and has the financial backing to endure. There are only a handful of companies like that, Microsoft being one of them. If I can get my Linux up and running on Azure's fabric and know that it is going to be reliable, why would I care that it is Microsoft?
      Your Non Advocate
  • Guthrie: Microsoft's Future CEO

    Take out the folk in folk hero. Guthrie is just a hero, plain and simple. When he ran .Net, he often blogged and showed in his own code samples how to achieve something, and then frequently responded to blog comments. He was a great champion for the platform.

    With Guthrie running Azure, it is bound to take off. He has geek cred, but also uncanny common sense and business sense. Microsoft really needs to make sure he is well taken care of. He and others like him are its future.
    • I disagree

      I predict Steven Sinofsky as Microsoft's future CEO. Scott Guthrie is very smart and highly technically inclined but it's doubtful if he has the business chops to run a corporation like MS.
  • All hail Scott the Gu.

    Anywhere I see great leadership in display, I bow. Wherever people take failure and turn it to success, I rejoice. I know what mishmash of confusion Azure was some years ago and what I see now is just pure magical transformation. This guy, Scott, should be watched, he's going places.
  • Why Azure?

    if Amazon EC2 provides everything that's needed, why would anyone risk their LOB apps on Microsoft's 2nd rate infrastructure? The saying goes - "if it aint broke, don't fix it". Amazon EC2 is the IAAS gold standard, there is no reason for any business to use Azure.

    Really - fanboys, show me a list of 5 compelling reasons why anyone should choose Azure over EC2.
    • Why Azure

      1) Provides PAAS which EC2 doesn't. This is boon for many businesses.
      2) SQL Azure PAAS setup is better than Amazon.
      3) Better pricing if you use the Windows stack.
      4) New administration portal is much slicker and easier to use than Amazon's.
      5) Gold standard infrastructure, rather trust a company that has long history of providing server software to the enterprise than a book seller.
  • OK, I'll take your bait...

    MS is now both an agnostic IAAS provider as well as a .NET PAAS provider. In other words, it's offering has both high and low ends, covering a broader spectrum. If pricing is competitive, you don't need anymore reasons. It fits more use cases than EC2.
    • Business trust Amazon more.

      Microsoft has made many enemies and I think it's their ultimate downfall!
      • Amzon

        This is rubbish. Fanboy's with their brilliant new social network they wrote over the network in Rails and MongoDB might have this opinion. Real businesses make much more impartial decisions.
      • Companies listen far too much... their IT staff, trained at ITT Tech to spout "Mi-cro-soft, Mi-cro-soft, Mi-cro-soft" like the zombies in The Mummy, "Imhotep, Imhotep, Imhotep."
        Tony Burzio
  • Windows Azure re-imagined: Microsoft's fit for the cloud

    my friend's mother made $263164 so far just working on the laptop for a few hours. Read more here N u t t y R i c h dot cOm
  • The biggest problem for business... that since Microsoft keeps changing their software platforms, the cost of keeping up with the latest "oh, we got it right THIS time, we promise!" is extremely high. Add in Microsoft security problems, and you may as well declare bankruptcy right now and save your company the heartache!
    Tony Burzio
  • Great Article

    Aside from the inevitable knee jerk responses...

    This is an excellent article. Covers a lot of what this about in a nice short article.

    To me it looks as though Scott has nailed the obvious annoying aspects of Azure. I'm all for competition. For me Amazon and Azure are full strength and probably Rackspace too. This is better for everybody who wants to use Cloud.
  • Reality - Microsoft's support for non-Microsoft stuff is just a checkbox

    The original Azure plan was to extend Windows from on-premsise servers/desktops to the cloud. This was covered up by making it sound like it was a totally new platform/OS. Later Microsoft admitted it was really Windows Server. It was never about platform or language independence as some fanboys/marketers are now claiming. Their hypervisors are designed to virtualize Windows specifically and its hard to port other OSes to them (and you get weird performance and stuff if you do).

    Microsoft may not be totally unified behind that strategy anymore(as its not working/well), as some groups are pushing for just letting customers run whatever they want, so Azure would be like a utility service (the power company doesn't care what you do with electricity, as long as you pay for it).

    These groups, or marketing (to the cloud!) are who's responsible for the efforts to try and get non-Windows/non-.NET people to try Azure. Microsoft's spending is still all oriented to getting you to switch to Windows AND .NET.

    The current state of the (new) Azure is still:
    -Linux support is limited to a few distros. They are popular distros, but pretty much any other distro will not function (not that they're blocking it, it actually won't work - its not compatible with the azure hypervisor)
    -Linux runs only in the VM role(no PaaS for Linux, just IaaS). your app would function/be architected just like EC2, except that performance is lower, so you're gonna need more servers and spend more money
    --Web and Worker roles (unlike the VM role) will allow for scale-out, backup and redundancy if you (re)write your app for Windows and Azure
    -With Linux, you're still gonna be hosting your own RDBMS, just like you can on EC2 (or use Amazon Relational Datastore), because you can't use Azure SQL Storage from Linux without a major functionality/performance hit
    -No jcloud or libcloud support
    --To make a major service work on IaaS like EC2, you need PaaS. Adding PaaS to your app will require code changes/additions. Projects like JCloud and Libcloud exist so that your app will be portable.
    --Otherwise, you just get IaaS. You get a single server, no scale-out, backup, etc...
    -Java, PHP, Node.JS, Ruby(MRI), Python APIs are only for running your application on Windows
    --You'll take a functionality/performance hit running those languages/platforms on Windows, except (maybe) for Java and Node.JS but only because of the work Sun and the Node.JS project have done
    --Microsoft may support those languages on Windows(just to try to get you to switch), but has like 10 times as many people working on the .NET support
    -even with .NET (the preferred, the Microsoft approved and blessed approach) app code changes often take 20 minutes+ to an hour to take effect. .NET developers might actually be better off on AppHarbor (EC2 based)
    -Azure pricing and performance (for Windows) is about the same as EC2
    --has same privacy, security or compliance problems as EC2
    --EC2 has other related services (Relational Datastore, Cloudwatch) that Azure doesn't
    --Amazon's tradition has been that if their datacenter goes down, they're out of business, so they don't let it happen (often)
    ---Microsoft's tradition has been, if it breaks, buy a new one
    ---EC2 has some negatives too, but its generally much further along
    --what does Azure give you that EC2 doesn't?

    Bottom line: Azure has improved a lot. For enterprises, its an option to consider (in detail). But, for the rest of us(individual people, projects, groups, startups, most other businesses), its still not worth it.