NodeOS / NodeOS

Lightweight operating system using Node.js as userspace
http://node-os.com
MIT License
6.93k stars 606 forks source link

Add optional support for provisioning out of the box #48

Open piranna opened 9 years ago

piranna commented 9 years ago

Issue by thedrow Friday Oct 11, 2013 at 06:39 GMT Originally opened as https://github.com/NodeOS/NodeOS-Docker/issues/2


Complex applications has complex infrastructure. It comes with the territory. These infrastructures depend on provisioning systems such as Puppet, Chef and Salt. Layer 4 should be the place to include these if needed. Docker has Dockerfiles for all of these.

However, NodeOS should only run Javascript. Puppet & Chef need Ruby. Salt needs Python. There's no NodeJS equivalent so it something to consider how it should be done.

piranna commented 9 years ago

Comment by groundwater Friday Oct 11, 2013 at 15:30 GMT


I recognize this concern, and I actually think that npm may be enough to supplant the need for a config management utility like chef.

The system boots by first starting init and then handing control off to a package specified by either grub if booting the base system, or by the docker run command. This package, which I'm calling the first runner decides exactly what services to start and how.

Bottom line, given how easy it is to create and public new boot packages, we may not need things like Chef. Only time will tell.

piranna commented 9 years ago

Comment by thedrow Saturday Oct 12, 2013 at 07:25 GMT


But how do you freeze configuration on the machine? Provisioners are used to verify that you have all the dependencies you need and exactly them. Otherwise you might have what DevOps engineers call configuration drift if you install a higher version of a dependency of a dependency which you are already depending on for example. And that's bad. That's how "works on my machine" starts happening.

Also, if a hacker wants to destroy a system by removing dependencies he won't be able to. The provisioner will install the dependencies back. Even if you deactivate the provisioner, re-installing the dependencies is much easier. It's simple to activate the provisioner and you are back online.

piranna commented 9 years ago

Comment by cdnsteve Wednesday Sep 10, 2014 at 22:35 GMT


Could http://gulpjs.com/ replace Chef or the other Devops tools?