Slide 1

Slide 1 text

Pulling the string to containerise your environment

Slide 2

Slide 2 text

We will be looking at the different way you can use Puppet to help your journey to a continerised life. We spilt the talk into 2 segments ● The last 6 months ( The birth of project Blueshift) ● The new cutting edge stuff

Slide 3

Slide 3 text

About me Platform engineering lead @

Slide 4

Slide 4 text

Before we start. Why use Puppet for Containerisation ? Puppet allows you to define the state of a resource on a traditional server. The container eco system is no different. You still need to define state or we just end up back where we were before automation.

Slide 5

Slide 5 text

What does Puppet look like in the new world We are no longer just controlling resources and services !!! ● We use custom type/providers to control API’s ● Puppet can manipulate data for other systems to ingest ● We can now query key/value stores dynamically to update data structures ● We can use Puppet to auto generate application code

Slide 6

Slide 6 text

Docker Swarm

Slide 7

Slide 7 text

Docker Swarm ● Docker Swarm is Docker’s open source container scheduler ● Allows you to configure the key/value store of your choice ● Built in HA for node failure ● Supports Docker Compose ● Supports Docker native networking (Overlay)

Slide 8

Slide 8 text

Swarm’s architecture

Slide 9

Slide 9 text

The modules to Build Swarm Garethr/Docker https://forge.puppet.com/garethr/docker Scottyc/Golang https://forge.puppet.com/scottyc/golang KyleAnderson/Consul https://forge.puppet.com/KyleAnderson/consul Scottyc/Docker_swarm https://forge.puppet.com/scottyc/docker_swarm

Slide 10

Slide 10 text

The Code For a full working demo of Docker Swarm https://github.com/scotty-c/puppet-demo

Slide 11

Slide 11 text

Docker UCP

Slide 12

Slide 12 text

Docker UCP ● Docker’s Enterprise solution (Paid product) ● Supports all the features of Docker Swarm ● Gives you the option of using etcd or consul as the Key/value store ● Comes with an integrated web ui ● The easiest of the three schedulers to set up

Slide 13

Slide 13 text

UCP’s architecture

Slide 14

Slide 14 text

The modules to Build UCP Garethr/Docker https://forge.puppet.com/garethr/docker Puppetlabs/docker_ucp https://forge.puppet.com/puppetlabs/docker_ucp

Slide 15

Slide 15 text

The Code For a full working demo of Docker UCP https://github.com/scotty-c/ucp-demo

Slide 16

Slide 16 text

Kubernetes

Slide 17

Slide 17 text

Kubernetes ● Google’s edition to the container world ● Is open source ● Well defined API ecosystem ● Has multiple interfaces and methods of control ● Self healing ● Locks you into etcd and flannel

Slide 18

Slide 18 text

Kubernetes’s architecture

Slide 19

Slide 19 text

The modules to Build Kubernetes Garethr/Docker https://forge.puppet.com/garethr/docker Garethr/kubernetes https://forge.puppet.com/garethr/kubernetes

Slide 20

Slide 20 text

The Code For a full working demo of Kubernetes https://github.com/scotty-c/kubernetes-demo

Slide 21

Slide 21 text

What about storage persistence We have created HA clusters for our container eco system for compute failure. What about our data ?

Slide 22

Slide 22 text

Flocker

Slide 23

Slide 23 text

Flocker ● Flocker allows us to set up standalone volumes for containers ● Supports AWS (EBS), GCE (PD) and Openstack (Cinder)

Slide 24

Slide 24 text

Flocker’s architecture

Slide 25

Slide 25 text

The modules to Build Flocker scottyc/flocker In POC (if anyone in the community wants to help. Hit me up) stankevich/python https://forge.puppet.com/stankevich/python

Slide 26

Slide 26 text

The Code For a full working demo of Flocker https://github.com/scotty-c/flocker-puppet-poc

Slide 27

Slide 27 text

Other Apps we have used in our demo Code ● Consul https://www.consul.io/ ● Etcd https://coreos.com/etcd/docs/latest/ ● Flannel https://coreos.com/flannel/docs/latest/ ● Interlock https://github.com/ehazlett/interlock ● Golang https://golang.org/ ● Registrator https://github.com/gliderlabs/registrator

Slide 28

Slide 28 text

And on the Puppet Forge ● Consul https://forge.puppet.com/KyleAnderson/consul ● Etcd https://forge.puppet.com/cristifalcas/etcd ● Flannel https://forge.puppet.com/cristifalcas/flannel ● Golang https://forge.puppet.com/scottyc/golang

Slide 29

Slide 29 text

And even more we didn’t have time to get too ● Mesos https://forge.puppet.com/deric/mesos ● Rancher https://forge.puppet.com/puppetlabs/rancher ● Rex Ray https://forge.puppet.com/emccode/rexray

Slide 30

Slide 30 text

Now the cool new stuff !!!!

Slide 31

Slide 31 text

puppetlabs/puppetlabs-image_build ● Allows you to take your Puppet code and containerise with ease. ● Very little dev work ● Good bang for your buck

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Running Puppet on a CAAS

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

To learn more ….

Slide 37

Slide 37 text

To learn more …. https://scottydoesntkn ow.io

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

Connect with me https://forge.puppet.com/scottyc https://github.com/scotty-c https://hub.docker.com/u/scottyc/ @scottcoulton scottyc