46
Production Ready Node

NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Embed Size (px)

Citation preview

Page 1: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Production Ready Node

Page 2: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Alice in Noderland

Page 3: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

The Curious Case of Nodej(s)amin Button

Page 4: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

$ whoami { username: ‘@dscape’, past: ‘nodejitsu.com’, present: ‘yld.io’, much_excite: ‘open source’, dreams_in: JSON, node_modules: Number.MAX_VALUE }

Page 5: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

$ whoami { username: ‘@dscape’, past: ‘nodejitsu.com’, present: ‘yld.io’, much_excite: ‘open source’, dreams_in: JSON, node_modules: ~40 }

Page 6: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

$ watiznode4 __________________________________< node is more than just rest apis > ---------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||

Page 7: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

How is node being used?

• (micro) Services

• REST APIs

• Message Queues

• Fullstack Web Applications

• Mobile

• Enterprise Software

• Internet of Things

• Desktop Clients

Startups and HackersEnterprise

• Command Line Interfaces

• Teaching

• WebRTC

• ROBOTS!

• Bitcoin

• Torrents

• Databases

Page 8: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

INTRODUCTION SUCH NODE. MUCH WOW

Page 9: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

INTRODUCTION USE CASES

Buy all that stuff you want directly from

your phone. Node got you covered.

Find where to go on your awesome vacation with proxies powered by the

Nodes.

Control your heating from your mobile using the awesome power of the

Node.js force

Page 10: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

INTRODUCTION TABLE OF CONTENTS

• Frameworks

• Structure

• Setup

• Testing & Coverage

• Useful tools

• Pre-production checklist

• Running in production

Page 11: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

FRAMEWORK WHAT TO CHOOSE

Page 12: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Structure

Page 13: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

STRUCTURE MODULE

Page 14: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

STRUCTURE COMMAND LINE TOOL

Page 15: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

STRUCTURE WEB APP

Page 16: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

STRUCTURE REST API

Page 17: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

“Does it matter?”

Page 18: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Setup

Page 19: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP CONFIGURATION FILES

Page 20: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP CONFIGURATION FILES, TO AVOID

Page 21: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP JSHINT

Page 22: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP CODE STYLE

Page 23: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP PRE COMMIT HOOKS

Page 24: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP PRE COMMIT HOOKS (2)

Page 25: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

SETUP BADGER BADGER BADGER MUSHROOM MUSHROOM

Page 26: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Testing

Page 27: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

TESTING NODE ERROR HANDLING

Page 28: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

TESTING COVERAGE CONTRACT

Page 29: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

TESTING PERFORMANCE

Page 30: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

TESTING PERFORMANCE (2)

Page 31: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

TESTING PERFORMANCE

Page 32: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Pre-production checklist

Page 33: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

$ shipit _____________________________< nodejs production checklist > ----------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||

Page 34: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

PRE-PRODUCTION CHECKLIST OUTDATES MODULES

Page 35: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

PRE-PRODUCTION CHECKLIST SECURITY SANITY CHECK

Page 36: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

PRE-PRODUCTION CHECKLIST FREEZE YOUR DEPENDENCIES

Page 37: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Useful tools

Page 38: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

USEFUL TOOLS JSONTOOL

Page 39: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

USEFUL TOOLS ND

Page 40: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

USEFUL TOOLS GHCOPY

Page 41: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

USEFUL TOOLS NODE DEBUG

Page 42: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

Running in Production

Page 43: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

RUNNING IN PRODUCTION

• pm2 vs forever vs mon

• cluster vs mongroup

• docker vs jenkins + chef vs PaaS

• Managing the life cycle of applications

Page 44: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

RUNNING IN PRODUCTION

Page 45: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

RUNNING IN PRODUCTION

• pm2 vs forever vs mon

• cluster vs mongroup

• docker vs jenkins + chef vs PaaS

• Managing the life cycle of applications

Page 46: NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job

@DSCAPE THANK YOU