Upload
alexandre-strzelewicz
View
2.214
Download
4
Embed Size (px)
DESCRIPTION
https://github.com/Unitech/pm2 slides at NodeJS Paris 14/11/2013
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
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