BPM is a Process manager for nodejs projects
Author: Elad Yarkoni
BPM is a production process manager for Node.js applications developed in go language. It allows you to keep applications alive forever and to run them in a cluster mode.
BPM gives you a set of tools to manage your node production processes through command line or even remotly.
BPM is using a local http server as a god of all nodejs processes.
The bpm command will start the server if its not started yet and communicate with it through rest api calls.
The BPM local http server is using Google LevelDB, a fast key-value storage library, to store your projects data and status.
Eventually, The bpm http server monitors your running nodejs processes. you can use the http server remotly to take a full control over your nodejs projects.
Any bpm command line will do the following:
- Starts the local http server is its not started yet
- Makes a rest api call
- Gets a Response
- Prints the response to command line
$ go get -u github.com/eladyarkoni/bpm
This command adds the nodejs project working directory to BPM.
$ bpm add <node_project_directory>
The node project must have the package.json file with the main script configured.
BPM is using the main script to start the process.
{
"name": "node-project-name",
"description": "node project description...",
...
...
"main": "index.js"
}
This command starts the nodejs project processes.
$ bpm start <package_name> [cluster_processes_number]
cluster_processes_number: The number of processes to start the project in cluster mode.
- If cluster_processes_number is not defined or 0, then, the node project will be started in normal mode.
This command stops the nodejs project processes.
$ bpm stop <package_name>
This command gets the status of all nodejs projects that are managed in BPM.
$ bpm status
BPM is going to be the ultimate solution for managing NodeJS projects on production environment.
Here are some of the features that are going to be developed in the near future:
- Process resources monitoring (Memory, CPU...)
- Autoscaling support
- Alerts configuration for DevOps
- Deploy: Deploy nodejs projects to remote servers.
- BPM Center Orchestrator: Manage nodejs projects over multiple servers
And more...
BSD-2-Clause.