import LearnCallout from '@hashicorp/react-learn-callout' import SteppedFeatureList from '@hashicorp/react-stepped-feature-list' import TextSplitWithImage from '@hashicorp/react-text-split-with-image' import CodeBlock from '@hashicorp/react-code-block' import UseCases from '@hashicorp/react-use-cases' import CalloutBlade from 'components/callout-blade' import CaseStudyCarousel from 'components/case-study-carousel' import HomepageHero from 'components/homepage-hero' import StaticDynamicDiagram from 'components/static-dynamic-diagram' import highlightString from '@hashicorp/nextjs-scripts/prism/highlight-string' export default function HomePage({ serviceMeshIngressGatewayCode }) { return (
Private datacenters with static IPs, primarily north-south traffic, protected by perimeter security and coarse-grained network segments.

\n' + '

»Traditional Approach

\n' + '
    \n' + '
  • Static connectivity between services
  • \n' + '
  • A fleet of load balancers to route traffic
  • \n' + '
  • Ticket driven processes to update network middleware
  • \n' + '
  • Firewall rule sprawl to constrict access and insecure flat network zones
  • \n' + '
', beforeImage: { url: 'https://www.datocms-assets.com/2885/1559693517-static-infrastructure.png', alt: 'Static Infrastructure', }, afterHeadline: 'Dynamic Infrastructure', // @TODO - Convert to a slot w/ JSX markup afterContent: '

Multiple clouds and private datacenters with dynamic IPs, ephemeral containers, dominated by east-west traffic, no clear network perimeters.

\n' + '

»Consul Approach

\n' + '
    \n' + '
  • Centralized registry to locate any service
  • \n' + '
  • Services discovered and connected with centralized policies
  • \n' + '
  • Network automated in service of applications
  • \n' + '
  • Zero trust network enforced by identity-based security policies
  • \n' + '
', afterImage: { url: 'https://www.datocms-assets.com/2885/1559693545-dynamic-infrastructure-4x.png', alt: 'Dynamic Infrastructure', }, }} />

Why Consul?

Consul Ecosystem

Features

), }, { title: 'Enhanced Observability', description: 'Visualize the service mesh topology with Consul’s built-in UI or third-party APM solutions.', learnMoreLink: 'https://learn.hashicorp.com/collections/consul/service-mesh-observability', content: ( Enhanced Observability ), }, { title: 'Layer 7 Traffic Management', description: 'Implement fine-grained traffic policies to route and split traffic across services.', learnMoreLink: 'https://learn.hashicorp.com/collections/consul/service-mesh-traffic-management', content: ( Layer 7 Traffic Management ), }, { title: 'Multi-platform Support', description: 'Consul service mesh can be deployed in any environment and supports multiple runtimes, like Kubernetes, Nomad, and VMs.', learnMoreLink: 'https://learn.hashicorp.com/collections/consul/gs-consul-service-mesh', content: (
Multi-platform Support
), }, { title: 'Dynamic Load Balancing & Firewalling', description: 'Automate manual networking tasks and reduce the reliance on ticket-based systems.', learnMoreLink: 'https://learn.hashicorp.com/collections/consul/network-infrastructure-automation', content: ( Load Balancing & Firewalling ), }, { title: 'Simple Cross Datacenter Networking', description: 'Use mesh gateways to connect services across datacenters with Consul service mesh.', learnMoreLink: 'https://learn.hashicorp.com/tutorials/consul/service-mesh-gateways?in=consul/developer-mesh', content: ( Cross Datacenter Networking ), }, { title: 'Service Discovery & Real-time Health Checks', description: 'Keep track of the location information and health status of all applications.', learnMoreLink: 'https://learn.hashicorp.com/collections/consul/developer-discovery', content: ( Service Discovery & Real-time Health Checks ), }, { title: 'Bridging Service Mesh with Traditional Networks', description: 'Interact with applications that reside outside of the mesh with Consul’s terminating gateways.', learnMoreLink: 'https://learn.hashicorp.com/tutorials/consul/terminating-gateways-connect-external-services', content: ( Service Mesh with Traditional Networks ), }, { title: 'Connect new services into Service Mesh', description: 'Enable external applications to securely connect with service inside of the mesh using Consul’s Ingress Gateway.', learnMoreLink: 'https://learn.hashicorp.com/tutorials/consul/service-mesh-ingress-gateways', content: ( ), }, ]} />
) } export async function getStaticProps() { const rawYaml = ` apiVersion: consul.hashicorp.com/v1alpha1 kind: IngressGateway metadata: name: ingress-gateway spec: listeners: - port: 8080 protocol: http services: - name: static-server ` const serviceMeshIngressGatewayCode = await highlightString(rawYaml, 'yaml') return { props: { serviceMeshIngressGatewayCode, }, } }