Docker ansible-make-chef-puppet-unnecessary-minnihan

31
ANSIBLE + DOCKER MAKE CHEF AND PUPPET 100% UNNECESSARY John Minnihan @jbminn

Transcript of Docker ansible-make-chef-puppet-unnecessary-minnihan

Page 1: Docker ansible-make-chef-puppet-unnecessary-minnihan

ANSIBLE + DOCKER MAKE CHEF AND PUPPET 100% UNNECESSARY

John Minnihan @jbminn

Page 2: Docker ansible-make-chef-puppet-unnecessary-minnihan

why listen to me?

INVENTED HOSTED REPOS IN ’99CREATED LOTS OF INFRASTRUCTUREMY SYSTEMS MANAGE 2B+ LOCCAN JUMP A MOTORCYCLE 75 FEET

Page 3: Docker ansible-make-chef-puppet-unnecessary-minnihan

I noticed an increased number of mentions of Ansible + Docker.

SO I DUG IN.

Page 4: Docker ansible-make-chef-puppet-unnecessary-minnihan
Page 5: Docker ansible-make-chef-puppet-unnecessary-minnihan

‘Ansible + Docker’ queries have gone from zero to lots in 6 months

Page 6: Docker ansible-make-chef-puppet-unnecessary-minnihan
Page 7: Docker ansible-make-chef-puppet-unnecessary-minnihan

Docker + Ansible took off like a rocket delivering groceries to a

spaceship

Page 8: Docker ansible-make-chef-puppet-unnecessary-minnihan

why?

Page 9: Docker ansible-make-chef-puppet-unnecessary-minnihan

THAT’S IT.

They’re easier to use and produce portable & immutable outcomes.

(ssh + LXC + cgroups)

Page 10: Docker ansible-make-chef-puppet-unnecessary-minnihan

With the advent & quick rise of Docker and Ansible, engineers can now configure an environment once, save it into a container and rapidly reuse that container hundreds (or thousands) of times without additional configuration.

Page 11: Docker ansible-make-chef-puppet-unnecessary-minnihan

When additional config is necessary, for example for run-time changes that can't be preset, Ansible can be used to accomplish this with lightweight data description files requiring nothing more than ssh. This can be done either to the container's dockerfile before it is launched or can be done inside the container post-launch.

Page 12: Docker ansible-make-chef-puppet-unnecessary-minnihan

The need for complex client-server-agent arrangements like those in Chef or Puppet goes away. Chef and Puppet were great transition schemes that bridged the config management gap, but that gap has been firmly + completely closed by Docker + Ansible.

Page 13: Docker ansible-make-chef-puppet-unnecessary-minnihan

But what makes Ansible + Docker’s emergence an inflection point is what’s also occurring in the Chef + Puppet user

space - right now.

This talk could stop right here.

Page 14: Docker ansible-make-chef-puppet-unnecessary-minnihan

“I DIDN’T SIGNUP TO MANAGE MY MANAGEMENT SYSTEM”“WHY DO I HAVE TO KEEP UPGRADING THE AGENTS?”“SPINNING UP VMS TAKES A LOT OF TIME & ADDS NO VALUE.”

“CAN’T THIS BE RUN ONCE & JUST WORK EACH TIME I NEED IT?”

“I NEVER DID GET EITHER CHEF OR PUPPET TO ACTUALLY WORK.”

what people are saying

Page 15: Docker ansible-make-chef-puppet-unnecessary-minnihan

show me the codethere are 38,000 tutorial results for ansible

and 394,000 tutorial results for docker

….and there are 6 talks here at Gluecon on either ansible or docker or both.Seek out the data + make an informed decision.

Page 16: Docker ansible-make-chef-puppet-unnecessary-minnihan

here’s what I think is important

Page 17: Docker ansible-make-chef-puppet-unnecessary-minnihan

THERE’S A LOT OF WORK JUST GETTING CHEF OR PUPPET FUNCTIONAL

Page 18: Docker ansible-make-chef-puppet-unnecessary-minnihan

