Running Databases in Docker at Scale
summary
Migrating storage to Docker at Uber becomes concrete: 20,000 MySQL databases, 4,000 Cassandra nodes and 4,000 ElasticSearch nodes, a single management platform called Odin that stores goal state in Grail, schedules placement, and runs node workers which enforce state every 10 seconds. Hosts use host volumes and host networking, each database node is multiple containers (db, raft, backup, locker) with independent lifecycles, automated issue detection and workflow-driven rolling upgrades for safe upgrades and recovery.
AI-written summary · about
chapters (17)
- 0:00Introduction to Uber storage
- 1:26Storage infrastructure scale
- 7:06Why containerize databases
- 10:06Odin management platform UI
- 12:04Inside the database nodes
- 13:40Host management and benefits
- 14:59Issue tracking and operations
- 17:39Automation strategy
- 17:53Pet to cattle transition
- 18:07Goal state automation
- 22:43Git-based configuration
- 23:42Placement engine
- 24:48Robust container workers
- 26:42Workflow management
- 28:29Reliable execution and retries
- 29:16Docker at scale details
- 30:37Lessons learned and conclusion
related talks
36mUnderstanding Databases for Distributed Docker Applications
01h 00mData + Docker = Disconbobulating?
01h 06mPanel: Running Databases in Containers
47mFrom a Database in Container to DBaaS on Kubernetes
01h 31mMySQL operations in Docker
26mOperationalizing 19 years of infrastructure via MySQL-as-a-Service
38mDocker and Databases
36mFrom a Database in Container to DBaaS on Kubernetes
