Raft - Open-Source PaaS

The idea behind raft and mangoraft.com is to give the node community a 
fully-featured Platform as a Service (PaaS). Raft gives you a provision of 
CPU, memory, disk space and bandwidth. From this the sky's the limit in 
what can be build. Sites and services ranging from the weekend projects to 
large scale production sites are able to take advantage of raft. Full 
instances of a UNIX system is available from with in the running 
allocation. Each application is run in its own chroot jail. Keeping all 
other applications sharing the system safe.
<https://github.com/MangoRaft/Raft#convenient>Convenient

Deploy your application in under 30 seconds. Fast deploys mean even more 
time to build and debug your applications.
<https://github.com/MangoRaft/Raft#scalable>Scalable

Run more than one instance of your application. A global footprint is no 
problem, run your application independent to any LaaS providers or even run 
it on your own hardware.
<https://github.com/MangoRaft/Raft#distributed>Distributed

To take advantage of today's cloud provider. raft has been built to run on 
more then one server that is running in more than one data center. Raft 
uses a distributed event system allowing you to run more than one instance 
of each service. So if you wanted to host tens of thousands of your 
favorite express app, raft can do it.
<https://github.com/MangoRaft/Raft#open-source>Open-source

All the code is open source. If you would like to run your own copy of raft 
you can. Even better then the git repo is that you can install it all with 
one command. "npm install raft-hooks -g" this will install a program called 
hooks. Take a look at "hooks -h" for help on how to use the client.
<https://github.com/MangoRaft/Raft#status>Status

Lots of work is been done on Raft. If you would like to know more please 
drop us a line!
<https://github.com/MangoRaft/Raft#installation>Installation

Install raft

$ npm install raft

Install raft-hooks

$ sudo npm install raft-hooks -g

<https://github.com/MangoRaft/Raft#core>Core

The core features of raft are a set of hooks that allow ease of adding more 
Feature latter one. With a distributed process module adding and removing 
part is no problem
FeatureStatusCommentDistributed Event SystemcompleteThe system used to 
distribute event to all processesRoutercompleteThe router is in working 
state. Over all seems to work well.SpawnercompleteWorking copy of the 
spawn/spawner. All feature are in placeLoggercompleteFull package logging 
in real-time.StatscompleteLoad and memory usage for each spawn.Deploy/SnapShot 
ServerincompleteDeploy server creating each package snapshot.API Server
incompleteREST api server for managing user 
packages<https://github.com/MangoRaft/Raft#hooks>
Hooks

Raft-hooks are a set of command line programs for running raft.
CommandStatusCommenthooks hubcompleteThe main event serverhooks router
completestart the router processhooks spawncompletestart the spawn processhooks 
loggercompletestart the logger process<https://github.com/MangoRaft/Raft#cli>
Cli

The comamnd-line program for managing packages hosted by raft
CommandStatusCommentraft deloyincompleteDeploy to 
raft<https://github.com/MangoRaft/Raft#addons>
Addons

Other hooks that could be added on latter. Any action could be an addons to 
the system.
AddonsStatusCommentWebUIincompleteWebui will be the web console to raft. 
Allowing users to manage their app from the webEmailerincompleteEmail addon 
for each packageffmpegincompleteVideo encoding service / Image resizeing

The raft services are a set of hooks that make up the event system. It 
consists of 2 modules that are on npm. The first is "raft" and the second 
is "raft-hooks". Raft is the core components of the system as a whole. 
Raft-hooks is a command program to run the event system.
<https://github.com/MangoRaft/Raft#the-hub>The hub

The hub service is the event distributor for all other services. The hub 
service is the first service that must start. The idea behind the hub to to 
start it and forget it. You will never have to interact with the hub once 
it has started.
<https://github.com/MangoRaft/Raft#router>Router

The Router is used to proxy http and web-sockets to the corresponding 
application. You can run more than one instance of the Router. The idea is 
that the Router sit in front all other services and applications and proxy 
from a URL to host:port. If you where to query test.mangoraft.com your 
request would first go the the Router then be piped to the next application 
port. The Router does not have to be on the same server your applications, 
as long as the two processes can connect to one another thats all it take. 
To deal with many hundreds of thousands of request you may run 5, 10, 25+ 
instances of the Router. So that would be 25+ servers running an instance 
each of the balanRoutercer. The Router uses the native node.js cluster API 
to take full advantage of multicore processors.
<https://github.com/MangoRaft/Raft#spawn>Spawn

The spawn is the bulk of the "hosting" system for raft. It controls the 
starting and stopping of the application's. The spawn uses npm to install 
all needed dependences. Once the dependences are install the spawn will 
start up your application. Every application is built off the most basic 
package.json. all that so required is the app name, domain, dependences, 
start script and version. The package would be the same as npm's package 
for a module just that it does not need a user value. You can run more than 
one instance of each application. This allows for a true scalable node.js 
environment. The spawn is capable of running your application with versions 
of node "0.4.x>=". For every server you want to have hosting applications 
you need the spawn service running. You can have endless count of servers 
running the spawn.
<https://github.com/MangoRaft/Raft#snapshot>Snapshot

The snapshot is all about keeping track of different version of your 
applications. Every time you push or deploy to raft is creates a snapshot. 
If ever you need to revert to an earlier version of your application you 
would do so with the snapshots.
<https://github.com/MangoRaft/Raft#logger>Logger

The logger is used to keep track of all application stdout, stderr and npu 
output's. You can watch logs in real-time giving you a better debugging 
experience. By the end of the spawns life the stdout and stderr will be 
stored in the storage object.

I would love to get the input from the community about Raft. What you like 
about it or what you might not. What thing would you want to see and 
what features you this Raft can go without.

GitHub: https://github.com/MangoRaft/Raft

Home: http://mangoraft.com

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to