Pm2 pres

Preview:

DESCRIPTION

https://github.com/Unitech/pm2 slides at NodeJS Paris 14/11/2013

Citation preview

WHO AM I ?

Alexandre Strzelewicz

• Étudiant Epitech

• “Full stack developer”

• Éternel créateur

• http://apps.hemca.com

SOMMAIRE

1. PM2

2. L’impact d’un projet OpenSource

3. Perspectives futures

SHANGHAI

TAKE OFF PHASE

• Entreprise WiredCraft – Devo.ps • Message bus, Process management

• Deployer du Node en production

• Simple, magique ?

CONTEXTE

CLUSTERING

• Javascript est mono thread

• Utilise un CPU

• “Clusterizer” l’application Node

• Utilise tous les CPUs

• Load balance de requêtes (stateless)

• Amélioration de X fois la capacité de traitement

PROCESS MANAGEMENT

• Node-forever seul outil disponible

• En production pouvoir

• Monitorer

• Garder en vie

• Intéragir

• Logger

• Process important

OPEN SOURCE

• Redonner à la communauté

• Inciter au partage

• Recevoir des feedbacks

LE GRAND MIX

• Cluster

• Rendre le javascript plus performant

• Process management

• Gérer les processus de façon élègante

• Open Source

• Redonner à la communauté

HACKER NEWS

Blog Post

« Goodbye node-forever, hello PM2 »

• 70,000 visites en 3 heures

• Intérêt de la part des développeurs Node

SOMMAIRE

1. PM2

2. L’impact d’un project OpenSource

3. Perspectives futures

PM2

PM2 est une solution complète pour gérer, mettre

en ligne et monitorer vos applications NodeJS

PM2 FEATURES

DAEMONIZATION

• Lance pm2

• Met en arrière plan le processus et le garde en vie

$ pm2 start app.js

CLUSTERING

$ pm2 start app.js –i max

• Duplique le processus en fonction du nombre de CPU

• Utilise le module Cluster de NodeJS

MONITORING

$ pm2 monit

MONITORING

$ pm2 monit

PROCESS LISTING

$ pm2 list

PROCESS LISTING

$ pm2 list

STARTUP SCRIPTS

$ pm2 startup

0S DOWNTIME RELOAD

$ pm2 reload all

• Laisse les processus terminer leurs

traitements en cours

• Crée de nouveaux processus

• Dispatch les nouvelles requetes vers les

nouveaux processus

API

• Expose la consommation CPU, RAM de chaque processus

$ pm2 web

INTERFACE

pm2-interface

• Expose pm2 localement

• Permet :

• Capter les messages emis par les programmes

• Capter les changements d’états

• Capter les exceptions

https://github.com/Unitech/pm2-interface

$ npm install pm2-interface --save

ARCHITECTURE

God, Satan et les autres

TESTS &

• Travis utilisé pour l’intégration continue

• Offre gratuite pour les projets OpenSource

• Test sur Node 0,8 - 0,10 - 0,11

• ~100 tests bash + unitaires

DEPENDENCY STATUS

YOU DEPEND ON OTHER PROJECTS.

YOU WANT TO STAY UP TO DATE.

DAVID'S GOT YOUR BACK.

david-dm.org

DEMO

God, Satan et les autres

OPEN SOURCE & STATS

GITHUB

• + 1800 stars • + 40 pull requests

• Googlers, Russes, Français…

BITDELI – 10/13

BITDELI – 11/13

NPM STATS

https://nodei.co/

TWITTER

WHAT’S NEXT

SAAS DASHBOARD

• Grâce à pm2-interface

• Créer un service SaaS

• Remonter les exceptions

• Monitorer les processus et le serveur

• Afficher les logs

• Contrôller les processus

EPITECH HUB CLOUD

Un PaaS à la Heroku

OPEN SOURCE ! MUAHHAH !

SPONSORS

THANK YOU (:

• PM2

• https://github.com/Unitech/pm2

• Alexandre Strzelewicz

• @Unitech sur Github

• @fr.linkedin.com/in/alexandrestrzelewicz

• @http://apps.hemca.com/ – ancien portfolio

• strzelewicz.alexandre@gmail.com