Deploying Node

JaxNode July 2015

Conferences

  • Code on the Beach
  • CodeImpact

Firebase + node.js + NodeBots

Jenny Tong from Google

DevOps

Buzzwords

  • Automation
  • Release Strategy
  • Continuous Integration

Git

  • Distributed Source Control
  • FTP for Code
  • Best choice for large teams

Git hosting options

  • Roll your own
  • Cloud provider hosted
  • Github
  • BitBucket
  • Visual Studio Online

Continuous Integration 

  • Travis CI
  • Jenkins
  • Team City
  • TFS

Build Tasks

  • Node.js only requires compilation for GYP
  • Minify/Uglify Javascript and CSS
  • Run tests

NPM

  • Node Package Manager
  • If public package, let NPM install
  • Now Private Packages

PaaS options

Static Web Sites

  • Just Use Github pages
  • FREE!
  • Take advantage of their content network
  • Jekyll build system (Poor mans CMS)
  • CNAME text file with domain name
  • Never get Slashdotted or Reddited

Amazon Web Services

  • Biggest Cloud PaaS
  • Tons of services; S3, CDN, RDS, EC2  
  • Elastic Beanstalk
  • Script configuration with Userdata
  • Autoscalling groups

Azure

  • Most features that are in AWS
  • Windows and Linux VMs
  • Web App containers

Heroku

  • Deploy apps, not servers
  • Dynos (think containers)
  • Web Dynos and Worker Dynos
  • No need to terminal in
  • Supports Node, Ruby, PHP, Java, Python and Go

Nodejitsu

  • Node specific hosting
  • CLI
  • Recently purchased by Godaddy

Google Compute

  • Not as big as Amazon
  • Managed VMs
  • Docker to deploy

Docker

Docker

  • Container technology
  • Think VM without OS
  • Linux now, eventually on Windows
  • Extremely fast
  • DockerFiles describe set up of environment
  • Similar to Heroku Dynos
  • Supported by AWS, Azure and Google Compute
  • Very popular with DevOps teams

Persistence Service

  • AWS RDS
  • Azure SQL
  • Heroku Postgres
  • Redis
  • MongoDB/CouchDB

Renter Beware

  • Proprietary Services 
  • If you use, create abstraction layer
  • Legal reasons why you can't use Cloud
  • Think Sarbanes-Oxley

Demo

Questions

Contact Me

  • @jaxnode and @davidfekke
  • David Fekke at gmail dot com
  • Skype: davidfekke