Removing Environmental Differences - Simon Pearson

24
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

description

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.

Transcript of Removing Environmental Differences - Simon Pearson

Page 1: Removing Environmental Differences - Simon Pearson

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

Page 2: Removing Environmental Differences - Simon Pearson

Docker at PearsonRemoving environmental differences.

name: Simon Vans-Colinatwitter: @simonvcdisclaimer: Views are my own and may not represent those of my employer etc.

Page 3: Removing Environmental Differences - Simon Pearson

Docker@Pearson so far.

Page 4: Removing Environmental Differences - Simon Pearson

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)

Page 5: Removing Environmental Differences - Simon Pearson

With many toolsetsChef, 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.

Page 6: Removing Environmental Differences - Simon Pearson

An on going problemWe’re adding technologies faster than we’re

converging them.

Large enterprise problem: by the time you standardize on something, its obsolete.

Page 7: Removing Environmental Differences - Simon Pearson

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.

Page 8: Removing Environmental Differences - Simon Pearson

Devs vs OpsWhat 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.

Page 9: Removing Environmental Differences - Simon Pearson

Docker to the Rescue

A common deploy method.Consistent rollback method.

Convergence happens not-at-deploy-time.

Page 10: Removing Environmental Differences - Simon Pearson

Baby Steps.

**Except when it doesn’t

It’s not ready for production**it works**

API and tool changing to fast build tooling around.

Page 11: Removing Environmental Differences - Simon Pearson

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

Page 12: Removing Environmental Differences - Simon Pearson

Baby Steps.2. Use it for isolating low risk services.

Restful X services

DevOps tooling into Docker.

Page 13: Removing Environmental Differences - Simon Pearson

Post 1.0..Make Docker a valid deploy target.

Replace .egg gem npm .deb, .rpm, .war

with containers.

Build supporting infrastructure.etcd / supervisord / confd

Page 14: Removing Environmental Differences - Simon Pearson

Host Networkingdocker run --net=host busybox ip a

Makes docker a lot simpler conceptually.

Equivalent to a generic virtualenv now.

Page 15: Removing Environmental Differences - Simon Pearson

Zombies: Or your docker container is probably

broken.

http://phusion.github.io/baseimage-docker/

Page 16: Removing Environmental Differences - Simon Pearson

Apps fit for platform.12 Factors is a good guide for the kinds of apps that will benefit from containerization.

http://12factor.net/

Page 17: Removing Environmental Differences - Simon Pearson

A DevOps Social ContractOps: “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.”

Page 18: Removing Environmental Differences - Simon Pearson

Great opportunitiesZero Downtime releasing.*

*(does not fix db/schema problems)

Deploy wide, instead of deep. Average load over many apps, avoid autoscaling.

Page 19: Removing Environmental Differences - Simon Pearson

Save £££Stop using AWS instances for isolation..

Paying for VM’s when you don’t need to.

lots of £

Page 20: Removing Environmental Differences - Simon Pearson

Docker is fast.

Alias vim=’docker run -i -t -v $(pwd):/host simonvc/vim’

Page 21: Removing Environmental Differences - Simon Pearson

Mindset differences.Immutable infrastructure:

Provisioning less important.

Containerised apps:Centralised Logging more important.Membership and discovery important.

Live Config (etcd) not provisioned config.

Page 22: Removing Environmental Differences - Simon Pearson

The new paradigmPlatform as a service.Scale all apps widely.

Stack Agnosticism.Immutable/Disposable infrastructure.

Commoditized operating systems.

Page 23: Removing Environmental Differences - Simon Pearson

Docker is awesome.Radical disruptive technology.

Time to reassess:● Restricted tech stacks● Convergent config systems

(chef/puppet)● Re-using or Upgrading systems

Page 24: Removing Environmental Differences - Simon Pearson

@simonvc

Come work for Pearson

“Always Learning”

Management that gets DevOps. Interesting problems.