Netflix is continuing its habit of releasing cloud tools to the open source community with the announcement that the source code for Asgard, the video provider’s web interface for application deployment and Amazon Web Services cloud management, is now available under an Apache 2.0 license.
Now, Netflix is a prominent Amazon Web Services customer, and as recently as last week’s GigaOM Structure the company unofficially indicated that it has no plans to migrate off the service provider’s platform.
But Amazon Web Services’ infrastructure-as-a-service platform and Netflix’s cloud model are a few steps abstracted from each other. In other words, Netflix needs to deal with concepts – specifically applications and clusters – that Amazon Web Services just isn’t equipped for. Enter Asgard.
As Netflix’s Joe Sondow explains in a blog entry, any given application, contained in an Auto Scaling Group (ASG), can have Amazon Elastic Load Balancers attached, which in turn direct traffic to instances. Every ASG has a launch configuration, and can launch and terminate instances. Every Amazon Machine Image (AMI) contains the operating system and common infrastructure (like Apache or Tomcat), as well as the specific application version. And that’s not to mention security groups
That’s a lot of stuff to keep track of for a single application, and Netflix has many, many cloud objects. That’s why it was imperative to come up with an application registry backed by SimpleDB that can match cloud objects to their application and owner.
As far as clusters, Asgard can take a bunch of the aforementioned ASGs into groups, associated by naming convention and distinguished by incrementing version numbers.
Other features in Asgard include: Fast rollbacks, which can diminish downtime due to a botched deployment; rolling push, where old instances in an ASG get deleted and replaced by new ones one or two at a time until the old ones are replaced; task automation; auto-scaling.
There are caveats, first and foremost amongst them being that Asgard provides auto-scaling and automation and plenty of other goodies, but you’re still on the hook for your Amazon Web Services usage. But the benefits of using this management layer, which include separating out Asgard access from access to the underlying AWS Management Console, a better way to enforce conventions, user action logging and more.
Netflix plans on releasing new versions of Asgard to the repository on GitHub, and hopes that the community will also help develop it. I’m curious to see what developers build using the Asgard source code.