

Cast Project - The Open Deployment Platform - russell_h
http://cast-project.org/

======
tomazmuraus
Here is a link to the original news on the project website [http://cast-
project.org/news/2011/announcing-cast-preview-re...](http://cast-
project.org/news/2011/announcing-cast-preview-release/) and a blog post on the
Cloudkick website [https://www.cloudkick.com/blog/2011/apr/26/cast-the-open-
dep...](https://www.cloudkick.com/blog/2011/apr/26/cast-the-open-deployment-
platform/)

------
ssmoot
It seems like a nice project. I like that you don't need to know a particular
programming language to use it.

The way you define services feels a bit awkward though.

Also, it seems like install.sh scripts for various platforms would lower the
barrier to entry. The installation documentation is nice enough, but really
that should all just be scripted so it can be condensed to:

curl <http://cast-project.org/install.sh> | sh

Running runit scripts out of a user home-dir (as in the example) does feel
wrong to me though.

~~~
tomazmuraus
We actually do have an install script. It is not the best one, but you should
be good to go in a few simple steps:

1\. downloading a tarball 2\. unpacking it 3\. running "scons install"

Scons (our built tool of choice) is an extra dependency, but this shouldn't be
a problem since it's a prerequisite for Node.js itself (platform on which Cast
is built).

~~~
ssmoot
I got bored and wrote one for Ubuntu: <http://pastie.org/1837350>

I didn't try it, but probably pretty close to working. It does more than some
people might want, but I didn't write it for the pedants in the crowd. ;-)

------
ssmoot
So the actual process management stuff is built on top of runit?

Is this a Linuxey only sort of thing or are
FreeBSD/OpenBSD/OpenSolaris/OpenIndiana invited to the party?

~~~
pquerna
Runit runs just fine on top of FreeBSD and OSX (and Should work on OpenSolaris
/ OpenIndinana, though i don't have personal experience).

Nothing in cast itself is really linux specific, it should all work on any
Unixy-enough OS, and we have plans for how to do it on top of Windows too.

~~~
ssmoot
I don't suppose you have any hints for getting runit installed/running on
FreeBSD? There's a runit port, but it doesn't auto-start that I've been able
to figure out and I never have found any real documentation on it.

Back to Cast though, the "create instance redis0" example is basically just
creating a runit script?

Understood that "just" covers a lot, including the auth, agent, etc. But the
thing it's actually doing on the server (after building/installing the
requested package) is adding a runit script right?

~~~
russell_h
You're pretty much correct, but the building/installing step is responsible
for a lot more Cast code than the runit part is.

When you run "create instance redis0" the high level steps are:

    
    
        1. Create a new directory structure in which to install redis.
        2. Copy all the redis files into a version-specific location in that structure.
        3. Process any templates (for config files, etc) that were provided.
        4. Create symlinks from the version-specific install location into a version-independent data root.
        5. Create various symlinks for tracking the 'current' version, etc.
        6. Create the runit script.
    

I might be forgetting a step somewhere in there, but you get the idea.

edit: fix list formatting

