Today, Netflix released yet another component of its infrastructure as open-source software — this time the culprit was Hystrix, a library to aid in building resilient software, while just last week Netflix opened Blitz4j, a framework for scalable logging. They join a growing array of the core components of Netflix’s well-known cloud-based architecture.
Building software with a true cloud-based architecture, resilient to arbitrary (sometimes large) chunks of the infrastructure instantly disappearing from under the feet of the running application, is notoriously difficult. Netflix has spent years building and hosting on Amazon’s AWS cloud. The rest of the world benefits greatly from the knowledge and code shared by Netflix about how to keep a large-scale service up and running when it resembles the Biblical house built on sand.
As usual, packaging is a great opportunity — in this case, to be the vendor who provides the lowest barrier to entry to building complex cloud software. While Netflix has released its software in a collection on GitHub, what will make it truly approachable to developers and companies who are generally unfamiliar with the cloud is aggregating and integrating all those bits together into an easy-to-install, easy-to-use bundle. When I brought this up on Twitter earlier today, Jeff Sussna argued against it:
Their focus is on large complex apps so not sure it’s for the “idiot-proof” market.
I would suggest that the reason this kind of thing hasn’t been for the beginning user, or the smaller application is not because it shouldn’t but instead because it’s too difficult and not worth the tradeoff. If it were relatively easy to have a redundant architecture where you could essentially drop in your app, people would do it far more often. Think convention over configuration [writeup/video].