3 ms·
Heroku doesn't get enough credit for their technical achievements. I work for a company - Pivotal - which is, indirectly, a Heroku competitor. We're the main c
by jacques_chester 12y ago
Heroku doesn't get enough credit for their technical achievements.
I work for a company - Pivotal - which is, indirectly, a Heroku competitor. We're the main contributors to Cloud Foundry, which is a PaaS that can be deployed to private and public clouds.
PaaSes are more than "deploy and wire the app"; there's actually an eye-blistering amount of complexity below the hood.
If you're prepared to ignore legacy, sure, all that complexity goes away. But so does a lot of accumulated capital in the form of existing software.
That being said, I think unikernels are a very promising line of attack on service isolation that warrant further effort. I spent some time last week poking around the Cloud Foundry codebase looking for places to inject changes.
My first impression[0] was that Diego would need some additions. That's still true, but I think that the logic changes are going to be less about the Diego Executor (which mostly knows how to drive Garden-managed containers) and more about introducing a new Stager backend[1]
I also now think that there'd need to be a Xen backend for Garden. So long as you implement the generic Garden API[2], Diego can use that to create and manage what it thinks of as containers.
During my free time last week I deliberately went looking for "architecture-busters", use cases and application platforms that strain or break how the Cloud Foundry architecture works.
Unikernels are one of the best examples I came up with. They severely stretch the architecture at staging time. But they also show the strengths of the Diego/CF architecture, which is in fact totally agnostic of containerisation strategies. That's why Diego allows CF to run buildpacks and mount Docker containers currently. It's why .NET applications are close behind and why unikernels are actually a legitimate possibility.
[0] https://news.ycombinator.com/item?id=9264241 https://news.ycombinator.com/item?id=9264241
[1] https://github.com/cloudfoundry-incubator/stager/tree/master/backend https://github.com/cloudfoundry-incubator/stager/tree/master...
[2] http://godoc.org/github.com/cloudfoundry-incubator/garden http://godoc.org/github.com/cloudfoundry-incubator/garden