

Martin Fowler: Snowflake Servers - javinpaul
http://server.dzone.com/articles/martin-fowler-snowflake

======
ColinWright
Here's the discussion from the last time this was submitted:

<http://news.ycombinator.com/item?id=4226099>

Discussion there is closed now, so if you have something new to add, here is
as good a place as any.

------
sophacles
Something I've been hoping for for years now[1], is a good "istance os". By
this I mean a super-stripped down linux or bsd kernel + userland, or
alternately a few heavily customized task based OS (or both). Instead of a
full OS for each application instance, you use and Instance OS. This will have
the bare minimum functionality to do the task it was intended for (caching,
database, app server, pub/sub broker, whatever), and the actual app itself. OS
and app tuning parameters can be passed via the kernel command line, and the
instance just does its job. Instances get launched and live in VMs - and you
can log/console, etc via VM manager utilities, and combined with a decent
tool-chain, it should be easy to just build/launch a new instance as needed
just like you would with an app anyway[2]. I see this sort of paradigm as a
huge benefit to PaaS vendors, anyone running their own platforms/server
clouds, and even just IT shops trying to keep Biff from doing stupid things.

[1] unfortunately I don't have the time to focus on this, nor do I have the
skillset required (yet).

[2] Or use good development practices, and run your app in a regular OS
instance for most development/debugging and then do final stages in the
limited environment before deployment in that env... just like you should be
doing anyway :)

~~~
zrail
You can approximate this right now with LXC[1]. Ubuntu has really good support
for it[2], but any recent kernel will be able to do what you need.

Basically, you install linux on a VM or a real hardware machine, then you use
LXC to partition off individual processes into their own little linux VM.
These VMs can be severely limited in scope, even going so far as to be
ephemeral (any disk writes go away at VM stop time).

[1]: <http://lxc.sourceforge.net/> [2]:
<http://www.stgraber.org/2012/05/04/lxc-in-ubuntu-12-04-lts/>

------
3am
rPath has been doing this for years, and with very deep version control of the
systems that are created from your blueprints.

