Copyright © 2019 HashiCorp
Layer 7 Observability
with Consul Service
Mesh
Layer 7 Observability with Consul Service Mesh.
Erik Veld
Developer Advocate at HashiCorp
@erikveld
eveld@hashicorp.com
Introduction
Networking
Connect infrastructure
and applications.
Development
Run applications.
Security
Secure infrastructure and
applications.
Operations
Provision infrastructure.
INTRODUCTION © 2019 HashiCorp 4
The 4 essential
elements of
dynamic
infrastructure
Multi-Cloud
Service
Networking
INTRODUCTION © 2019 HashiCorp 5
Networking
Connect infrastructure
and applications.
Development
Run applications.
Security
Secure infrastructure and
applications.
Operations
Provision infrastructure.
Consul
Use Cases
Distributed service
networking layer to
connect and secure
any services
6© 2019 HashiCorpINTRODUCTION
Service
Registry &
Discovery
Dynamically locate any
application or
infrastructure service to
simplify network
connectivity
Service Mesh
A distributed
networking layer to
connect, secure and
observe services across
any runtime platform
and cloud
Market
trend from
monoliths to
microservices Single,
Physical
Server
Dynamic Virtual
Machines
Smaller,
Ephemeral
Containers
7© 2019 HashiCorpINTRODUCTION
INTRODUCTION 8© 2019 HashiCorp
The shift
from static
to dynamic
networking
Dynamic Infrastructure
Service-based networking
Static Infrastructure
Host-based networking
INTRODUCTION 9© 2019 HashiCorp
The shift
from static
to dynamic
networking
Dynamic Infrastructure
Service-based networking
Static Infrastructure
Host-based networking
Private datacenters with static IPs,
primarily north-south traffic, protected by
perimeter security and coarse-grained
network segments.
TRADITIONAL APPROACH
● Static connectivity between services
● A fleet of load balancers to route traffic
● Ticket driven processes to update
network middleware
● Firewall rule sprawl to constrict access
and Insecure flat network zones
Multiple clouds and private datacenters
with dynamic IPs, dominated by east-west
traffic, no clear network perimeters.
CONSUL APPROACH
● Centralized registry to locate any
service
● Services discovered and connected
with centralized policies
● Network automated in service of
applications
● Zero trust network enforced by
identity-based security policies
Reduced Productivity
Waiting for manual updates to load balancers and
firewalls blocks development throughput.
INTRODUCTION 10© 2019 HashiCorp
Business
challenges
of dynamic
infrastructure
Increased Risk
Firewall rule sprawl is complex to manage and
mistakes create security vulnerabilities.
Increased Cost
Load balancers and firewalls are expensive and costly
to maintain.
Networks are not 100% stable and
often experience transient failure.
11© 2019 HashiCorpINTRODUCTION
Gray Failure
The Achilles' Heel of Cloud-Scale Systems
"The major availability breakdowns and performance anomalies we see in
cloud environments tend to be caused by subtle underlying faults, i.e.
gray failures rather than fail-stop failure"
Paper from Microsoft research
12© 2019 HashiCorpINTRODUCTION
Gray Failure
The Achilles' Heel of Cloud-Scale Systems
● Performance degradation
● Random packet loss
● Flaky I/O
● Memory pressure
● Non-fatal exceptions
13© 2019 HashiCorpINTRODUCTION
Common reliability patterns
● Service discovery
● Load balancing
● Retries
● Circuit breaking
● Rate limiting
14© 2019 HashiCorpINTRODUCTION
Consul
Service Mesh
Components
Service Mesh
Control Plane
▪ Service to service communication
policy.
▪ Service Catalog
▪ CA and x509 certificate generation.
▪ Configuration and proxy management.
16© 2019 HashiCorpSERVICE MESH
Components
Service Mesh
Data Plane
▪ Authorization
▪ Request tracing
▪ Traffic shaping
▪ Load balancing
▪ Service discovery
▪ Circuit breaking
▪ Retry logic
17© 2019 HashiCorpSERVICE MESH
Configure Proxies
SERVICE MESH 18© 2019 HashiCorp
● A proxy is co-located with a single service
instance which it represents and proxy all
inbound traffic to
● The Client agent instantiates the proxy
and registers it as a service.
● Configure proxy with a port on which is
used for the service and upstream
destination that the service wants to
connect to zz
connect = {
proxy = {
config = {
upstreams = [
{
destination_name = "mongodb",
local_bind_port = 8001
}
]
}
}
}
Get certificate for application
SERVICE MESH 19© 2019 HashiCorp
● Upon its instantiation, the proxy requests
from local agent both leaf and root
certificates for the service instance it
represents.
● If the local agent can not find the
certificates of this service instance in its
cache, it will generate a new unique
private key and send a certificate signing
request (CSR) up to Consul server.
● Server returns the signed certificate to
local agent. Agent then caches the
certificates the return to the proxy.
Retrieve Intentions
SERVICE MESH 20© 2019 HashiCorp
● A subset of intentions which are relevant
to destination services are locally cached
at the destination Consul agent
● Connection attempts require only local
agent communication for authorization
● Updates to intentions are propagated
instantly to agents
zz
$ consul intention create -allow web db
Created: web => db (allow)
Establish the connection 1/2
SERVICE MESH 21© 2019 HashiCorp
● The proxy of the web service uses Consul
service discovery APIs to request the
location of the DB.
● The local agent returns the proxy’s IP
address/Port of a healthy DB instance.
● The local agent also returns the URI for
the expected identity of the service it is
connected to
● Proxies between web and database start
TLS handshake to authenticate the
identity
Establish the connection 2/2
SERVICE MESH 22© 2019 HashiCorp
● The DB proxy sends the authorization
request to its local agent
● The local agent authorizes the connection
based on locally cached intention
● Mutual TLS is established
You can’t do Reliability without
Observability.
23© 2019 HashiCorpSERVICE MESH
Observe
24© 2019 HashiCorpSERVICE MESH
Check Implement
Observability
Observability is a measure of how well
internal states of a system can be
inferred from knowledge of
external outputs.
▪ System metrics (e.g. network, node, etc.)
▪ Health checks
▪ Tracing
▪ Access logs
▪ Application metrics
▪ Application logs
▪ Business analytics
Observability
27© 2019 HashiCorpOBSERVABILITY
▪ Full system failure (easy to spot)
▪ Global Service failure
▪ Service instance failure
▪ Node failure
Types of
failures
In order to pinpoint
the cause of a failure,
we need metadata to
locate the source.
28© 2019 HashiCorpOBSERVABILITY
▪ Connections vs Requests
▪ Failed requests don't always cause a
disconnect
▪ Descriptive status codes
▪ gRPC method names
Layer 7
In order to pinpoint
the cause of a failure,
we need metadata to
locate the source.
29© 2019 HashiCorpOBSERVABILITY
▪ Originally created by Etsy
▪ Push based metrics
▪ Lightweight UDP protocol
▪ No support for metadata
StatsD
CODE EDITOR
myservice.service1.mymethod.called
myservice.service2.mymethod.called
myservice.service3.mymethod.called
▪ Created by DataDog based on StatsD protocol
▪ Push based metrics
▪ Lightweight UDP protocol
▪ Support for metadata through tags
DogStatsD
CODE EDITOR
myservice.mymethod.called tags[serviceid:service1]
myservice.mymethod.called tags[serviceid:service2]
myservice.mymethod.called tags[serviceid:service3]
▪ Pull based approach from central server
▪ Service implements HTTP endpoint exposing
metrics
▪ Supports metadata by default
Prometheus
CODE EDITOR
envoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix="ingress_cache"}
Configuration
Architecture
Configuration
34© 2019 HashiCorpCONFIGURATION
Service A
Sidecar proxy
StatsD exporter Prometheus
Service B
Sidecar proxy
Pod A Pod B
Grafana
emits metrics to StatsD
scrapes the StatsD
exporter
pulls metrics from
Prometheus
Consul
injects and
configures the
sidecar proxy
CODE EDITOR
- job_name: "pods"
scrape_interval: 1s
kubernetes_sd_configs:
- role: pod
relabel_configs:
- action: keep
source_labels: [__meta_kubernetes_pod_container_name]
regex: "prometheus-statsd"
Scrape configuration
Scrape configuration for kubernetes pods.
Scrape configuration
Scrape configuration for VMs using Consul Service Discovery.
CODE EDITOR
- job_name: "pods"
scrape_interval: 1s
kconsul_sd_configs:
- server: "localhost:8500"
relabel_configs:
- source_labels: [__meta_consul_service]
target_label: job
CODE EDITOR
kind = "proxy-defaults"
name = "global"
config {
envoy_dogstatsd_url = "udp://127.0.0.1:9125"
# envoy_prometheus_bind_addr = "0.0.0.0:9102"
}
Configuration file
Enable and configure the metrics endpoint.
Write the configuration
Write the configuration to the centralized configuration.
TERMINAL
$ consul config write proxy-defaults.hcl
CODE EDITOR
metadata:
labels:
app: emojify-api
annotations:
"consul.hashicorp.com/connect-inject": "true"
"consul.hashicorp.com/connect-service-upstreams": "emojify-facebox:8003,emojify-cache:8005"
Configure the service
Injecting the sidecar proxy using consul-k8s.
Bootstrap
Applying the kubernetes configuration will automatically bootstrap the sidecar proxy.
TERMINAL
$ kubectl apply -f emojify-api.yml
CODE EDITOR
services {
name = "emojify-api"
port = 9090
connect {
sidecar_service {
port = 20000
proxy {
local_service_address = "127.0.0.1"
local_service_port = 9090
upstreams {
destination_name = "emojify-facebox"
local_bind_port = 8003
}
upstreams {
Bootstrap
Configuring the Envoy sidecar proxy for the service.
TERMINAL
$ consul connect envoy -sidecar-for emojify-api
Demo
Thank You
eveld@hashicorp.com
www.hashicorp.com
44
45
HashiCorp
Presentation Template
IMPORTANT:
Please read through the
“How to use this template” slides
Copyright © 2019 HashiCorp
How to use this template………………………………………………………………..………………………..……………………………….…………
Splash slides……………………………………………………………………………………………………………………………………………….…………
Presenter slides…………………………………………………………………………………………………………….………………………………………
Cover & section slides…………………………………………..………………………………………..……………...……………………………………
Text only slides……………………………………………………..……………………………..……………..…….….……………………………………..
Image & diagram slides…..……………………………………………………..……………..……………..……….……………………………………
Screenshot slides…………………………………………………………………..……………..……………..……….……………………………………..
Code block slides…………………………………………………………………..……………..…………..……….….……………………………………..
Sequence slides………………………………………………………………..…………….………………………..…..……………………………………..
Callout slides………….…………………………………………………………..…………….…………….…..……………………………………………..
Collection slides…………………………………..……………………………..…………….………….……………..…………………………………….
Security indicators and footer content……………………….……………………………………………………..……………………………
Assets…………………………………..………….………………………………..………………………….………….…………………………………………
Table of Contents
3
11
18
23
34
52
70
75
88
101
126
155
160
Start Here
Create a new document
“From a template.”
From Google Drive, click the “New” button or
right click in the blank space in any folder.
Choose “Google Slides” > “From a template”
and select the Default template.
The template will be duplicated into your
current folder. The first thing you’ll want to do
is rename your new file to avoid confusion!
How to use sample slides.
Take some time browsing through each section to review
the slide template options. It may be easier to use the
Grid view (found below the your slide navigator).
Copy/Paste or Duplicate sample slides, then modify as
needed to build your presentation.
The grid.
In order to maintain visual consistency across
slides it’s imperative you keep content and
objects aligned to the HashiCorp
Presentation grid.
To turn on guides click view > Guides >
“Show Guides”
Select the image you want to replace, then choose
“Replace Image…” from the Google Slides top menu.
How to edit / replace
placeholder images.
To reposition and resize the placed image, double-click it.
This should bring you into adjustment mode where you
can move and resize both the cropping frame and the
image itself.
Avoid when presenting
to an audience
Content best practices.
Dense information is difficult to digest. An example of a
dense slide may include a slide title, overview paragraph text,
bullet point, and an image.
Content best practices.
For higher impact, consider distributing key content across
multiple slides. In this example, some content was removed to avoid
visual clutter, and is instead delivered as part of the talk track.
“The large community supporting Terraform Open Source ranges from independent developers to teams within large
technology companies. Community activity provides constant improvements to our platform and to provider plugins.”
Security indicators.
Be sure to use the correct security indicator
for your content on a per slide basis. If you
have any questions as to which category your
content falls within, please reference:
https://policypoint.hashicorp.services/
standards/risk-classification-standard
To learn how security indicators would be
displayed. review the footer content
template.
Public Content (Low Risk)
No indicator needed.
Restricted Content (Medium Risk)
For customers under NDA.
Internal Content (High Risk)
For internal use only.
INTERNAL USE ONLY
RESTRICTED USE ONLY
Help us improve this template.
Any and all feedback is welcome.
Get in touch in #proj-slide-template on Slack.
You can also check out additional documentation on Confluence:
https://hashicorp.atlassian.net/wiki/spaces/MKT/pages/357531677/Presentations+Workflow
Splash Slides
Thank You
hello@hashicorp.com
www.hashicorp.com
62
Presenter Slides
Jonathan Appleseed
Placeholder at HashiCorp
Presentation title goes here
Jonathan Appleseed
Placeholder at HashiCorp
Presentation title goes here
Jonathan Appleseed
Placeholder at HashiCorp
Jonathan Appleseed
Placeholder at HashiCorp
Jonathan
Appleseed
Placeholder at Client
Jonathan
Appleseed
Placeholder at Client
Jonathan
Appleseed
Placeholder at HashiCorp
Jonathan
Appleseed
Placeholder at HashiCorp
PREPARED FOR PREPARED BY
Cover and Section
Slides
General
presentation title.
3 line max.
Secondary headline here /
keep this short and concise.
3 Line max.
Copyright © 2019 HashiCorp
General
presentation title.
3 line max.
Secondary headline here /
keep this short and concise.
3 Line max.
Copyright © 2019 HashiCorp
Copyright © 2019 HashiCorp
General
presentation title.
3 line max.
Secondary headline here /
keep this short and concise.
3 Line max.
Copyright © 2019 HashiCorp
General
presentation title.
3 line max.
Secondary headline here /
keep this short and concise.
3 Line max.
Copyright © 2019 HashiCorp
General
presentation title.
3 line max.
Secondary headline here /
keep this short and concise.
3 Line max.
Section slide
3 line max.
Section slide
3 line max.
Section slide
3 line max.
Section slide
3 line max.
Section slide
3 line max.
Text Only Slides
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
An organization is driven by its people and culture. What follows are the
principles of HashiCorp, which together describe the foundational
characteristics of the company.
Slide title / 1 line max.
Section title.
Every action we take moves us in some direction. Vision is a point much farther
than a single action can take us. Having a vision allows us to judge if an action
moves us closer or further from our vision.
Section title.
By having a vision, we try to move in some direction, rather than moving in no
singular direction at all. Vision requires you to reflect on the big picture; to
understand the greater goal behind the smaller actions.
Slide title / 1 line max.
Section title.
Text box placement is dependent on the
amount of content. If your content is 8 lines
or less, please move text box down one
guide. Multiple text boxes on each slide
should align with each other, based on the
longest column.
Section title.
Text box placement is dependent on the
amount of content. If your content is 9 lines
or more, your text box should align with this
guide.
HashiCorp will always be focused on
innovating and pushing the boundaries in an
attempt to deeply impact the status quo.
However, forward progress requires strong
grounding in reality.
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
Section title.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions of
people, websites, tools, and
products.
Section title.
HashiCorp will always be
focused on innovating and
pushing the boundaries in an
attempt to deeply impact the
status quo. However, forward
progress requires strong
grounding in reality.
Section title.
Beauty can exist in any job well
done. A job well done requires
applying a sense of purpose
and thoughtfulness, a
consideration for the
consumer of our work.
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
▪ Bullet One
▪ Bullet Two
▪ Bullet Three
▪ Bullet Four
▪ Bullet Five
▪ Bullet Six
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
6. Bullet Six
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title. Content aligned to slide title.
An organization is driven by its people and culture. What
follows are the principles of HashiCorp, which together
describe the foundational characteristics of the company.
▪ Body Level One
– Body Level Two
– Body Level Two
▪ Body Level One
– Body Level Two
Section title. Content centered vertically.
Use this layout only when the length of your content exceeds
the space allowed for the “TL - Content Aligned to Slide Title”
Template.
Section two title.
Beauty can exist in any job well done. A job well done requires
applying a sense of purpose and thoughtfulness, a
consideration for the consumer of our work. In this way, we
must treat our work as a craft to be practiced and perfected.
This attention to detail should be applied to everything we
produce internally and externally.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
HashiCorp will always be
focused on innovating and
pushing the boundaries in an
attempt to deeply impact the
status quo. However, forward
progress requires strong
grounding in reality.
Section title.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions of
people, websites, tools, and
products.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
2,712+
Paragraph title, 1 line max.
Body copy, 1 line max.
2,712+
Paragraph title, 1 line max.
Body copy, 1 line max.
2,712+
Paragraph title, 1 line max.
Body copy, 1 line max.
2,712+
Paragraph title, 1 line max.
Body copy, 1 line max.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
▪ Bullet One
▪ Bullet Two
▪ Bullet Three
▪ Bullet Four
▪ Bullet Five
▪ Bullet Six
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
6. Bullet Six
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
Every action we take moves us in some direction.
Section title.
Vision is a point much farther than a single action
can take us.
Section title.
Having a vision allows us to judge if an action moves
us closer or further from our vision.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
6. Bullet Six
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
6. Bullet Six
1. Bullet One
2. Bullet Two
3. Bullet Three
4. Bullet Four
5. Bullet Five
Image and Diagram
Slides
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
Section title.
Every action we take moves us in some
direction. Vision is a point much farther than
a single action can take us. Having a vision
allows us to judge if an action moves us
closer or further from our vision.
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
Section title.
Every action we take moves us in some
direction. Vision is a point much farther than
a single action can take us. Having a vision
allows us to judge if an action moves us
closer or further from our vision.
Slide title / 1 line max.
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions
of people, websites, tools,
and products.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions
of people, websites, tools,
and products.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions
of people, websites, tools,
and products.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
One or two line description
of above title here.
Section title.
One or two line description
of above title here.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Section title.
HashiCorp will always be
focused on innovating and
pushing the boundaries in an
attempt to deeply impact the
status quo. However,
forward progress requires
strong grounding in reality.
Section title.
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions
of people, websites, tools,
and products.
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Slide title / 1 line max.
Clarence Howard
CEO, Founder
Essie Fitzpatrick
CEO, Founder
Cleve Balistreri
CEO, Founder
Amina Lendgren
CEO, Founder
Slide title
/ 4 line max.
Secondary headline
/ 4 line max.
Callout or descriptive copy / 1 line max.
Callout or
descriptive copy
/ 4 line max.
Screenshot Slides
Slide title / 2 line max.
Secondary headline / 1 line max. Delete if slide title is 2 lines.
Slide title
/ 4 line max.
Body / 4 line max.
Slide title
/ 4 line max.
Body / 4 line max.
Code Block Slides
Slide title / 1 line max.
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
Slide title
/ 4 line max.
Body / 4 line max.
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
Slide title
/ 4 line
max.
Body / 4 line max.
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
CODE EDITOR
{
“foo”: “bar”,
“baz”: 42
}
Slide title / 1 line max.
TERMINAL
> lorem ipsum -d -s amet
TERMINAL
> lorem ipsum -d -s amet
Slide title
/ 4 line max.
Body / 4 line max.
Slide title
/ 4 line max.
Body / 4 line max.
TERMINAL
> lorem ipsum -d -s amet
TERMINAL
> lorem ipsum -d -s amet
TERMINAL
> lorem ipsum -d -s amet
TERMINAL
> lorem ipsum -d -s amet
Sequence Slides
Slide title
/ 4 line max.
Body / 4 line max.
Slide title
/ 4 line max.
Body / 4 line max.
!
Slide title
/ 4 line max.
Body / 4 line max.
!
Slide title
/ 4 line max.
Body / 4 line max.
1 2 3
Slide title
/ 4 line max.
Body / 4 line max.
1 2 3
Slide title
/ 4 line max.
Body / 4 line max.
1 2 3
Slide title
/ 4 line max.
Body / 4 line max.
1 2 3
Slide title
/ 4 line max.
Body / 4 line max.
Slide title
/ 4 line max.
Body / 4 line max.
1 2 3
1 2 3
Slide title
/ 4 line max.
Body / 4 line max.
Slide title / 4 line max.
Body copy / 4 line max.
Slide title / 4 line max.
Body copy / 4 line max.
Callout Slides
Callout or quote text /
4 line max.
Body copy / 4 line max.
Callout or quote text /
4 line max.
Body copy / 4 line max.
Callout or quote text /
4 line max.
Body copy / 4 line max.
Callout or quote text /
4 line max.
Body copy / 4 line max.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Callout Text
Beauty works best.
Collection Slides
Collection item
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions of
people, websites, tools, and
products.
Collection item
HashiCorp will always be
focused on innovating and
pushing the boundaries in an
attempt to deeply impact the
status quo. However, forward
progress requires strong
grounding in reality.
Collection item
Beauty can exist in any job well
done. A job well done requires
applying a sense of purpose
and thoughtfulness, a
consideration for the
consumer of our work.
Slide title / 1 line max.
Collection item
Long after we forget the
details of an interaction, we
remember how we felt. This
extends to our impressions
of people, websites, tools,
and products.
Collection item
HashiCorp will always be
focused on innovating and
pushing the boundaries in an
attempt to deeply impact the
status quo. However,
forward progress requires
strong grounding in reality.
Collection item
Beauty can exist in any job
well done. A job well done
requires applying a sense of
purpose and thoughtfulness,
a consideration for the
consumer of our work.
Collection item
Long after we forget the
details of an interaction,
we remember how we
felt. This extends to our
impressions of people,
websites, tools, and
products.
Collection item
Long after we forget the
details of an interaction,
we remember how we
felt. This extends to our
impressions of people,
websites, tools, and
products.
Collection item
Long after we forget the
details of an interaction,
we remember how we
felt. This extends to our
impressions of people,
websites, tools, and
products.
Collection item
Body / 1 line max.
Collection item
Body / 1 line max.
Collection item
Body / 1 line max.
Collection item
Collection item
Collection item
Collection item
Collection item
Collection item
Collection item
Collection item
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body / 3 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item
Body /
2 line max.
Collection item / 1 line max.
Large Body / 2 line max.
Collection item / 1 line max.
Large Body / 2 line max.
Slide title / 1 line max.
Collection item / 2 line max.
Body Copy
Collection item / 2 line max.
Body Copy
Large Body / 3 line max.
Large Body / 3 line max.
Large Body / 3 line max.
Collection item
Body / 2 line max.
Collection item
Body / 2 line max.
Slide title / 1 line max.
Collection item
Body / 2 line max.
Collection item
Body / 2 line max.
Collection item
Body / 2 line max.
Collection item
Body / 2 line max.
Collection item
This extends to our
impressions of people,
websites, tools, and
products.
Collection item
Long after we forget the
details of an interaction, we
remember how we felt.
Collection item
Long after we forget the
details of an interaction, we
remember how we felt.
Slide title / 1 line max.
Slide title / 1 line max.
Slide title / 1 line max.
Slide title / 1 line max.
Slide title / 1 line max.
Client Logo Slide
TITLETITLE TITLE TITLE TITLE
TITLE
Security Indicator
and Footer Content
Footer Content
Light background:
If you need a running footer, security indicator, copyright info,
or page number please copy the footer content from this slide.
⁄ 201Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE RESTRICTED USE ONLY
Footer Content
Light background:
If you need a running footer, security indicator, copyright info,
or page number please copy the footer content from this slide.
INTERNAL USE ONLY ⁄ 202Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE
Footer Content
Dark background:
If you need a running footer, security indicator, copyright info,
or page number please copy the footer content from this slide.
⁄ 203Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE RESTRICTED USE ONLY
Footer Content
Dark background:
If you need a running footer, security indicator, copyright info,
or page number please copy the footer content from this slide.
INTERNAL USE ONLY ⁄ 204Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE
Assets
Logos on white
Logos on black
Logos on color
Stack on black
Stack on white
Key Messaging
Cloud Infrastructure
Automation
Consistent workflows to provision, secure,
connect, and run any infrastructure for
any application.
Feather icons
Custom icons
Color Swatches
Brand
Product
Text styles
Display
Slide Title
Section Title
BodyParagraph Title
PAGE FOOTER
Caption
Small BodySmall Paragraph Title
Large Body
LABEL
Code Code Small

Layer 7 Observability and Centralized Configuration with Consul Service Mesh

  • 1.
    Copyright © 2019HashiCorp Layer 7 Observability with Consul Service Mesh
  • 2.
    Layer 7 Observabilitywith Consul Service Mesh. Erik Veld Developer Advocate at HashiCorp @erikveld eveld@hashicorp.com
  • 3.
  • 4.
    Networking Connect infrastructure and applications. Development Runapplications. Security Secure infrastructure and applications. Operations Provision infrastructure. INTRODUCTION © 2019 HashiCorp 4 The 4 essential elements of dynamic infrastructure
  • 5.
    Multi-Cloud Service Networking INTRODUCTION © 2019HashiCorp 5 Networking Connect infrastructure and applications. Development Run applications. Security Secure infrastructure and applications. Operations Provision infrastructure.
  • 6.
    Consul Use Cases Distributed service networkinglayer to connect and secure any services 6© 2019 HashiCorpINTRODUCTION Service Registry & Discovery Dynamically locate any application or infrastructure service to simplify network connectivity Service Mesh A distributed networking layer to connect, secure and observe services across any runtime platform and cloud
  • 7.
    Market trend from monoliths to microservicesSingle, Physical Server Dynamic Virtual Machines Smaller, Ephemeral Containers 7© 2019 HashiCorpINTRODUCTION
  • 8.
    INTRODUCTION 8© 2019HashiCorp The shift from static to dynamic networking Dynamic Infrastructure Service-based networking Static Infrastructure Host-based networking
  • 9.
    INTRODUCTION 9© 2019HashiCorp The shift from static to dynamic networking Dynamic Infrastructure Service-based networking Static Infrastructure Host-based networking Private datacenters with static IPs, primarily north-south traffic, protected by perimeter security and coarse-grained network segments. TRADITIONAL APPROACH ● Static connectivity between services ● A fleet of load balancers to route traffic ● Ticket driven processes to update network middleware ● Firewall rule sprawl to constrict access and Insecure flat network zones Multiple clouds and private datacenters with dynamic IPs, dominated by east-west traffic, no clear network perimeters. CONSUL APPROACH ● Centralized registry to locate any service ● Services discovered and connected with centralized policies ● Network automated in service of applications ● Zero trust network enforced by identity-based security policies
  • 10.
    Reduced Productivity Waiting formanual updates to load balancers and firewalls blocks development throughput. INTRODUCTION 10© 2019 HashiCorp Business challenges of dynamic infrastructure Increased Risk Firewall rule sprawl is complex to manage and mistakes create security vulnerabilities. Increased Cost Load balancers and firewalls are expensive and costly to maintain.
  • 11.
    Networks are not100% stable and often experience transient failure. 11© 2019 HashiCorpINTRODUCTION
  • 12.
    Gray Failure The Achilles'Heel of Cloud-Scale Systems "The major availability breakdowns and performance anomalies we see in cloud environments tend to be caused by subtle underlying faults, i.e. gray failures rather than fail-stop failure" Paper from Microsoft research 12© 2019 HashiCorpINTRODUCTION
  • 13.
    Gray Failure The Achilles'Heel of Cloud-Scale Systems ● Performance degradation ● Random packet loss ● Flaky I/O ● Memory pressure ● Non-fatal exceptions 13© 2019 HashiCorpINTRODUCTION
  • 14.
    Common reliability patterns ●Service discovery ● Load balancing ● Retries ● Circuit breaking ● Rate limiting 14© 2019 HashiCorpINTRODUCTION
  • 15.
  • 16.
    Components Service Mesh Control Plane ▪Service to service communication policy. ▪ Service Catalog ▪ CA and x509 certificate generation. ▪ Configuration and proxy management. 16© 2019 HashiCorpSERVICE MESH
  • 17.
    Components Service Mesh Data Plane ▪Authorization ▪ Request tracing ▪ Traffic shaping ▪ Load balancing ▪ Service discovery ▪ Circuit breaking ▪ Retry logic 17© 2019 HashiCorpSERVICE MESH
  • 18.
    Configure Proxies SERVICE MESH18© 2019 HashiCorp ● A proxy is co-located with a single service instance which it represents and proxy all inbound traffic to ● The Client agent instantiates the proxy and registers it as a service. ● Configure proxy with a port on which is used for the service and upstream destination that the service wants to connect to zz connect = { proxy = { config = { upstreams = [ { destination_name = "mongodb", local_bind_port = 8001 } ] } } }
  • 19.
    Get certificate forapplication SERVICE MESH 19© 2019 HashiCorp ● Upon its instantiation, the proxy requests from local agent both leaf and root certificates for the service instance it represents. ● If the local agent can not find the certificates of this service instance in its cache, it will generate a new unique private key and send a certificate signing request (CSR) up to Consul server. ● Server returns the signed certificate to local agent. Agent then caches the certificates the return to the proxy.
  • 20.
    Retrieve Intentions SERVICE MESH20© 2019 HashiCorp ● A subset of intentions which are relevant to destination services are locally cached at the destination Consul agent ● Connection attempts require only local agent communication for authorization ● Updates to intentions are propagated instantly to agents zz $ consul intention create -allow web db Created: web => db (allow)
  • 21.
    Establish the connection1/2 SERVICE MESH 21© 2019 HashiCorp ● The proxy of the web service uses Consul service discovery APIs to request the location of the DB. ● The local agent returns the proxy’s IP address/Port of a healthy DB instance. ● The local agent also returns the URI for the expected identity of the service it is connected to ● Proxies between web and database start TLS handshake to authenticate the identity
  • 22.
    Establish the connection2/2 SERVICE MESH 22© 2019 HashiCorp ● The DB proxy sends the authorization request to its local agent ● The local agent authorizes the connection based on locally cached intention ● Mutual TLS is established
  • 23.
    You can’t doReliability without Observability. 23© 2019 HashiCorpSERVICE MESH
  • 24.
  • 25.
  • 26.
    Observability is ameasure of how well internal states of a system can be inferred from knowledge of external outputs.
  • 27.
    ▪ System metrics(e.g. network, node, etc.) ▪ Health checks ▪ Tracing ▪ Access logs ▪ Application metrics ▪ Application logs ▪ Business analytics Observability 27© 2019 HashiCorpOBSERVABILITY
  • 28.
    ▪ Full systemfailure (easy to spot) ▪ Global Service failure ▪ Service instance failure ▪ Node failure Types of failures In order to pinpoint the cause of a failure, we need metadata to locate the source. 28© 2019 HashiCorpOBSERVABILITY
  • 29.
    ▪ Connections vsRequests ▪ Failed requests don't always cause a disconnect ▪ Descriptive status codes ▪ gRPC method names Layer 7 In order to pinpoint the cause of a failure, we need metadata to locate the source. 29© 2019 HashiCorpOBSERVABILITY
  • 30.
    ▪ Originally createdby Etsy ▪ Push based metrics ▪ Lightweight UDP protocol ▪ No support for metadata StatsD CODE EDITOR myservice.service1.mymethod.called myservice.service2.mymethod.called myservice.service3.mymethod.called
  • 31.
    ▪ Created byDataDog based on StatsD protocol ▪ Push based metrics ▪ Lightweight UDP protocol ▪ Support for metadata through tags DogStatsD CODE EDITOR myservice.mymethod.called tags[serviceid:service1] myservice.mymethod.called tags[serviceid:service2] myservice.mymethod.called tags[serviceid:service3]
  • 32.
    ▪ Pull basedapproach from central server ▪ Service implements HTTP endpoint exposing metrics ▪ Supports metadata by default Prometheus CODE EDITOR envoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix="ingress_cache"}
  • 33.
  • 34.
    Architecture Configuration 34© 2019 HashiCorpCONFIGURATION ServiceA Sidecar proxy StatsD exporter Prometheus Service B Sidecar proxy Pod A Pod B Grafana emits metrics to StatsD scrapes the StatsD exporter pulls metrics from Prometheus Consul injects and configures the sidecar proxy
  • 35.
    CODE EDITOR - job_name:"pods" scrape_interval: 1s kubernetes_sd_configs: - role: pod relabel_configs: - action: keep source_labels: [__meta_kubernetes_pod_container_name] regex: "prometheus-statsd" Scrape configuration Scrape configuration for kubernetes pods.
  • 36.
    Scrape configuration Scrape configurationfor VMs using Consul Service Discovery. CODE EDITOR - job_name: "pods" scrape_interval: 1s kconsul_sd_configs: - server: "localhost:8500" relabel_configs: - source_labels: [__meta_consul_service] target_label: job
  • 37.
    CODE EDITOR kind ="proxy-defaults" name = "global" config { envoy_dogstatsd_url = "udp://127.0.0.1:9125" # envoy_prometheus_bind_addr = "0.0.0.0:9102" } Configuration file Enable and configure the metrics endpoint.
  • 38.
    Write the configuration Writethe configuration to the centralized configuration. TERMINAL $ consul config write proxy-defaults.hcl
  • 39.
    CODE EDITOR metadata: labels: app: emojify-api annotations: "consul.hashicorp.com/connect-inject":"true" "consul.hashicorp.com/connect-service-upstreams": "emojify-facebox:8003,emojify-cache:8005" Configure the service Injecting the sidecar proxy using consul-k8s.
  • 40.
    Bootstrap Applying the kubernetesconfiguration will automatically bootstrap the sidecar proxy. TERMINAL $ kubectl apply -f emojify-api.yml
  • 41.
    CODE EDITOR services { name= "emojify-api" port = 9090 connect { sidecar_service { port = 20000 proxy { local_service_address = "127.0.0.1" local_service_port = 9090 upstreams { destination_name = "emojify-facebox" local_bind_port = 8003 } upstreams {
  • 42.
    Bootstrap Configuring the Envoysidecar proxy for the service. TERMINAL $ consul connect envoy -sidecar-for emojify-api
  • 43.
  • 44.
  • 45.
  • 46.
    HashiCorp Presentation Template IMPORTANT: Please readthrough the “How to use this template” slides Copyright © 2019 HashiCorp
  • 47.
    How to usethis template………………………………………………………………..………………………..……………………………….………… Splash slides……………………………………………………………………………………………………………………………………………….………… Presenter slides…………………………………………………………………………………………………………….……………………………………… Cover & section slides…………………………………………..………………………………………..……………...…………………………………… Text only slides……………………………………………………..……………………………..……………..…….….…………………………………….. Image & diagram slides…..……………………………………………………..……………..……………..……….…………………………………… Screenshot slides…………………………………………………………………..……………..……………..……….…………………………………….. Code block slides…………………………………………………………………..……………..…………..……….….…………………………………….. Sequence slides………………………………………………………………..…………….………………………..…..…………………………………….. Callout slides………….…………………………………………………………..…………….…………….…..…………………………………………….. Collection slides…………………………………..……………………………..…………….………….……………..……………………………………. Security indicators and footer content……………………….……………………………………………………..…………………………… Assets…………………………………..………….………………………………..………………………….………….………………………………………… Table of Contents 3 11 18 23 34 52 70 75 88 101 126 155 160 Start Here
  • 48.
    Create a newdocument “From a template.” From Google Drive, click the “New” button or right click in the blank space in any folder. Choose “Google Slides” > “From a template” and select the Default template. The template will be duplicated into your current folder. The first thing you’ll want to do is rename your new file to avoid confusion!
  • 49.
    How to usesample slides. Take some time browsing through each section to review the slide template options. It may be easier to use the Grid view (found below the your slide navigator). Copy/Paste or Duplicate sample slides, then modify as needed to build your presentation.
  • 50.
    The grid. In orderto maintain visual consistency across slides it’s imperative you keep content and objects aligned to the HashiCorp Presentation grid. To turn on guides click view > Guides > “Show Guides”
  • 51.
    Select the imageyou want to replace, then choose “Replace Image…” from the Google Slides top menu. How to edit / replace placeholder images. To reposition and resize the placed image, double-click it. This should bring you into adjustment mode where you can move and resize both the cropping frame and the image itself.
  • 52.
    Avoid when presenting toan audience Content best practices. Dense information is difficult to digest. An example of a dense slide may include a slide title, overview paragraph text, bullet point, and an image.
  • 53.
    Content best practices. Forhigher impact, consider distributing key content across multiple slides. In this example, some content was removed to avoid visual clutter, and is instead delivered as part of the talk track. “The large community supporting Terraform Open Source ranges from independent developers to teams within large technology companies. Community activity provides constant improvements to our platform and to provider plugins.”
  • 54.
    Security indicators. Be sureto use the correct security indicator for your content on a per slide basis. If you have any questions as to which category your content falls within, please reference: https://policypoint.hashicorp.services/ standards/risk-classification-standard To learn how security indicators would be displayed. review the footer content template. Public Content (Low Risk) No indicator needed. Restricted Content (Medium Risk) For customers under NDA. Internal Content (High Risk) For internal use only. INTERNAL USE ONLY RESTRICTED USE ONLY
  • 55.
    Help us improvethis template. Any and all feedback is welcome. Get in touch in #proj-slide-template on Slack. You can also check out additional documentation on Confluence: https://hashicorp.atlassian.net/wiki/spaces/MKT/pages/357531677/Presentations+Workflow
  • 56.
  • 62.
  • 63.
  • 64.
  • 65.
    Presentation title goeshere Jonathan Appleseed Placeholder at HashiCorp
  • 66.
    Presentation title goeshere Jonathan Appleseed Placeholder at HashiCorp Jonathan Appleseed Placeholder at HashiCorp
  • 67.
    Jonathan Appleseed Placeholder at Client Jonathan Appleseed Placeholderat Client Jonathan Appleseed Placeholder at HashiCorp Jonathan Appleseed Placeholder at HashiCorp PREPARED FOR PREPARED BY
  • 68.
  • 69.
    General presentation title. 3 linemax. Secondary headline here / keep this short and concise. 3 Line max. Copyright © 2019 HashiCorp
  • 70.
    General presentation title. 3 linemax. Secondary headline here / keep this short and concise. 3 Line max. Copyright © 2019 HashiCorp
  • 71.
    Copyright © 2019HashiCorp General presentation title. 3 line max. Secondary headline here / keep this short and concise. 3 Line max.
  • 72.
    Copyright © 2019HashiCorp General presentation title. 3 line max. Secondary headline here / keep this short and concise. 3 Line max.
  • 73.
    Copyright © 2019HashiCorp General presentation title. 3 line max. Secondary headline here / keep this short and concise. 3 Line max.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. An organization is driven by its people and culture. What follows are the principles of HashiCorp, which together describe the foundational characteristics of the company.
  • 81.
    Slide title /1 line max. Section title. Every action we take moves us in some direction. Vision is a point much farther than a single action can take us. Having a vision allows us to judge if an action moves us closer or further from our vision. Section title. By having a vision, we try to move in some direction, rather than moving in no singular direction at all. Vision requires you to reflect on the big picture; to understand the greater goal behind the smaller actions.
  • 82.
    Slide title /1 line max. Section title. Text box placement is dependent on the amount of content. If your content is 8 lines or less, please move text box down one guide. Multiple text boxes on each slide should align with each other, based on the longest column. Section title. Text box placement is dependent on the amount of content. If your content is 9 lines or more, your text box should align with this guide. HashiCorp will always be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality.
  • 83.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. Section title. Long after we forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Section title. HashiCorp will always be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality. Section title. Beauty can exist in any job well done. A job well done requires applying a sense of purpose and thoughtfulness, a consideration for the consumer of our work.
  • 84.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. ▪ Bullet One ▪ Bullet Two ▪ Bullet Three ▪ Bullet Four ▪ Bullet Five ▪ Bullet Six
  • 85.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. 1. Bullet One 2. Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five 6. Bullet Six
  • 86.
    Slide title / 4line max. Secondary headline / 4 line max. Section title. Content aligned to slide title. An organization is driven by its people and culture. What follows are the principles of HashiCorp, which together describe the foundational characteristics of the company. ▪ Body Level One – Body Level Two – Body Level Two ▪ Body Level One – Body Level Two
  • 87.
    Section title. Contentcentered vertically. Use this layout only when the length of your content exceeds the space allowed for the “TL - Content Aligned to Slide Title” Template. Section two title. Beauty can exist in any job well done. A job well done requires applying a sense of purpose and thoughtfulness, a consideration for the consumer of our work. In this way, we must treat our work as a craft to be practiced and perfected. This attention to detail should be applied to everything we produce internally and externally. Slide title / 4 line max. Secondary headline / 4 line max.
  • 88.
    Section title. HashiCorp willalways be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality. Section title. Long after we forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Slide title / 4 line max. Secondary headline / 4 line max.
  • 89.
    2,712+ Paragraph title, 1line max. Body copy, 1 line max. 2,712+ Paragraph title, 1 line max. Body copy, 1 line max. 2,712+ Paragraph title, 1 line max. Body copy, 1 line max. 2,712+ Paragraph title, 1 line max. Body copy, 1 line max. Slide title / 4 line max. Secondary headline / 4 line max.
  • 90.
    ▪ Bullet One ▪Bullet Two ▪ Bullet Three ▪ Bullet Four ▪ Bullet Five ▪ Bullet Six Slide title / 4 line max. Secondary headline / 4 line max.
  • 91.
    1. Bullet One 2.Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five 6. Bullet Six Slide title / 4 line max. Secondary headline / 4 line max.
  • 92.
    Section title. Every actionwe take moves us in some direction. Section title. Vision is a point much farther than a single action can take us. Section title. Having a vision allows us to judge if an action moves us closer or further from our vision. Slide title / 4 line max. Secondary headline / 4 line max.
  • 93.
    1. Bullet One 2.Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five 6. Bullet Six
  • 94.
    1. Bullet One 2.Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five
  • 95.
    1. Bullet One 2.Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five 6. Bullet Six
  • 96.
    1. Bullet One 2.Bullet Two 3. Bullet Three 4. Bullet Four 5. Bullet Five
  • 97.
  • 98.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. Section title. Every action we take moves us in some direction. Vision is a point much farther than a single action can take us. Having a vision allows us to judge if an action moves us closer or further from our vision.
  • 99.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines. Section title. Every action we take moves us in some direction. Vision is a point much farther than a single action can take us. Having a vision allows us to judge if an action moves us closer or further from our vision.
  • 100.
    Slide title /1 line max.
  • 101.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines.
  • 102.
    Slide title / 4line max. Secondary headline / 4 line max.
  • 103.
    Section title. Long afterwe forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Slide title / 4 line max. Secondary headline / 4 line max.
  • 104.
    Section title. Long afterwe forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Slide title / 4 line max. Secondary headline / 4 line max.
  • 105.
    Long after weforget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Slide title / 4 line max. Secondary headline / 4 line max.
  • 106.
    Slide title / 4line max. Secondary headline / 4 line max.
  • 107.
    Section title. One ortwo line description of above title here. Section title. One or two line description of above title here. Slide title / 4 line max. Secondary headline / 4 line max.
  • 108.
    Section title. HashiCorp willalways be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality. Section title. Long after we forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Slide title / 4 line max. Secondary headline / 4 line max.
  • 109.
    Slide title /1 line max. Clarence Howard CEO, Founder Essie Fitzpatrick CEO, Founder Cleve Balistreri CEO, Founder Amina Lendgren CEO, Founder
  • 110.
    Slide title / 4line max. Secondary headline / 4 line max.
  • 111.
    Callout or descriptivecopy / 1 line max.
  • 112.
  • 115.
  • 116.
    Slide title /2 line max. Secondary headline / 1 line max. Delete if slide title is 2 lines.
  • 117.
    Slide title / 4line max. Body / 4 line max.
  • 118.
    Slide title / 4line max. Body / 4 line max.
  • 120.
  • 121.
    Slide title /1 line max. CODE EDITOR { “foo”: “bar”, “baz”: 42 }
  • 122.
    Slide title / 4line max. Body / 4 line max. CODE EDITOR { “foo”: “bar”, “baz”: 42 }
  • 123.
    Slide title / 4line max. Body / 4 line max. CODE EDITOR { “foo”: “bar”, “baz”: 42 }
  • 124.
  • 125.
  • 126.
  • 127.
    Slide title /1 line max. TERMINAL > lorem ipsum -d -s amet
  • 128.
    TERMINAL > lorem ipsum-d -s amet Slide title / 4 line max. Body / 4 line max.
  • 129.
    Slide title / 4line max. Body / 4 line max. TERMINAL > lorem ipsum -d -s amet
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
    Slide title / 4line max. Body / 4 line max.
  • 135.
    Slide title / 4line max. Body / 4 line max.
  • 136.
    ! Slide title / 4line max. Body / 4 line max.
  • 137.
    ! Slide title / 4line max. Body / 4 line max.
  • 138.
    1 2 3 Slidetitle / 4 line max. Body / 4 line max.
  • 139.
    1 2 3 Slidetitle / 4 line max. Body / 4 line max.
  • 140.
    1 2 3 Slidetitle / 4 line max. Body / 4 line max.
  • 141.
    1 2 3 Slidetitle / 4 line max. Body / 4 line max.
  • 142.
    Slide title / 4line max. Body / 4 line max. 1 2 3
  • 143.
    1 2 3 Slidetitle / 4 line max. Body / 4 line max.
  • 144.
    Slide title /4 line max. Body copy / 4 line max.
  • 145.
    Slide title /4 line max. Body copy / 4 line max.
  • 146.
  • 147.
    Callout or quotetext / 4 line max. Body copy / 4 line max.
  • 148.
    Callout or quotetext / 4 line max. Body copy / 4 line max.
  • 149.
    Callout or quotetext / 4 line max. Body copy / 4 line max.
  • 150.
    Callout or quotetext / 4 line max. Body copy / 4 line max.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
    Collection item Long afterwe forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Collection item HashiCorp will always be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality. Collection item Beauty can exist in any job well done. A job well done requires applying a sense of purpose and thoughtfulness, a consideration for the consumer of our work. Slide title / 1 line max.
  • 173.
    Collection item Long afterwe forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Collection item HashiCorp will always be focused on innovating and pushing the boundaries in an attempt to deeply impact the status quo. However, forward progress requires strong grounding in reality. Collection item Beauty can exist in any job well done. A job well done requires applying a sense of purpose and thoughtfulness, a consideration for the consumer of our work.
  • 174.
    Collection item Long afterwe forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Collection item Long after we forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products. Collection item Long after we forget the details of an interaction, we remember how we felt. This extends to our impressions of people, websites, tools, and products.
  • 175.
    Collection item Body /1 line max. Collection item Body / 1 line max. Collection item Body / 1 line max.
  • 176.
    Collection item Collection item Collectionitem Collection item Collection item
  • 177.
  • 178.
    Collection item Body /3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max.
  • 179.
    Collection item Body /3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max. Collection item Body / 3 line max.
  • 180.
    Collection item Body / 2line max. Collection item Body / 2 line max. Collection item Body / 2 line max. Collection item Body / 2 line max.
  • 181.
    Collection item Body / 2line max. Collection item Body / 2 line max. Collection item Body / 2 line max. Collection item Body / 2 line max. Collection item Body / 2 line max. Collection item Body / 2 line max.
  • 182.
    Collection item /1 line max. Large Body / 2 line max. Collection item / 1 line max. Large Body / 2 line max. Slide title / 1 line max.
  • 183.
    Collection item /2 line max. Body Copy Collection item / 2 line max. Body Copy
  • 185.
    Large Body /3 line max. Large Body / 3 line max. Large Body / 3 line max.
  • 186.
    Collection item Body /2 line max. Collection item Body / 2 line max. Slide title / 1 line max. Collection item Body / 2 line max.
  • 187.
    Collection item Body /2 line max. Collection item Body / 2 line max. Collection item Body / 2 line max.
  • 188.
    Collection item This extendsto our impressions of people, websites, tools, and products. Collection item Long after we forget the details of an interaction, we remember how we felt. Collection item Long after we forget the details of an interaction, we remember how we felt.
  • 189.
    Slide title /1 line max.
  • 191.
    Slide title /1 line max.
  • 193.
    Slide title /1 line max.
  • 195.
    Slide title /1 line max.
  • 197.
    Slide title /1 line max.
  • 199.
    Client Logo Slide TITLETITLETITLE TITLE TITLE TITLE
  • 200.
  • 201.
    Footer Content Light background: Ifyou need a running footer, security indicator, copyright info, or page number please copy the footer content from this slide. ⁄ 201Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE RESTRICTED USE ONLY
  • 202.
    Footer Content Light background: Ifyou need a running footer, security indicator, copyright info, or page number please copy the footer content from this slide. INTERNAL USE ONLY ⁄ 202Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE
  • 203.
    Footer Content Dark background: Ifyou need a running footer, security indicator, copyright info, or page number please copy the footer content from this slide. ⁄ 203Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE RESTRICTED USE ONLY
  • 204.
    Footer Content Dark background: Ifyou need a running footer, security indicator, copyright info, or page number please copy the footer content from this slide. INTERNAL USE ONLY ⁄ 204Copyright © 2019 HashiCorp⁄ SECTION OR PRESENTATION TITLE
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
    Key Messaging Cloud Infrastructure Automation Consistentworkflows to provision, secure, connect, and run any infrastructure for any application.
  • 212.
  • 213.
  • 214.
  • 215.
    Text styles Display Slide Title SectionTitle BodyParagraph Title PAGE FOOTER Caption Small BodySmall Paragraph Title Large Body LABEL Code Code Small