Overview
etcd is a distributed key-value store for storing data in a distributed system. Its small binaries are written in Go.
This instructor-led, live training (online or onsite) is aimed at developers who wish to implement and manage an etcd data store, both as an independent cluster as well as in a Kubernetes cluster or a microservice application, etc.
By the end of this training, participants will be able to:
- Understand the benefits of using a key-value store for storing, retrieving, and managing distributed data.
- Configure web applications and Kubernetes to read and write data from and to an etcd key-value store.
- Use etcd to store database connection details, feature flags, etc. to enable automatic reconfiguration of a live application.
- Configure and manage an etcd cluster.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
- To learn more about etcd, please visit: https://github.com/etcd-io/etcd
Requirements
- Basic web application development experience
- Basic understanding of Kubernetes
- Linux command line experience
Audience
- Developers
Course Outline
Introduction
- Configuration management, service discovery, and distributed coordination
- etc vs traditional databases – documents (files) vs tables
How a Distributed System Works
- Load balancing, availability, recovery
- Nodes (master, slave, etc.)
- Messaging
- Storage
Overview of etcd Features and Architecture
- etcd in a cluster mode – leaders and followers
- Ensuring consensus using the Raft protocol
Setting up etc
- Downloading and running binaries
- Using the etcdctl CLI
- Configuring an etcd cluster
Operating etcd
- Connecting clients to the etcd service
- Adding and viewing “documents” using the etcd build-in client
- Reading and writing to etcd from within Kubernetes
- Reading and writing to etcd from a microservice application
Real-world Use Cases
- Changing application behavior in response to changes
- Using etcd to store database connection details
- Using etcd to store feature flags
Managing an etcd cluster
- Achieving fault tolerance
- Adjusting the number of nodes in cluster
- Reconfiguring node leader
- Performing distributed locking across a cluster
- Using metrics to track latency
- Backing up etcd data
etcd in the Public Cloud
- Cloud provider support (AWS, etc.)
- Networking pre-tuning
Best Practices
Troubleshooting
Summary and Conclusion