Is Docker the answer to the Stack x Platform x Cloud explosion thats
engulfed the Enterprise?
Is IaaS really the right model? or just the one that worked?
Has PaaS’s time finally arrived.
Can Docker make OS, library, stack choices irrelevant to hosting and Ops?
This talk looks at how Pearson is investigating and moving towards
Docker, what we’ve learned so far, and what you can learn from our
experiences.
Synopsis
Docker at Pearson
Removing environmental differences.
name: Simon Vans-Colina
twitter: @simonvc
disclaimer: Views are my own and may not
represent those of my employer etc.
Docker@Pearson so far.
Why?
Pearson is a big company.
Many integrated businesses.
Basically ALL the stacks.
(node, ruby, django, php, drupal, java)
On lots of clouds.
(Google, Rackspace, Rightscale, vCloud,
AWS, Datapipe, Azure)
With many toolsets
Chef, Puppet, Ansible, Rightscripts, tarball,
scripted etc
“The nice thing about standards is there’s so many to choose from.” --Andrew S. Tanenbaum
Ubuntu, RHEL, Centos, and the other one.
An on going problem
We’re adding technologies faster than we’re
converging them.
Large enterprise problem: by the time you
standardize on something, its obsolete.
How did we get here?
Devs just want to host their apps.
But.. without the restrictions on their
technology.
So they go lower and ask for cloud
infrastructure.
Devs vs Ops
What devs want: Their choice of technology.
Not to get woken up in the middle of the
night.
What ops want: Their choice of technology
so they know what to do in the middle of
the night.
Docker to the Rescue
A common deploy method.
Consistent rollback method.
Convergence happens not-at-deploy-time.
Baby Steps.
**Except when it doesn’t
It’s not ready for production*
*it works**
API and tool changing to fast build tooling around.
Baby Steps.
1. Use it for build processes.
Jenkins in Docker.*
*This did not go well.. See 12factor.net
RPM creation in docker.
Replace virtualenv/rbenv
Baby Steps.
2. Use it for isolating low risk services.
Restful X services
DevOps tooling into Docker.
Post 1.0..
Make Docker a valid deploy target.
Replace .egg gem npm .deb, .rpm, .war
with containers.
Build supporting infrastructure.
etcd / supervisord / confd
Host Networking
docker run --net=host busybox ip a
Makes docker a lot simpler conceptually.
Equivalent to a generic virtualenv now.
Zombies: Or your docker
container is probably
broken.
http://phusion.github.
io/baseimage-docker/
Apps fit for platform.
12 Factors is a good guide for the kinds of
apps that will benefit from containerization.
http://12factor.net/
A DevOps Social Contract
Ops: “If you can make your app/stack run in
a docker container, we can host it”
and
Devs: “We need ensure our app can be
containerized.”
Great opportunities
Zero Downtime releasing.*
*(does not fix db/schema problems)
Deploy wide, instead of deep. Average load
over many apps, avoid autoscaling.
Save £££
Stop using AWS instances for isolation..
Paying for VM’s when you don’t need to.
lots of £
Docker is fast.
Alias vim=’docker run -i -t -v $(pwd):/host
simonvc/vim’
Mindset differences.
Immutable infrastructure:
Provisioning less important.
Containerised apps:
Centralised Logging more important.
Membership and discovery important.
Live Config (etcd) not provisioned config.
The new paradigm
Platform as a service.
Scale all apps widely.
Stack Agnosticism.
Immutable/Disposable infrastructure.
Commoditized operating systems.
Docker is awesome.
Radical disruptive technology.
Time to reassess:
● Restricted tech stacks
● Convergent config systems
(chef/puppet)
● Re-using or Upgrading systems
@simonvc
Come work for Pearson
“Always Learning”
Management that gets DevOps. Interesting problems.

