Your current filters are…
In unreliable networks, with unreliable processors (also known as “The Cloud”) one must know all the ways their thing can fail; and just as importantly, how to recover. It is even better to have the ability to recover in an automated way. I’ll go over the common failure conditions in distributed systems, and then introduce you to Doozer, the highly-available, consistant data store that makes recovering from these problems easy.
by Noah Zoschke
The Heroku application platform makes deploying, running and scaling applications incredibly easy.
Traditionally these apps have been Ruby web applications. But as both the platform and its users mature, we are seeing the complexity of hosted apps increase, with more complex infrastructure systems running on Heroku.
Today, nobody is more interested in running infrastructure on Heroku than Heroku itself, as self-hosting offers massive benefits and is a fascinating engineering puzzle to boot.
We will first discuss the concept of self-hosting and why it such an interesting computer science problem, and a vital property of many systems. Compilers, revision control systems and application platforms all exhibit similar properties of bootstrapping, cross-compiling, and avoiding circular dependencies.
Then we will take a look at the more interesting self-hosted components of Heroku such as the distributed process management application that is responsible for keeping track of of everything running in the cloud including itself, and the distributed application compiler that used to be a server farm but now is little more than a Heroku app that can even compile itself for releasing new versions.
All of this will show how working towards a self-hosted platform results in comprehensive consistency assurance and gains in efficiency, noble goals for such a complex software system.
18th–20th September 2011