7. @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’
10. @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
11. @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’
12. @RossKukulinski
How do you ship
docker containers?
Bash scripts (ugh)
Ansible / Puppet / Chef
Docker Swarm (just released)
14. @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/
15. @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/
17. @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’
23. @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