Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deepak Giridharagopal, Puppet

278 views

Published on

Here are the slides from Chris Barker and Deepak Giridharagopal's PuppetConf 2016 presentation called Docker, Mesos, Kubernetes and...Puppet? Don't Panic!. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa

Published in: Technology
  • Be the first to comment

  • Be the first to like this

PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deepak Giridharagopal, Puppet

  1. 1. Project Blueshift Deepak Giridharagopal CTO & Chief Architect @ Puppet PuppetConf 2016
  2. 2. @grim_radical
  3. 3. The way we build systems today will not be the way we build systems tomorrow. deepak / @grim_radical / #puppetconf 2016
  4. 4. Now is a great time for those who build & manage systems! deepak / @grim_radical / #puppetconf 2016
  5. 5. Bare metal, virtual machines, containers, job schedulers, infrastructure APIs, service discovery, dynamic configuration, cloud functions, unikernels… deepak / @grim_radical / #puppetconf 2016
  6. 6. What can the systems of the past & present teach us about how to manage stuff in the future? deepak / @grim_radical / #puppetconf 2016
  7. 7. What is configuration management? No, seriously, what is it? deepak / @grim_radical / #puppetconf 2016
  8. 8. deepak / @grim_radical / #puppetconf 2016
  9. 9. Identification Control Status accounting Verification and audit deepak / @grim_radical / #puppetconf 2016 thanks @garethr!
  10. 10. To properly manage a system, you must understand & control the inputs to that system, over time. deepak / @grim_radical / #puppetconf 2016 I mean "system" in the abstract sense. stay with me, people!
  11. 11. Example: Files vs. Packages deepak / @grim_radical / #puppetconf 2016
  12. 12. Example: AWS autoscaling group deepak / @grim_radical / #puppetconf 2016
  13. 13. Example: etcd key/value pairs deepak / @grim_radical / #puppetconf 2016
  14. 14. The nature of your systems’ inputs may change along with your tech, but they’re still there and they’re your problem. deepak / @grim_radical / #puppetconf 2016
  15. 15. There’s more to running a farm than the dilemma of pets vs. cattle. (n.b. I hate this analogy) deepak / @grim_radical / #puppetconf 2016
  16. 16. There’s more to running The Empire than the dilemma of Jango Fett vs. clone troopers (thanks @brianb!) deepak / @grim_radical / #puppetconf 2016
  17. 17. New technology eliminates some management problems, but creates some new ones. Just like all software, ever. deepak / @grim_radical / #puppetconf 2016
  18. 18. There is no future with fewer servers. deepak / @grim_radical / #puppetconf 2016 note: I mean server in the SRE sense
  19. 19. If you’re going to put all your eggs in one basket, you need to take expert care of that basket. deepak / @grim_radical / #puppetconf 2016
  20. 20. The future is not evenly distributed. deepak / @grim_radical / #puppetconf 2016
  21. 21. Unified tooling across physical, virtual, containerized, cloud, etc. infrastructure is a big deal! deepak / @grim_radical / #puppetconf 2016
  22. 22. Puppet is a bridge to the future.
  23. 23. Project Blueshift: Use Puppet to provide and manage next generation software in a simple, reliable, and consistent way. deepak / @grim_radical / #puppetconf 2016
  24. 24. (without introducing more risk) Docker module
  25. 25. (without introducing more risk) Configure Docker class { 'docker': tcp_bind => 'tcp://127.0.0.1:4243', socket_bind => 'unix:///var/run/docker.sock', version => '1.11', dns => '8.8.8.8', }
  26. 26. (without introducing more risk) Run Docker containers docker::run { 'helloworld': image => 'ubuntu:precise', command => '/bin/sh -c "while true; do echo hello world }
  27. 27. (without introducing more risk) Manage networks docker_network { 'my-net': ensure => present, driver => 'overlay', subnet => '192.168.1.0/24', gateway => '192.168.1.1', ip_range => '192.168.1.4/32', }
  28. 28. (without introducing more risk) Setup UCP class { 'docker_ucp': controller => true, version => '1.0.0', tracking => false, swarm_scheduler => 'binpack', preserve_certs => true, docker_socket_path => '/var/run/docker.sock', license_file => '/etc/docker/subscription.lic', }
  29. 29. (without introducing more risk) Real world case studies
  30. 30. (without introducing more risk) Read the book
  31. 31. (without introducing more risk) puppet-in-docker
  32. 32. (without introducing more risk) Docker Hub
  33. 33. (without introducing more risk) Run Puppet in Docker $ docker run --net puppet --name puppet --hostname puppet puppet/puppetserver
  34. 34. (without introducing more risk) Develop on Windows
  35. 35. (without introducing more risk) Launch with Compose version: '2' services: puppet: container_name: puppet hostname: puppet image: puppet/puppetserver ports: - 8140 volumes: - ./code:/etc/puppetlabs/code/
  36. 36. (without introducing more risk) puppetlabs-image_build
  37. 37. Building Docker images with Puppet should be as simple as building them with docker build
  38. 38. (without introducing more risk) Building with Puppet $ ls Puppetfile manifests $ puppet docker build --image-name garethr/someimage
  39. 39. (without introducing more risk) Kubernetes module
  40. 40. (without introducing more risk) Puppet has a long history of making software deployment easier and more reliable… I'm really excited to see Puppet enabling their customers to seamlessly adopt new technology like containers and Kubernetes while maintaining a consistent, familiar experience for production quality software deployment. Brendan Burns, cofounder, Kubernetes
  41. 41. (without introducing more risk) Model K8S resources kubernetes_pod { 'sample-pod': ensure => present, metadata => { namespace => 'default', }, spec => { containers => [{ name => 'container-name', image => 'nginx', }], }, }
  42. 42. (without introducing more risk) Create abstractions controller_service_pair { 'frontend': app => 'guestbook', role => 'php-redis', tier => 'frontend', port => 80, image => 'gcr.io/google_samples/gb-frontend:v3', replicas => 3, service_type => 'LoadBalancer', }
  43. 43. (without introducing more risk) Official blog post
  44. 44. (without introducing more risk) Extending to OpenShift
  45. 45. Minimal OS’s
  46. 46. (without introducing more risk)(without introducing more risk) VMware Photon OS
  47. 47. (without introducing more risk) CoreOS ecosystem
  48. 48. (without introducing more risk) Mesos support
  49. 49. (without introducing more risk) Consul integration
  50. 50. (without introducing more risk) Rancher class { 'docker': } class { 'rancher::server': } class { 'rancher': registration_url => http://127.0.0.1:8080/v1/sc agent_address => $::ipaddress_eth1, }
  51. 51. (without introducing more risk) $ puppet resource rkt_pod rkt_pod { 'c8ecd9ae': ensure => 'exited', app => 'hello', image_name => 'hello', } Rkt
  52. 52. (without introducing more risk) Find out more about Puppet as the bridge to the future with Project Blueshift at https://puppet.com/product/managed-technology/blueshift
  53. 53. Modern infrastructure track "The challenges with container configuration" —David Lutterkort, Thurs 2:30P "Running puppet software in Docker containers" —Gareth Rushgrove, Fri 1:30P deepak / @grim_radical / #puppetconf 2016
  54. 54. (without introducing more risk)

×