Getting Started with HashiCorp Consul
This course will teach you how to transparently connect services with Consul, to react to changes in real-time and to provide high availability and reliability!
What you'll learn
Modern software systems often depend upon functionality provided by an amalgamation of services. Service oriented architectures require a robust foundation for communication. In this course, Getting Started with HashiCorp Consul, you’ll learn to connect services dynamically with Consul. First, you’ll explore service discovery and routing traffic with health checks. Next, you’ll discover configuring apps dynamically via the KV Store. Finally, you’ll learn how to transparently monitor and secure service-to-service communication. When you’re finished with this course, you’ll have the skills and knowledge of Consul needed to deploy a full fledged service mesh.
Table of contents
- Challenge: Hardcoded Service Discovery 2m
- Consul's Territory 2m
- Challenge: Service Oriented Architectures 3m
- Challenge: Feature Toggles and External Services 1m
- Challenge: Heterogenous Environments 1m
- Challenge: Scaling Up and Down 2m
- Consul's Standalone Binary 2m
- Running a Consul Agent in Dev Mode 2m
- Client Services and the Consul (Web) UI 2m
- Consul's RESTful HTTP API 2m
- Consul Also Exposes a DNS Interface 2m
- Consul's CLI Uses Its HTTP API 2m
- Consul's Official Docker Image 4m
- Creating an Ubuntu VM with Vagrant 2m
- Installing Consul in the Ubuntu VM 2m
- Remote Access to the Consul HTTP API Running in the VM 3m
- Bind Client Interfaces to 0.0.0.0 2m
- Consul CLI Tab Completion 2m
- Consul Is Open Source and Accessible! 2m
- Exploring Service Discovery 1m
- Spinning up Orders and Shipments Containers 2m
- Containers Communicate via Docker's Default "bridge" Network 3m
- Service Discovery via Hardcoded IP Address 2m
- Consul Agent with -dns-port 53 4m
- Reconfigure the Orders Container to Use Consul's DNS 2m
- dig, dog And /etc/resolv.conf 2m
- It Works! Service Discovery via Consul's DNS 2m
- Configuring DNS Recursion 2m
- Config Files Instead of CLI Args 4m
- Consul and Services via Docker Compose 1m
- Configuring Agent Options with an HCL File 3m
- consul reload to Pickup a New Service Definition File 2m
- Consul Config Files Make Recreating Agents a Breeze 3m
- Creating an SMTP Service Definition 3m
- SIGHUP Triggers Consul Agent to Reload Its Config 2m
- Implementing Our Consul SMTP Service Instance with MailHog 2m
- Deregistering Services 3m
- Registering a Bogus Service Instance 4m
- Demo Overview 3m
- Attempt to Configure Another Shipment Service Instance 2m
- consul validate 3m
- Troubleshooting and Fixing the 2nd Service Instance 2m
- Embedding a Check Definition 2m
- DNS Excludes Failing Service Instances 1m
- Observing Health Checks Feed Right into DNS! 2m
- Running a Second SMTP Service Instance 3m
- Registering 2 SMTP Instances with Different Ports 3m
- TCP Health Checks 2m
- TCP Checks Route Traffic Away from Failing Instances 1m
- Each Service Instance Can Have Its Own Health Check 1m
- VSCode HCL Extension and Consul Config References 5m
- TCP vs. HTTP - Simulating HTTP Service Failures 5m
- Service Discovery with SRV Records - Lookup IP and Port! 3m
- Add Key Value Pairs via the Consul UI 2m
- consul kv get/put 2m
- Organize Keys with Folders 2m
- consul kv export/import 1m
- Read and Modify Keys with the API KV Endpoints 2m
- KV Store Blocking Query 3m
- index - Waiting for a Resource to Change 2m
- consul watch Handles Low Level Blocking Queries 5m
- consul watch -type services 3m
- From curl, consul watch to envconsul, consul-template 3m
- Watching Services to Test Drive auto_reload_config 3m
- envconsul Runs the Shipments Service.mp4 4m
- Monitoring Environment Variables Setup by envconsul 2m
- Flipping a KV Based Feature Toggle to Include Tracking Info! 2m
- Configuring a Tracking Service URL via the KV Store 2m
- envconsul Makes Distributed Real-time Feature Toggles Possible! 1m
- From Dev Mode Agent to Server Mode 2m
- Configuring a Server Mode Agent 3m
- Spinning up 3 Servers 2m
- consul join - Manually Bootstrap the Cluster 2m
- retry_join - Configure Servers to Join Immediately 1m
- Client Mode Agents Are Proxies to Data Stored in Consul 2m
- Sharing a Network Stack between Containers 3m
- Implicit Service IP Addresses with Local Service Registration 3m
- Orders to Shipments to Tracking Works! 3m
- Client Services Are Restricted to localhost 2m
- Agent Services vs. Catalog Services 3m
- Querying a Service's Implicit IP Address 1m
- Using Proxies to Encrypt the Data Plane 2m
- Registering Sidecar Proxies 2m
- Enable Connect and Expose Consul's Envoy xDS gRPC API 1m
- Observing Sidecar Service Registrations and Health Checks 2m
- Defining a Shipments Sidecar Proxy in Docker compose.yml ... 3m
- ...And an Orders Service Sidecar Proxy 1m
- Run Envoy Proxies and Set Orders to Dial Its Sidecar Proxy 1m
- Using tcpflow to Intercept Unencrypted HTTP Requests 2m
- Dialing the Proxy and Verifying Encrypted Comms with tcpflow 2m
- Spelunking Clusters in the Envoy Admin Interface 4m
- Configuring a Tracking Service Sidecar Proxy 2m
- Reloading Sidecar Proxy Registration Changes 2m
- Using Service Mesh between Shipments and Tracking 2m
- Transparent, Effortless, and End-to-end Encryption! 2m
- An Intention to Block Service to Service Comms 2m
- Creating a service-intentions Config Entry File 2m
- consul config write 1m
- Listing and Reading Intentions 1m
- Layer 7 Intentions 3m
- Further Learning and Cleanup 4m