chef server install page:679chef client install page:1569

WORD COUNT

ansible install page: 145ansible client install page: 0

Page 19: Docker ansible-make-chef-puppet-unnecessary-minnihan

TO INSTALL ANSIBLE, CLONE THE REPO + CREATE AN INVENTORY. YOU’RE READY TO RUN AD-HOC COMMANDS.

TO INSTALL CHEF, DOWNLOAD THE RIGHT CLIENT + SERVER INSTALLERS, INSTALL THEM &

THEN WRITE A SCRIPT.

Page 20: Docker ansible-make-chef-puppet-unnecessary-minnihan

THERE’S ALSO A BIG DIFFERENCE IN THE DESIGN PHILOSOPHIES

Page 21: Docker ansible-make-chef-puppet-unnecessary-minnihan

ANSIBLE IS AGENTLESS. IT NEEDS ONLY SSH ON TARGET SYSTEMS TO FUNCTION

CHEF + PUPPET EACH REQUIRE SEPARATELY

RUNNING SERVER & CLIENTS BEFORE ANY WORK CAN BE

DONE

Page 22: Docker ansible-make-chef-puppet-unnecessary-minnihan

ANSIBLE’S GOAL-ORIENTED TASKS ENSURE WORK IS COMPLETED BY ENFORCING STATE.

CHEF ENCOURAGES IDEMPOTENCE, BUT IT DOESN’T ENFORCE IT

Page 23: Docker ansible-make-chef-puppet-unnecessary-minnihan

ANSIBLE PLAYBOOKS ARE SIMPLE DATA DESCRIPTIONS OF YOUR INFRASTRUCTURE, DEFINING THE DESIRED END-STATE

CHEF RECIPES ARE RUBY SCRIPTS. THAT’S NOT A BIG DEAL IF YOU KNOW

RUBY.

Page 24: Docker ansible-make-chef-puppet-unnecessary-minnihan

what about docker?

Page 25: Docker ansible-make-chef-puppet-unnecessary-minnihan

EVERYTHING REQUIRED FOR A CONTAINER IS IN ITS DOCKER FILE, ENSURING A BASE STATE THAT’S IMMUTABLE

CHEF DOES NOT PRESCRIBE A BASE STATE. SYSTEMS CAN DRIFT IF TARGET SYSTEMS

ARE EVEN SLIGHTLY DIFFERENT

Page 26: Docker ansible-make-chef-puppet-unnecessary-minnihan

DOCKER CONTAINERS SPIN UP IN < 2 SECONDS. NEED A CHANGE? BUILD A NEW CONTAINER.

VMS TAKE MINUTES TO SPIN UP

Page 27: Docker ansible-make-chef-puppet-unnecessary-minnihan

If you remember nothing else, remember the next two slides

BLAH, BLAH, BLAH

Page 28: Docker ansible-make-chef-puppet-unnecessary-minnihan

ANSIBLE IS AGENTLESS

This is a huge, game-changing difference.

Page 29: Docker ansible-make-chef-puppet-unnecessary-minnihan

DOCKER CONTAINERS ARE IMMUTABLE &

REUSABLE. Build once, run anywhere. Really.

Page 30: Docker ansible-make-chef-puppet-unnecessary-minnihan

references• Why Docker? Why Not Chef? -

http://blog.relateiq.com/why-docker-why-not-chef/

• The Walking Skeleton with Docker & Ansible - http://continuousdelivery.uglyduckling.nl/docker/the-walking-skeleton-and-docker-and-ansible/

• “After 4 years of heavy Chef usage, the infrastructure as code mentality becomes really tedious.” - http://thechangelog.com/ansible-docker/

• “I've used Puppet for over a year, and prefer @ansible after one afternoon.” - http://twitter.com/opdavies/status/448753755983736832

• https://twitter.com/jbminn/favorites - login to twitter to see those

Page 31: Docker ansible-make-chef-puppet-unnecessary-minnihan

THANK YOU!

John Minnihan

Founder, [email protected]

@jbminn

QUESTIONS?