40

Pm2 pres

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Pm2 pres
Page 2: Pm2 pres

WHO AM I ?

Alexandre Strzelewicz

• Étudiant Epitech

• “Full stack developer”

• Éternel créateur

• http://apps.hemca.com

Page 3: Pm2 pres

SOMMAIRE

1. PM2

2. L’impact d’un projet OpenSource

3. Perspectives futures

Page 4: Pm2 pres

SHANGHAI

Page 5: Pm2 pres

TAKE OFF PHASE

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

• Deployer du Node en production

• Simple, magique ?

Page 6: Pm2 pres

CONTEXTE

Page 7: Pm2 pres

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

Page 8: Pm2 pres

PROCESS MANAGEMENT

• Node-forever seul outil disponible

• En production pouvoir

• Monitorer

• Garder en vie

• Intéragir

• Logger

• Process important

Page 9: Pm2 pres

OPEN SOURCE

• Redonner à la communauté

• Inciter au partage

• Recevoir des feedbacks

Page 10: Pm2 pres

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é

Page 11: Pm2 pres
Page 12: Pm2 pres

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

Page 13: Pm2 pres

SOMMAIRE

1. PM2

2. L’impact d’un project OpenSource

3. Perspectives futures

Page 14: Pm2 pres

PM2

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

en ligne et monitorer vos applications NodeJS

Page 15: Pm2 pres

PM2 FEATURES

Page 16: Pm2 pres

DAEMONIZATION

• Lance pm2

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

$ pm2 start app.js

Page 17: Pm2 pres

CLUSTERING

$ pm2 start app.js –i max

• Duplique le processus en fonction du nombre de CPU

• Utilise le module Cluster de NodeJS

Page 18: Pm2 pres

MONITORING

$ pm2 monit

Page 19: Pm2 pres

MONITORING

$ pm2 monit

Page 20: Pm2 pres

PROCESS LISTING

$ pm2 list

Page 21: Pm2 pres

PROCESS LISTING

$ pm2 list

Page 22: Pm2 pres

STARTUP SCRIPTS

$ pm2 startup

Page 23: Pm2 pres

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

Page 24: Pm2 pres

API

• Expose la consommation CPU, RAM de chaque processus

$ pm2 web

Page 25: Pm2 pres

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

Page 26: Pm2 pres

ARCHITECTURE

God, Satan et les autres

Page 27: Pm2 pres

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

Page 28: Pm2 pres

DEPENDENCY STATUS

YOU DEPEND ON OTHER PROJECTS.

YOU WANT TO STAY UP TO DATE.

DAVID'S GOT YOUR BACK.

david-dm.org

Page 29: Pm2 pres

DEMO

Page 30: Pm2 pres

God, Satan et les autres

OPEN SOURCE & STATS

Page 31: Pm2 pres

GITHUB

• + 1800 stars • + 40 pull requests

• Googlers, Russes, Français…

Page 32: Pm2 pres

BITDELI – 10/13

Page 33: Pm2 pres

BITDELI – 11/13

Page 34: Pm2 pres

NPM STATS

https://nodei.co/

Page 35: Pm2 pres

TWITTER

Page 36: Pm2 pres

WHAT’S NEXT

Page 37: Pm2 pres

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

Page 38: Pm2 pres

EPITECH HUB CLOUD

Un PaaS à la Heroku

OPEN SOURCE ! MUAHHAH !

Page 39: Pm2 pres

SPONSORS

Page 40: Pm2 pres

THANK YOU (:

• PM2

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

• Alexandre Strzelewicz

• @Unitech sur Github

• @fr.linkedin.com/in/alexandrestrzelewicz

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

[email protected]