Distributed Systems Storage with etcd Training Course

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

Leave a Reply

Your email address will not be published. Required fields are marked *