Upload
ross-kukulinski
View
1.134
Download
2
Embed Size (px)
Citation preview
@RossKukulinski
Building a SaaS with NodeJS, Docker, and
CoreOSLondon Node Users’ Group
March 25, 2015
@RossKukulinski
@RossKukulinski
Yodlr Founder / CEO
BayNode Co-Organizer
Soccer Fanatic
rossk on Freenode
@RossKukulinski
Our Goals• Reduce application complexity (do one thing well!)
• Run multiple versions of the same app
• Consistent app from dev → test → staging → prod
• Scalable
• Fault tolerant
• Minimize time spent doing ‘devops’
@RossKukulinski
• Containers start quickly
• Containers have small footprint
• “Dockerized” applications run anywhere
• Fast builds via cached images
• Registry for storing images from build pipeline
• Images can be stacked
• Abstracts app networking from system networking
@RossKukulinski
Our Goals• Reduce application complexity (do one thing well!)
• Run multiple versions of the same app
• Consistent app from dev → test → staging → prod
• Scalable
• Fault tolerant
• Minimize time spent doing ‘devops’
@RossKukulinski
How do you ship docker containers?
Bash scripts (ugh) Ansible / Puppet / Chef
Docker Swarm (just released)
@RossKukulinski
• Minimal Operating System
• Automated software updates
• Runs docker containers
• Supported by all major cloud providers
• Can also run on bare metal
https://coreos.com/
@RossKukulinski
Fault Tolerant
• Clustered by default
• Support for multiple HA zones
• Distributed tools like etcd & fleet
• HTTP Key-Value Store
• Service Discovery
• Application Scheduling
https://coreos.com/
@RossKukulinski
Goals• Reduce application complexity (do one thing well!)
• Run multiple versions of the same app
• Consistent app from dev → test → staging → prod
• Scalable
• Fault tolerant
• Minimize time spent doing ‘devops’
@RossKukulinski
Booting CoreOS Cluster• Most frustrating part of the whole experience
• RTFM re: cloud_config.yml
• Use Ansible for easy provisioning
• Great resources:
• https://coreos.com/docs/
• https://www.digitalocean.com/community/tutorial_series/getting-started-with-coreos-2
@RossKukulinski
Confd
• https://github.com/kelseyhightower/confd
• Monitors etcd for changes to key:value pairs
• Writes updated config file based on Go template
• We use with nginx, could be anything!
http://tinyurl.com/redis-sk
@RossKukulinski
Other Tools
• Kubernetes (Powers Google Container Engine)
• Deis (Open-source heroku clone)
• Vulcan Proxy (https://vulcand.io/)
@RossKukulinski
Docker & CoreOS are the future for application
development and deployment
Write that down