Removing Environmental Differences - Simon Pearson

  • 1.
    Is Docker theanswer to the Stack x Platform x Cloud explosion thats engulfed the Enterprise? Is IaaS really the right model? or just the one that worked? Has PaaS’s time finally arrived. Can Docker make OS, library, stack choices irrelevant to hosting and Ops? This talk looks at how Pearson is investigating and moving towards Docker, what we’ve learned so far, and what you can learn from our experiences. Synopsis
  • 2.
    Docker at Pearson Removingenvironmental differences. name: Simon Vans-Colina twitter: @simonvc disclaimer: Views are my own and may not represent those of my employer etc.
  • 3.
  • 4.
    Why? Pearson is abig company. Many integrated businesses. Basically ALL the stacks. (node, ruby, django, php, drupal, java) On lots of clouds. (Google, Rackspace, Rightscale, vCloud, AWS, Datapipe, Azure)
  • 5.
    With many toolsets Chef,Puppet, Ansible, Rightscripts, tarball, scripted etc “The nice thing about standards is there’s so many to choose from.” --Andrew S. Tanenbaum Ubuntu, RHEL, Centos, and the other one.
  • 6.
    An on goingproblem We’re adding technologies faster than we’re converging them. Large enterprise problem: by the time you standardize on something, its obsolete.
  • 7.
    How did weget here? Devs just want to host their apps. But.. without the restrictions on their technology. So they go lower and ask for cloud infrastructure.
  • 8.
    Devs vs Ops Whatdevs want: Their choice of technology. Not to get woken up in the middle of the night. What ops want: Their choice of technology so they know what to do in the middle of the night.
  • 9.
    Docker to theRescue A common deploy method. Consistent rollback method. Convergence happens not-at-deploy-time.
  • 10.
    Baby Steps. **Except whenit doesn’t It’s not ready for production* *it works** API and tool changing to fast build tooling around.
  • 11.
    Baby Steps. 1. Useit for build processes. Jenkins in Docker.* *This did not go well.. See 12factor.net RPM creation in docker. Replace virtualenv/rbenv
  • 12.
    Baby Steps. 2. Useit for isolating low risk services. Restful X services DevOps tooling into Docker.
  • 13.
    Post 1.0.. Make Dockera valid deploy target. Replace .egg gem npm .deb, .rpm, .war with containers. Build supporting infrastructure. etcd / supervisord / confd
  • 14.
    Host Networking docker run--net=host busybox ip a Makes docker a lot simpler conceptually. Equivalent to a generic virtualenv now.
  • 15.
    Zombies: Or yourdocker container is probably broken. http://phusion.github. io/baseimage-docker/
  • 16.
    Apps fit forplatform. 12 Factors is a good guide for the kinds of apps that will benefit from containerization. http://12factor.net/
  • 17.
    A DevOps SocialContract Ops: “If you can make your app/stack run in a docker container, we can host it” and Devs: “We need ensure our app can be containerized.”
  • 18.
    Great opportunities Zero Downtimereleasing.* *(does not fix db/schema problems) Deploy wide, instead of deep. Average load over many apps, avoid autoscaling.
  • 19.
    Save £££ Stop usingAWS instances for isolation.. Paying for VM’s when you don’t need to. lots of £
  • 20.
    Docker is fast. Aliasvim=’docker run -i -t -v $(pwd):/host simonvc/vim’
  • 21.
    Mindset differences. Immutable infrastructure: Provisioningless important. Containerised apps: Centralised Logging more important. Membership and discovery important. Live Config (etcd) not provisioned config.
  • 22.
    The new paradigm Platformas a service. Scale all apps widely. Stack Agnosticism. Immutable/Disposable infrastructure. Commoditized operating systems.
  • 23.
    Docker is awesome. Radicaldisruptive technology. Time to reassess: ● Restricted tech stacks ● Convergent config systems (chef/puppet) ● Re-using or Upgrading systems
  • 24.
    @simonvc Come work forPearson “Always Learning” Management that gets DevOps. Interesting problems.