Joe Masters Emison| Informationweek
On March 13, Netflix announced $100,000 in prize money for the developers who do the most to improve its open source tools for controlling and managing application deployments on cloud computing. Before spearheading this contest, Netflix’s cloud architect, Adrian Cockcroft, released many internal Netflix tools as open source. Currently, 8 cloud-architecture-specific tools are available from Netflix, and Cockcroft has been very open in sharing his and Netflix’s knowledge in public forms.
In theory, all of this should be wonderful. In reality, however, it’s likely to leave cloud computing with an enormous hangover of subpar practices and architectures for years to come. Netflix is the poster child for “Cloud Computing v1.0” and demonstrates both the enormous benefits and troubling problems. Cloud Computing v1.0 is a strictly an Amazon Web Services affair — it was first, and no other provider had the core features necessary to build comparable applications (think multiple availability zones and EBS with snapshots and quick restores). So it makes sense that Netflix embraced AWS; it saw huge benefits in being able to deploy and scale its service using the interfaces and architectures that were possible when AWS launched.
But Netflix has also suffered repeatedly at the hands of Cloud Computing v1.0 with four outages in 2012 alone, which certainly points to the possibility for some improvement in the high availability of its service. Of note, the Christmas Eve outage is perhaps most troubling from a “v1.0” perspective, as it was solely the result of Netflix’s reliance on a less-necessary AWS service for load balancing, which could have been handled in any number of other ways to increase server availability.
The reason the Netflix contest is likely to leave organizations worse off is because it thoroughly embraces this “Cloud Computing v1.0” mindset, both from an “AWS-is-the-only-vendor” standpoint as well as from an architectural standpoint. While it’s arguable that there still isn’t (quite yet) another infrastructure-as-a-service (IaaS) vendor that has a thoroughly tested core feature set, unless you just walked out of the tattoo parlor with “#AWS” on your shoulder, you know it won’t be long. And all companies running on AWS should be looking forward to the rise of additional IaaS vendors, like those in our IaaS buyer’s guide, for two reasons: higher availability and price competition.
Every cloud architect should know that it’s only a matter of time before organizations have applications deployed across the world on many different IaaS providers in many different data centers, based on request volume and location in combination with a market for computing resources that changes price constantly. Locking yourself down to AWS today, for greenfield cloud architectures, would be the equivalent of deciding to develop an iPhone-only application when you know you’ll have to support iPads, Android and others in the future.
In addition to the annoying AWS-centrism of the Netflix contest, there’s a deeper problem: Some of Netflix’s tools embrace a cloud architecture that was fine in the days of Cloud Computing v1.0 but that will look increasingly suspect as time goes on. I know that it’s hard to throw out code and systems that are working fine, especially when they still look pretty good — and often, squeaking out a bit more time is the right internal decision for an individual company. But instead of just wringing out the last bits of value, Netflix is throwing significant money at the rest of the world, asking everyone to embrace and extend their tools and code that are not particularly good practices for future cloud architectures.
Perhaps the best example of a bad-practice Netflix tool is Aminator. Aminator helps you build Amazon Machine Images (AMIs) easily, based on a “base” AMI and a package of code. “I must have produced about 25,000 Ubuntu AMIs,” raved one excited early user. There’s just one problem: It’s hard to understand when this would ever be a good idea. Several years ago, spawning tons of images would have been a somewhat acceptable way to roll out a revised version of an application (due to application code, operating system, and/or server software). But today we have widespread adoption of configuration management tools like Chef and Puppet that make massive AMI creation a subpar practice at best. Amazon Web Services itself recently rolled out a service called OpsWorks, which would be a significantly better way to handle deploying applications — it uses Chef.
There are other less-bad tools, but many bear the mark of having to architect around a number of issues that have since been more or less resolved; it’s a bit like an open source project that relies heavily on SOAP instead of being RESTful. For example, Edda, which figures out what cloud resources you’re using at AWS, just seems like something that had to be built because no one properly set up how resources should be requested and deployed. And Asgard, a very cool tool from 2010 for managing a variety of different applications across AWS, would be a hard sell as a best-of-breed tool today compared with other open source options, notably Scalr and Chef.
This is not to say that all of Netflix’s open source cloud tools fit into this mold. Denominator is a great DNS manager (because it’s multi-cloud), and Simian Army is a fabulous, ground-breaking idea for testing cloud architectures (it is, unfortunately, AWS-only).
There’s a possibility that the Netflix contest will help lead the world toward Cloud Computing v2.0 and beyond by embracing multi-cloud architectures that use orchestration and configuration management in optimal ways. However, I am skeptical on both fronts. Cockcroft’s public comments suggest little interest in using other cloud vendors. A good chunk of the prize money is in AWS credits, and Amazon’s CTO is a judge; all this points to a very AWS-centric mindset. Moreover, the fact that Netflix just released Aminator last week indicates to me that Netflix is happy to roll out whatever tools they’ve built, regardless of whether they fit in with a best-practices modern cloud architecture.
But please, Netflix, prove me wrong. Embrace a less proprietary, more highly available, more standardized cloud — and put Google’s Urs Hölzle on the panel while you’re at it. #UrsForNetflixJudge