Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1OQF89L.
Paul Payne explains the benefits of containerization in the context of a real-world open-source deployment of a Go web service using Terraform, CoreOS, Docker, Fleet, and Vulcan on AWS. He discusses testing, integration, canary deploys and how they achieve 20 minute development cycles (from request to production deployment) with zero downtime. Filmed at qconnewyork.com.
Paul Payne lives at the intersection of what is and what could be. He has spent the last 20 years helping organizations of every size embrace emerging Internet technologies, from web applications to web services, desktop to mobile. He is now focused on applications of distributed systems, autonomous agents and artificial intelligence.
The 7 Things I Know About Cyber Security After 25 Years | April 2024
20 Minutes from Ticket to Production. Zero Downtime.
1. 20 Minutes to
Production
Zero Downtime
Paul Payne
@paulrpayne
http://payne.io
Presentation code can be found at:
github.com/payneio/qcon-gtin.git
Photos from http://unsplash.com.
2. InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/containerization-benefits
3. Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
10. Microservice Quality Assurance
Liberal in what you accept. Conservative in
what you send (Robustness Principle).
Fast errors (compile time vs. run time).
Fast compile, build, test iterations.
TDD.
Confidence.
11. Demo
In which the presenter
demonstrates an update
to the microservice with
defensive coding
practices and fast build
and test steps with the
aid of Go.
12. Part Two
1. Microservices Coding with confidence.
2. Containers Sensible units of deployment.
3. Deployment Patterns for zero downtime.
13. Application Containers
“An application container is a way of packaging and executing processes on a
computer system that isolates the application from the underlying host
operating system” —https://github.com/appc/spec, 2015.
brought into the kernel...
namespaces
cgroups
SELinux
AppArmor
btrs/aufs/device mapper/etc
...
Various projects...
chroot (1979)
jail
Linux-VServer
OpenVZ
...
and packaged up.
systemd-nspawn
LXC
lmctfy
libvirt-lxc
Docker / libcontainer
rkt / appc
...
14. Virtualization Overhead
Bare Metal
Host OS (Linux)
Hypervisor
Guest OS
bins/libs
App A
Guest OS
bins/libs
App B
Bare Metal
Host OS (Linux)
Container Engine
bins/libs
App A
bins/libs
App B
VM Container
18. Clean Org Interface (Reverse Conway’s Law)
Installing and configuring VMs.
Configuring app environments.
Creating, building and installing apps.
Making VM snapshots.
Installing OS updates.
Installing and configuring hardware.
Distributing VMs.
Monitoring and fixing hardware.
Working with devs on bad VMs.
Configuring app environments.
Creating, building and installing apps.
Installing and configuring hardware.
Distributing containers.
Monitoring and fixing hardware.
Rejecting bad containers.
The mythical
DevOPS unicorn
The DevOPS continuum
VMsContainers
OPSDev
19. Demo
$ make
In which the presenter demonstrates
the simple containerization of the
microservice using Docker and make.
20. Part Three
1. Microservices Coding with confidence.
2. Containers Sensible units of deployment.
3. Deployment Patterns for zero downtime.
21. The Datacenter as a Computer
Luiz Barroso & Urs Hölzle (2009).
http://doi.org/10.2200/S00516ED2V01Y201306CAC024
22. A Virtual Machine Detour on
the Cluster Scheduling Timeline
1999
VMWare
2003
Xen
2006
EC2
2009
Eucalyptus
2013
Docker
CoreOS
Mesos
Marathon
Google
Omega
LXC 0.9
2012
OpenStack
2014
Kubernetes
2009
Mesos
2015
Docker
Swarm
2003
Google
Borg
Late 1960s
Mainframe
Job Control
Multics
Burroughs
B5700
1977
ARCnet
1984
VAXcluster
2001
HP
Utility
Data
Center
1994
IBM S/390
Parallel
Sysplex
2006
cgroups
2008
LXC
namespaces
OpenVZ
jails
Solaris
zones
33. Infrastructure as Code
Quick reproducible infrastructure.
Entire Blue/Green stacks.
Cattle, not pets!
Deployment Manager
Google Cloud Platform Amazon Web Services
Terraform
Cross-platform
CloudFormation
34. Anti-Corruption Layers
Each service manages its own data;
ie. maintains its own table.
Integrate through interfaces, not
data stores!
Our canonical GTIN data is kept in a
commercial enterprise product.
We copy the data we need for our
service to Dynamo, syncing daily.
35. Wrap a proxy layer around the
entire enterprise application.
Route requests to your
microservices as you bring them
online.
Someday, none of your legacy app
will remain.
Application Strangler
http://martinfowler.com/bliki/StranglerApplication.html.
Image by http://journals.worldnomads.com/beckandphil.
37. 20 Minutes to
Production
Zero Downtime
Paul Payne
@paulrpayne
http://payne.io
Presentation code can be found at:
github.com/payneio/qcon-gtin.git
Photos from http://unsplash.com.
38.
39. Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations/
containerization-benefits