Slide 1

Slide 1 text

Introduction to Consul

Slide 2

Slide 2 text

I’m Armon Dadgar @armon

Slide 3

Slide 3 text

HashiCorp A DevOps tools company

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

SOA Primer • Service Oriented Architecture • Autonomous • Limited Scope • Loose Coupling • e.g. opposite of classic monolith

Slide 6

Slide 6 text

Web App Forecasting Order Processing Order History

Slide 7

Slide 7 text

Web App Order Processing Discovery Which nodes are part of “Order Processing”?

Slide 8

Slide 8 text

Web App Order Processing Node 1 Node N … Load Balancing How to ensure request leveling across providers?

Slide 9

Slide 9 text

Web App Order Processing Node 1 Node N … Load Balancer Anti-Pattern! Load Balancer is a Single Point of Failure (SPOF)

Slide 10

Slide 10 text

Web App Order Processing Node 1 Node N … Health Checking How to avoid routing to unhealthy hosts?

Slide 11

Slide 11 text

Web App Web App Web App Maintenance = true EnableFeature = false Configuration How to efficiently push dynamic configuration?

Slide 12

Slide 12 text

Recap • Service Discovery • Load Balancing • Health Checking • Configuration

Slide 13

Slide 13 text

Problems? Check.

Slide 14

Slide 14 text

Solutions? Nope.

Slide 15

Slide 15 text

Solutions* • ZooKeeper, etcd, doozerd • Nagios, Sensu • SkyDNS • SmartStack Consul Comparisons: http://www.consul.io/intro/vs/index.html

Slide 16

Slide 16 text

Build it yourself!

Slide 17

Slide 17 text

First Pass: Serf • Node membership • Failure Detection • Custom Events • Tag Meta Data • http://serfdom.io

Slide 18

Slide 18 text

Serf Shortcomings • 1 Node : 1 Service • 1 : N possible with tag overloading • Liveness check only • Fully decentralized • Joy to operate • Difficult to extend • Eventually Consistent Only

Slide 19

Slide 19 text

Learning • 1 Node : N Services • Host checks + Service Checks • Simpler interfaces (Serf only MsgPack/TCP) • Strong Consistency • Multi Datacenter (Serf WAN not optimal)

Slide 20

Slide 20 text

Consul

Slide 21

Slide 21 text

Service Discovery HTTP + DNS Datacenter Aware (Ritualistic sacrifice not required) K/V Store HTTP API Host & Service Level Health Checks

Slide 22

Slide 22 text

It Just Works.

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Consul Today • Powers Vagrant Cloud • Used in our on-premise product • Version 0.1 Released • Version 0.2 Next Week • Web UI

Slide 25

Slide 25 text

Consul Tomorrow • Partner Deploys • Version 0.3+ • Leader Election • Clients • CLI tools

Slide 26

Slide 26 text

Thanks! http://consul.io