Containerizing ZooKeeper with Twine: Powering container orchestration from within

This post details the migration of all ZooKeeper deployments to Meta's internal container orchestrator, Twine. It describes the challenges of running a stateful, quorum-based system like ZooKeeper on a platform designed for stateless services, particularly the Twine Shared Pool. Key technical contributions include the development of a 'task controller' to enforce ZooKeeper's durability and quorum requirements on Twine's scheduler, and the engineering of 'break-glass' recovery techniques to mitigate circular dependencies with other Twine-powered infrastructure services (e.g., service discovery, configerator, fbpkg). The post highlights the benefits of this migration, including reduced operational toil, improved reliability through leveraging standard infrastructure features, and the elimination of years of obsolete custom code.
More from the Scalability and Large-Scale Systems Engineering trail
- Open-Sourcing Rebalancer: A Generic, High-Performance Library for Solving Assignment Problems
- ZGateway: Learnings from Putting a Proxy in Front of ZippyDB
- MTIA 300: Meta’s First Training Chip with Built-in NICs and Communication-Offloading Engines
- From User Sequences to Scaling Laws: A Multi-Stage Architecture for Meta’s Ads Ranking
- GEM Training: How Meta Doubled the Efficiency of Its LLM-Scale Ads Foundation Model