mirror of https://github.com/hashicorp/consul
Brandon Romano
5 years ago
5 changed files with 2 additions and 967 deletions
@ -1,480 +0,0 @@
|
||||
import CallToAction from '@hashicorp/react-call-to-action' |
||||
import CaseStudySlider from '@hashicorp/react-case-study-slider' |
||||
import CodeBlock from '@hashicorp/react-code-block' |
||||
|
||||
export default function ServiceDiscovery() { |
||||
return ( |
||||
<> |
||||
<div className="consul-connect"> |
||||
<CallToAction |
||||
heading="Service discovery made easy" |
||||
content="Service registry, integrated health checks, and DNS and HTTP interfaces enable any service to discover and be discovered by other services" |
||||
brand="consul" |
||||
links={[ |
||||
{ text: 'Download', url: '/downloads' }, |
||||
{ |
||||
text: 'Explore Docs', |
||||
url: |
||||
'https://learn.hashicorp.com/consul/getting-started/services', |
||||
}, |
||||
]} |
||||
/> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="intro"> |
||||
<h2 class="g-type-display-2">Features</h2> |
||||
</div> |
||||
<div class="g-text-asset large"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Service Registry</h3> |
||||
<p class="g-type-body"> |
||||
Consul provides a registry of all the running nodes and |
||||
services, along with their current health status. This |
||||
allows operators to understand the environment, and |
||||
applications and automation tools to interact with dynamic |
||||
infrastructure using an HTTP API. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="https://learn.hashicorp.com/consul/getting-started/services" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div> |
||||
<picture> |
||||
<source |
||||
type="image/webp" |
||||
srcSet=" |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_230.webp 230w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_690.webp 690w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_1290.webp 1290w" |
||||
/> |
||||
<source |
||||
type="image/jpg" |
||||
srcSet=" |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_230.jpg 230w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_690.jpg 690w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_1290.jpg 1290w" |
||||
/> |
||||
<img |
||||
src="/img/consul-connect/ui-health-checks/ui-health-checks_1290.jpg" |
||||
alt="Service Registry" |
||||
/> |
||||
</picture> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset reverse"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">DNS Query Interface</h3> |
||||
<p class="g-type-body"> |
||||
Consul enables service discovery using a built-in DNS |
||||
server. This allows existing applications to easily |
||||
integrate, as almost all applications support using DNS to |
||||
resolve IP addresses. Using DNS instead of a static IP |
||||
address allows services to scale up/down and route around |
||||
failures easily. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="https://learn.hashicorp.com/consul/getting-started/services#querying-services" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="code-sample"> |
||||
<div> |
||||
<span></span> |
||||
<CodeBlock |
||||
prefix="terminal" |
||||
code={` |
||||
$ dig web-frontend.service.consul. ANY |
||||
; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY |
||||
;; global options: +cmd |
||||
;; Got answer: |
||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981 |
||||
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 |
||||
|
||||
;; QUESTION SECTION: |
||||
;web-frontend.service.consul. IN ANY |
||||
|
||||
;; ANSWER SECTION: |
||||
web-frontend.service.consul. 0 IN A 10.0.3.83 |
||||
web-frontend.service.consul. 0 IN A 10.0.1.109 |
||||
`} |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">HTTP API with Edge Triggers</h3> |
||||
<p class="g-type-body"> |
||||
Consul provides an HTTP API to query the service registry |
||||
for nodes, services, and health check information. The API |
||||
also supports blocking queries, or long-polling for any |
||||
changes. This allows automation tools to react to services |
||||
being registered or health status changes to change |
||||
configurations or traffic routing in real time. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="https://learn.hashicorp.com/consul/getting-started/services#http-api" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="code-sample"> |
||||
<div> |
||||
<span></span> |
||||
<CodeBlock |
||||
prefix="terminal" |
||||
code={` |
||||
$ curl http://localhost:8500/v1/health/service/web?index=11&wait=30s |
||||
{ |
||||
... |
||||
"Node": "10-0-1-109", |
||||
"CheckID": "service:web", |
||||
"Name": "Service 'web' check", |
||||
"Status": <code class='keyword'>"critical"</code>, |
||||
"ServiceID": "web", |
||||
"ServiceName": "web", |
||||
"CreateIndex": 10, |
||||
"ModifyIndex": 20 |
||||
... |
||||
} |
||||
`} |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset reverse"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Multi Datacenter</h3> |
||||
<p class="g-type-body"> |
||||
Consul supports multiple datacenters out of the box with no |
||||
complicated configuration. Look up services in other |
||||
datacenters or keep the request local. Advanced features |
||||
like Prepared Queries enable automatic failover to other |
||||
datacenters. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="https://learn.hashicorp.com/consul/security-networking/datacenters" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="code-sample"> |
||||
<div> |
||||
<span></span> |
||||
<div class="code"> |
||||
<CodeBlock |
||||
prefix="terminal" |
||||
code={` |
||||
$ curl http://localhost:8500/v1/catalog/datacenters |
||||
[ |
||||
"dc1", |
||||
"dc2" |
||||
] |
||||
$ curl http://localhost:8500/v1/catalog/nodes?dc=dc2 |
||||
[ |
||||
{ |
||||
"ID": "7081dcdf-fdc0-0432-f2e8-a357d36084e1", |
||||
"Node": "10-0-1-109", |
||||
"Address": "10.0.1.109", |
||||
"Datacenter": "<code class='keyword'>dc2</code>", |
||||
"TaggedAddresses": { |
||||
"lan": "10.0.1.109", |
||||
"wan": "10.0.1.109" |
||||
}, |
||||
"CreateIndex": 112, |
||||
"ModifyIndex": 125 |
||||
}, |
||||
... |
||||
`} |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset large"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Health Checks</h3> |
||||
<p class="g-type-body"> |
||||
Pairing service discovery with health checking prevents |
||||
routing requests to unhealthy hosts and enables services to |
||||
easily provide circuit breakers. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="https://learn.hashicorp.com/consul/getting-started/services" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div> |
||||
<picture> |
||||
<source |
||||
type="image/webp" |
||||
srcSet=" |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_230.webp 230w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_690.webp 690w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_1290.webp 1290w" |
||||
/> |
||||
<source |
||||
type="image/jpg" |
||||
srcSet=" |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_230.jpg 230w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_690.jpg 690w, |
||||
/img/consul-connect/ui-health-checks/ui-health-checks_1290.jpg 1290w" |
||||
/> |
||||
<img |
||||
src="/img/consul-connect/ui-health-checks/ui-health-checks_1290.jpg" |
||||
alt="Health Checks" |
||||
/> |
||||
</picture> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
<section className="large-padding bg-dark"> |
||||
<div className="g-grid-container"> |
||||
<div class="intro"> |
||||
<h2 class="g-type-display-2">Use Cases</h2> |
||||
</div> |
||||
<CaseStudySlider |
||||
dark |
||||
data={{ |
||||
brand: 'consul', |
||||
caseStudies: [ |
||||
{ |
||||
company: { |
||||
monochromeLogo: { |
||||
url: |
||||
'https://www.datocms-assets.com/2885/1586530899-twitchextrudedwordmarkblackops.png', |
||||
alt: 'Logo dark', |
||||
format: 'png', |
||||
}, |
||||
whiteLogo: { |
||||
url: |
||||
'https://www.datocms-assets.com/2885/1586530633-twitch-wordmark-white.svg', |
||||
alt: 'Logo white', |
||||
format: 'png', |
||||
}, |
||||
}, |
||||
headline: |
||||
'Twitch - Driving Towards a Modern Infrastructure', |
||||
description: |
||||
'In this talk from HashiConf 2015, Tarrant Rollins discusses how Twitch uses HashiCorp Consul to overcome legacy infrastructure and solve complex problems.', |
||||
caseStudyLink: |
||||
'https://www.hashicorp.com/resources/twitch-driving-towards-a-modern-infrastructure', |
||||
caseStudyResource: { |
||||
image: { |
||||
url: |
||||
'/img/consul-connect/case-studies/case-study_01.jpg', |
||||
alt: 'Twitch - Modern Infrastructure', |
||||
format: 'jpg', |
||||
}, |
||||
}, |
||||
buttonLabel: 'Watch Video', |
||||
}, |
||||
{ |
||||
company: { |
||||
monochromeLogo: { |
||||
url: |
||||
'https://www.datocms-assets.com/2885/1522341143-jet-black.svg', |
||||
alt: 'Logo dark', |
||||
format: 'svg', |
||||
}, |
||||
whiteLogo: { |
||||
url: |
||||
'https://www.datocms-assets.com/2885/1522341147-jet-white.svg', |
||||
alt: 'Logo white', |
||||
format: 'svg', |
||||
}, |
||||
}, |
||||
headline: |
||||
'Jet.com - Nomad Auto-Proxy with Consul-Template and NGINX', |
||||
description: |
||||
'Justen Walker explains how Jet.com uses HashiCorp Consul and Nomad to allow hundreds of developers to have self-service access, despite relying on NGINX static configs—and with a remarkably small DevOps team.', |
||||
caseStudyLink: |
||||
'https://www.hashicorp.com/resources/jet-com-nomad-auto-proxy-consul-template-nginx', |
||||
caseStudyResource: { |
||||
image: { |
||||
url: |
||||
'/img/consul-connect/case-studies/case-study_02.jpg', |
||||
alt: 'Jet - Nomad Auto-Proxy', |
||||
format: 'jpg', |
||||
}, |
||||
}, |
||||
buttonLabel: 'Watch Video', |
||||
}, |
||||
], |
||||
}} |
||||
/> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section g-cta-section large-padding"> |
||||
<div> |
||||
<h2 class="g-type-display-2">Ready to get started?</h2> |
||||
<a href="/downloads.html" class="button download white"> |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="20" |
||||
height="22" |
||||
viewBox="0 0 20 22" |
||||
> |
||||
<path d="M9.292 15.706a1 1 0 0 0 1.416 0l3.999-3.999a1 1 0 1 0-1.414-1.414L11 12.586V1a1 1 0 1 0-2 0v11.586l-2.293-2.293a1 1 0 1 0-1.414 1.414l3.999 3.999zM20 16v3c0 1.654-1.346 3-3 3H3c-1.654 0-3-1.346-3-3v-3a1 1 0 1 1 2 0v3c0 .551.448 1 1 1h14c.552 0 1-.449 1-1v-3a1 1 0 1 1 2 0z" /> |
||||
</svg> |
||||
Download |
||||
</a> |
||||
<a |
||||
href="https://learn.hashicorp.com/consul/getting-started/services" |
||||
class="button secondary white" |
||||
> |
||||
Explore docs |
||||
</a> |
||||
</div> |
||||
</section> |
||||
</div> |
||||
</> |
||||
) |
||||
} |
@ -1,51 +0,0 @@
|
||||
.intro { |
||||
text-align: center; |
||||
margin-bottom: 64px; |
||||
} |
||||
|
||||
.g-section.border-top { |
||||
border-top: 1px solid #e5e6eb; |
||||
} |
||||
|
||||
.g-cta-section.g-section { |
||||
align-items: center; |
||||
background: var(--consul); |
||||
display: flex; |
||||
justify-content: center; |
||||
padding-left: 15px; |
||||
padding-right: 15px; |
||||
position: relative; |
||||
text-align: center; |
||||
overflow: hidden; |
||||
|
||||
&:after { |
||||
content: ''; |
||||
background: url('/img/consul-connect/mesh.svg') top center; |
||||
background-size: cover; |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
bottom: 0; |
||||
left: 0; |
||||
opacity: 0.2; |
||||
transform: scale(1.3, 1.3); |
||||
} |
||||
|
||||
& > div { |
||||
z-index: 1; |
||||
} |
||||
|
||||
& h2 { |
||||
color: var(--white); |
||||
margin-top: 0; |
||||
} |
||||
|
||||
& .button + .button { |
||||
margin-left: 18px; |
||||
} |
||||
} |
||||
|
||||
.bg-dark { |
||||
background: #252937 !important; |
||||
color: #fff; |
||||
} |
@ -1,435 +0,0 @@
|
||||
import CallToAction from '@hashicorp/react-call-to-action' |
||||
import CodeBlock from '@hashicorp/react-code-block' |
||||
|
||||
export default function ServiceMesh() { |
||||
return ( |
||||
<> |
||||
<div className="consul-connect"> |
||||
<CallToAction |
||||
heading="Service Mesh made easy" |
||||
content="Service discovery, identity-based authorization, and L7 traffic management abstracted from application code with proxies in the service mesh pattern" |
||||
brand="consul" |
||||
links={[ |
||||
{ text: 'Download', url: '/downloads' }, |
||||
{ |
||||
text: 'Explore Docs', |
||||
url: |
||||
'https://learn.hashicorp.com/consul/getting-started/services', |
||||
}, |
||||
]} |
||||
/> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="intro"> |
||||
<h2 class="g-type-display-2">Features</h2> |
||||
</div> |
||||
<div class="g-text-asset reverse"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Layer 7 Traffic Management</h3> |
||||
<p class="g-type-body"> |
||||
Service-to-service communication policy at Layer 7 can be |
||||
managed centrally, enabling advanced traffic management |
||||
patterns such as service failover, path-based routing, and |
||||
traffic shifting that can be applied across public and |
||||
private clouds, platforms, and networks. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/l7-traffic-management.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="code-sample"> |
||||
<div> |
||||
<span></span> |
||||
<CodeBlock |
||||
prefix="terminal" |
||||
code={` |
||||
Kind = "service-splitter" |
||||
Name = "billing-api" |
||||
|
||||
Splits = [ |
||||
{ |
||||
Weight = 10 |
||||
ServiceSubset = "v2" |
||||
}, |
||||
{ |
||||
Weight = 90 |
||||
ServiceSubset = "v1" |
||||
}, |
||||
] |
||||
`} |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset large"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Layer 7 Observability</h3> |
||||
<p class="g-type-body"> |
||||
Centrally managed service observability at Layer 7 including |
||||
detailed metrics on all service-to-service communication |
||||
such as connections, bytes transferred, retries, timeouts, |
||||
open circuits, and request rates, response codes. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/observability.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div> |
||||
<picture> |
||||
<source |
||||
type="image/png" |
||||
srcSet="/img/consul-connect/mesh-observability/metrics_300.png 300w, /img/consul-connect/mesh-observability/metrics_976.png 976w, /img/consul-connect/mesh-observability/metrics_1200.png 1200w" |
||||
/> |
||||
<img |
||||
src="/img/consul-connect/mesh-observability/metrics_1200.png" |
||||
alt="Metrics dashboard" |
||||
/> |
||||
</picture> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset reverse"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3"> |
||||
Secure services across any runtime platform |
||||
</h3> |
||||
<p class="g-type-body"> |
||||
Secure communication between legacy and modern workloads. |
||||
Sidecar proxies allow applications to be integrated without |
||||
code changes and Layer 4 support provides nearly universal |
||||
protocol compatibility. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/proxies.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div> |
||||
<picture> |
||||
<source |
||||
type="image/webp" |
||||
srcSet=" |
||||
/img/consul-connect/grid_3/grid_3_300.webp 300w, |
||||
/img/consul-connect/grid_3/grid_3_976.webp 976w, |
||||
/img/consul-connect/grid_3/grid_3_1256.webp 1256w" |
||||
/> |
||||
<source |
||||
type="image/png" |
||||
srcSet=" |
||||
/img/consul-connect/grid_3/grid_3_300.png 300w, |
||||
/img/consul-connect/grid_3/grid_3_976.png 976w, |
||||
/img/consul-connect/grid_3/grid_3_1256.png 1256w" |
||||
/> |
||||
<img |
||||
src="/img/consul-connect/grid_3/grid_3_1256.png" |
||||
alt="Secure services across any runtime platform" |
||||
/> |
||||
</picture> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3"> |
||||
Certificate-Based Service Identity |
||||
</h3> |
||||
<p class="g-type-body"> |
||||
TLS certificates are used to identify services and secure |
||||
communications. Certificates use the SPIFFE format for |
||||
interoperability with other platforms. Consul can be a |
||||
certificate authority to simplify deployment, or integrate |
||||
with external signing authorities like Vault. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/ca.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="logos"> |
||||
<div> |
||||
<img src="/img/consul-connect/logos/vault.png" alt="Vault" /> |
||||
<img |
||||
src="/img/consul-connect/logos/spiffe.png" |
||||
alt="Spiffe" |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset reverse"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Encrypted communication</h3> |
||||
<p class="g-type-body"> |
||||
All traffic between services is encrypted and authenticated |
||||
with mutual TLS. Using TLS provides a strong guarantee of |
||||
the identity of services communicating, and ensures all data |
||||
in transit is encrypted. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/security.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div class="code-sample"> |
||||
<div> |
||||
<span></span> |
||||
<CodeBlock |
||||
prefix="terminal" |
||||
code={` |
||||
$ consul connect proxy -service web \\ |
||||
-service-addr 127.0.0.1:8000 |
||||
-listen 10.0.1.109:7200 |
||||
==> Consul Connect proxy starting... |
||||
Configuration mode: Flags |
||||
Service: web |
||||
Public listener: 10.0.1.109:7200 => 127.0.0.1:8000 |
||||
... |
||||
$ tshark -V \\ |
||||
-Y "ssl.handshake.certificate" \\ |
||||
-O "ssl" \\ |
||||
-f "dst port 7200" |
||||
Frame 39: 899 bytes on wire (7192 bits), 899 bytes captured (7192 bits) on interface 0 |
||||
Internet Protocol Version 4, Src: 10.0.1.110, Dst: 10.0.1.109 |
||||
Transmission Control Protocol, Src Port: 61918, Dst Port: 7200, Seq: 136, Ack: 916, Len: 843 |
||||
Secure Sockets Layer |
||||
TLSv1.2 Record Layer: Handshake Protocol: Certificate |
||||
Version: TLS 1.2 (0x0303) |
||||
Handshake Protocol: Certificate |
||||
RDNSequence item: 1 item (id-at-commonName=Consul CA 7) |
||||
RelativeDistinguishedName item (id-at-commonName=Consul CA 7) |
||||
Id: 2.5.4.3 (id-at-commonName) |
||||
DirectoryString: printableString (1) |
||||
printableString: Consul CA 7 |
||||
`} |
||||
/> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section border-top large-padding"> |
||||
<div class="g-container"> |
||||
<div class="g-text-asset"> |
||||
<div> |
||||
<div> |
||||
<h3 class="g-type-display-3">Mesh Gateway</h3> |
||||
<p class="g-type-body"> |
||||
Connect between different cloud regions, VPCs and between |
||||
overlay and underlay networks without complex network |
||||
tunnels and NAT. Mesh Gateways solve routing at TLS layer |
||||
while preserving end-to-end encryption and limiting attack |
||||
surface area at the edge of each network. |
||||
</p> |
||||
<p> |
||||
<a |
||||
class="learn-more g-type-buttons-and-standalone-links" |
||||
href="/docs/connect/mesh_gateway.html" |
||||
> |
||||
Learn more |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="6" |
||||
height="10" |
||||
viewBox="0 0 6 10" |
||||
> |
||||
<g |
||||
fill="none" |
||||
fillRule="evenodd" |
||||
transform="translate(-6 -3)" |
||||
> |
||||
<mask id="a" fill="#fff"> |
||||
<path d="M7.138 3.529a.666.666 0 1 0-.942.942l3.528 3.53-3.529 3.528a.666.666 0 1 0 .943.943l4-4a.666.666 0 0 0 0-.943l-4-4z" /> |
||||
</mask> |
||||
<g fill="#1563FF" mask="url(#a)"> |
||||
<path d="M0 0h16v16H0z" /> |
||||
</g> |
||||
</g> |
||||
</svg> |
||||
</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
<div> |
||||
<picture> |
||||
<img |
||||
src="/img/consul-connect/mesh-gateway/gateway_1200.png" |
||||
alt="Mesh gateway diagram" |
||||
/> |
||||
</picture> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="g-section g-cta-section large-padding"> |
||||
<div> |
||||
<h2 class="g-type-display-2">Ready to get started?</h2> |
||||
<a href="/downloads.html" class="button download white"> |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
width="20" |
||||
height="22" |
||||
viewBox="0 0 20 22" |
||||
> |
||||
<path d="M9.292 15.706a1 1 0 0 0 1.416 0l3.999-3.999a1 1 0 1 0-1.414-1.414L11 12.586V1a1 1 0 1 0-2 0v11.586l-2.293-2.293a1 1 0 1 0-1.414 1.414l3.999 3.999zM20 16v3c0 1.654-1.346 3-3 3H3c-1.654 0-3-1.346-3-3v-3a1 1 0 1 1 2 0v3c0 .551.448 1 1 1h14c.552 0 1-.449 1-1v-3a1 1 0 1 1 2 0z" /> |
||||
</svg> |
||||
Download |
||||
</a> |
||||
<a |
||||
href="https://learn.hashicorp.com/consul/getting-started/services" |
||||
class="button secondary white" |
||||
> |
||||
Explore docs |
||||
</a> |
||||
</div> |
||||
</section> |
||||
</div> |
||||
</> |
||||
) |
||||
} |
Loading…
Reference in new issue