Sie sind auf Seite 1von 30

Survey of Node.

js Process Managers
Who am I:

Sam Roberts
email: rsam@ca.ibm.com
github: @sam-github
twitter: @octetcloud

Who are you?


Have written Node.js code?
An entire application?
Deployed an application?

A Process Manager Is:


Not an Application Server!
Runs node applications, but does not manage the HTTP
Includes tools to interact with the manager

"Process Managers", or the like:


Bluemix: https://console.ng.bluemix.net/
API Connect Collective:
https://developer.ibm.com/wasdev/blog/2016/02/17/managingpolyglot-environment-strongloop-liberty-docker-containersliberty/
strong-pm: http://strong-pm.io
pm2: https://github.com/Unitech/pm2
forever: https://github.com/foreverjs/forever

Restart on failure

Bluemix: Yes
Collective: Yes
strong-pm: Yes
pm2: Yes
forever: Yes

OS startup script support

Bluemix: N/A
Collective: No
strong-pm: Yes
pm2: Yes
forever: No

Dynamic/persistent env variable configuration

Bluemix: cf env/set-env/unset-env
Collective: apiconnect env:set/get/list
strong-pm: slc ctl env-set/get/list
pm2: As part of ecosystem configuration
forever: No

Log aggregation/rotation

Bluemix: Yes, but needs a forwarder setup for persistence


Collective: No
strong-pm: Yes; log file and syslog
pm2: Yes; multihost, with rotation. Log file only; no syslog
forever: No

Multiple app support

Bluemix: Yes
Collective: Yes
strong-pm: Yes
pm2: Yes
forever: Yes

Language Support

Bluemix: Node.js and Java, Go, PHP, Python, Ruby


Collective: Node.js and Java
strong-pm: Node.js
pm2: Node.js (some support for shell commands)
forever: Any script

Lifecycle Tooling

10

Run app locally

Bluemix: No
Collective: No
strong-pm: slc start
pm2: pm2 start app.js -name foo
forever: forever start app.js

11

Build and package repositories

Bluemix: Yes
Collective: Yes
strong-pm: Yes, as npm packfile or into git
pm2: No
forever: No

12

Run apps in a container

Bluemix: Always
Collective: Optional (Docker)
strong-pm: Optional (Docker)
pm2: No
forever: No

13

Remote deploy

Bluemix: Yes
Collective: Yes
strong-pm: Yes
pm2: Yes
forever: No

14

Multiple deploys/revert

Bluemix: Yes
Collective: Yes
strong-pm: Yes
pm2: Yes
forever: No

15

Clustering & Management

16

Manage remotely

Bluemix: Yes
Collective: Yes
strong-pm: Yes
pm2: Somewhat
forever:

17

Remote security

Bluemix: HTTPS auth


Collective: HTTPS auth
strong-pm: HTTP auth and HTTP+SSH
pm2: HTTP Auth
forever: N/A

18

Horizontal Scaling

Bluemix: Yes, by config and cf scale


Collective: Yes, apiconnect ...
strong-pm: No
pm2: No
forever: No

19

Horizontal Auto-Scaling

Bluemix: Yes
Collective: WIP
strong-pm: No
pm2: No
forever: No

20

Load balancer auto-configuration

Bluemix: Yes
Collective: Yes
strong-pm: Kindof
pm2: No
forever: No

21

Internal Clustering

Bluemix: No
Collective: No
strong-pm: Yes, statically and dynamically via slc ctl set-size
pm2: Yes, statically
forever: No

22

Graceful/rolling restarts

Bluemix: Use blue/green deployments


Collective: Use blue/green deployments
strong-pm: Yes
pm2: Yes
forever: No

23

Profiling

Bluemix: No
Collective: No
strong-pm: Yes, CPU and Heap
pm2: No
forever: No

24

Profile triggering

Bluemix: No
Collective: No
strong-pm: Trigger profiling based on slow event loop
pm2: No
forever: No

25

Debugging

Bluemix: Yes, in dev-mode can run node-inspector


Collective: No
strong-pm: No
pm2: No
forever: No

26

Metrics

27

Metrics

Bluemix: CPU, memory, error stacks: yes


Collective: CPU, memory
strong-pm: CPU, memory, loop, databases, etc.
pm2: CPU, memory
forever: No

28

Integrate with external metrics

Bluemix: logs: yes, metrics: none (but you can use 3rdparty)
Collective: No
strong-pm: logs: file, syslog; metrics: statsd, splunk, syslog, etc.
pm2: No
forever: No

29

Das könnte Ihnen auch gefallen