TAMING THE MODERN DATA CENTER
A Hybrid Talk for a Hybrid World
@sethvargo
Slide 2
Slide 2 text
@sethvargo
Seth Vargo
Director of Technical Advocacy
HashiCorp
Slide 3
Slide 3 text
@sethvargo
Slide 4
Slide 4 text
@sethvargo
DC EVOLUTION
How did we get here?
Slide 5
Slide 5 text
@sethvargo
RISING DATACENTER COMPLEXITY
DC
Slide 6
Slide 6 text
@sethvargo
RISING DATACENTER COMPLEXITY
DC
Slide 7
Slide 7 text
@sethvargo
RISING DATACENTER COMPLEXITY
DC
VM
VM
VM
VM VM
VM
VM
VM VM
VM
VM
VM VM
VM
VM
VM
Slide 8
Slide 8 text
@sethvargo
RISING DATACENTER COMPLEXITY
DC
VM
VM
VM
VM VM
VM
VM
VM VM
VM
VM
VM VM
VM
VM
VM
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
Slide 9
Slide 9 text
@sethvargo
RISING DATACENTER COMPLEXITY
DC DNS
Database
CDN
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Slide 102
Slide 102 text
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Packages Network CM
Slide 103
Slide 103 text
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Packages Network CM
Slide 104
Slide 104 text
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Packages Network CM
Slide 105
Slide 105 text
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Packages Network CM
Slide 106
Slide 106 text
@sethvargo
APPLICATION LIFECYCLE
Base Server Ready Server
Packages Network CM
Slide 107
Slide 107 text
@sethvargo
APPLICATION LIFECYCLE
IN THE PATH OF
DOWNTIME
Slide 108
Slide 108 text
@sethvargo
MACHINE IMAGE LIFECYCLE
Slide 109
Slide 109 text
@sethvargo
MACHINE IMAGE LIFECYCLE
Base Server Ready Server
Slide 110
Slide 110 text
@sethvargo
MACHINE IMAGE LIFECYCLE
Base Server Ready Server
Slide 111
Slide 111 text
@sethvargo
PACKER BUILD
Slide 112
Slide 112 text
@sethvargo
EMBRACES CONFIG MANAGEMENT
Slide 113
Slide 113 text
@sethvargo
TRANSITIONS FAILURES FROM
RUNTIME TO BUILD-TIME
Slide 114
Slide 114 text
@sethvargo
ENFORCES PARITY WITH STAGING
Slide 115
Slide 115 text
@sethvargo
… AND EVEN DEVELOPMENT
Slide 116
Slide 116 text
@sethvargo
NEW CHALLENGES
Slide 117
Slide 117 text
@sethvargo
IT DIDN'T BELONG THERE
IN THE FIRST PLACE
Slide 118
Slide 118 text
@sethvargo
LIKE TRYING TO USE LS
TO CREATE A FILE
Slide 119
Slide 119 text
No content
Slide 120
Slide 120 text
@sethvargo
Consul Features
Service Discovery Health Checking
KV Store Multi Datacenter
Slide 121
Slide 121 text
@sethvargo
Service Discovery
Slide 122
Slide 122 text
@sethvargo
Service Discovery
DNS interface is zero-touch - no application changes are required
HTTP API for modern applications returns rich metadata
Allows discovery of both internal and external services
@sethvargo
Health Checking
Integrates with the service discovery layer
DNS does not return results for unhealthy services or nodes
HTTP endpoints can list health and query by health
Slide 127
Slide 127 text
@sethvargo
KV Store
Slide 128
Slide 128 text
@sethvargo
KV Store
Highly available storage for configuration and feature flags
Feature flags without big CM processes
Supports blocking queries for "pushing" changes
Optional ACLs to protect sensitive information at paths
Slide 129
Slide 129 text
@sethvargo
$ consul kv put foo bar
Success! Data written to: foo
Terminal
Slide 130
Slide 130 text
@sethvargo
$ consul kv get foo
bar
Terminal
Slide 131
Slide 131 text
@sethvargo
Multi-Datacenter
Slide 132
Slide 132 text
@sethvargo
Multi-Datacenter
Usually query the local datacenter
Can query other datacenters however you may need to
Can view all datacenters within one OSS UI
@sethvargo
Events, Exec, and Watches
Build powerful orchestration tools
Implement client-side leader election
Distributed locking and event system
All approaches proven to scale to thousands of agents
Slide 137
Slide 137 text
@sethvargo
$ consul event deploy 6DF7FE
# ...
$ consul watch -type event -name deploy /usr/bin/deploy.sh
# ...
$ consul exec -service web /usr/bin/deploy.sh
# ...
Terminal
Slide 138
Slide 138 text
@sethvargo
Security
Encrypt gossip traffic with shared key or keyring (UDP)
Encrypt HTTP traffic with TLS (TCP)
Advanced ACLs and token-based system allows for massive scale
Slide 139
Slide 139 text
@sethvargo
Slide 140
Slide 140 text
@sethvargo
Completely Open Source
Slide 141
Slide 141 text
@sethvargo
Completely "Dog Fooded"
Slide 142
Slide 142 text
@sethvargo
Seth Vargo
Director of Technical Advocacy
HashiCorp
Questions?