2. Who am I?
@lynxman
Engineer based in London
Co-Founder of Ukon Cherry
Working at TrainLine
19 years of experience as a SysAdmin
Founding member of Juju and MAAS while at Canonical
Built a DevOps Engineering Team at Rackspace
Been DevOps’in for the last 7 years
2
4. Running in the Cloud?
4
https://www.flickr.com/photos/pontla/11879018534/
5. The Problem
Cloud is Hard!
Old Style DNS
TTL a problem for auto-scaling
Non-reactive health checks
Where do I keep my metadata?
5
https://www.flickr.com/photos/qchristopher/5038229030/
7. Service Discovery
Automatically define your services
Active Health Checking
Dynamically updated service lists
Can be DNS accessible (if needed)
API accessible (win!)
7
https://www.flickr.com/photos/marknye/12992319144/
27. Service Discovery Solutions
CoreOS Fleet
Uses the sidekick
model, uses separate
agents to orchestrate
service discovery.
Kubernetes Service
All pods declare
services to be
discoverable by the
cluster.
27
Consul
All services are
declared by the
agents, the agents
themselves are
responsible.
28. Service Discovery Solutions
CoreOS Fleet
API publication
k/v Strongly Consistent
Container checks
Kubernetes Service
API publication
Container checks
Auto-Heal
28
Consul
API + DNS publication
k/v Strongly Consistent
Host + Service checks
Puppet modulePuppet module
Hiera access
Puppet module
Hiera access
30. What is Consul?
It's a Service Discovery System (duh!)
Service Publications (DNS + API)
k/v Storage (strongly consistent)
Health Checks
With encryption! (whaaaaaat)
30
37. Consul DNS publisher
service name: web
zone: yourDC
<servicename>.service.<zone>.consul
web.service.yourDC.consul
37
38. Consul Catalog API
API http://localhost:8500
/v1/catalog/
/v1/catalog/datacenters/
/v1/catalog/nodes/
/v1/catalog/services/<servicename>
/v1/catalog/service/<name>
/v1/catalog/node/<nodename>
38
39. Consul Health Checks
{
"check": {
"id": "mem-util",
"name": "Memory utilization",
"script": "/usr/local/bin/check_mem.py",
"interval": "10s"
}
}
39
49. Puppet Module - Install
49
https://www.flickr.com/photos/hortlander/6245707871/in/
Puppet Forge makes it very easy to install
$ puppet module install KyleAnderson-consul
69. Puppet Security - Hiera eyaml
69
https://www.flickr.com/photos/hortlander/6245707871/in/
Usage: eyaml <subcommand>
Please use one of the following subcommands
or help for more help:
createkeys, decrypt, edit, encrypt,
recrypt, version