zetcd — новый проект CoreOS, проксирующий запросы к ZooKeeper в кластер etcd
Компания CoreOS, развивающая контейнерные решения (Tectonic на базе Kubernetes и другие), представила свой новый Open Source-проект zetcd, проксирующий запросы к ZooKeeper в кластер на базе etcd.
Apache ZooKeeper — иерархическое хранилище пар ключ-значение (KV), часто используемое для различных нужд крупных распределённых систем. В CoreOS решили подготовить решение, которое позволяло бы системам, выбравшим в качестве бэкенда ZooKeeper, функционировать в кластерах на базе etcd — другого KV-хранилища, разработанного в самой CoreOS и ставшего стандартом для Kubernetes (для постоянного хранения всех REST API-объектов). Модель данных и клиентский протокол, используемые в etcd, делают приложения, использующие ZooKeeper, несовместимыми с хранилищем от CoreOS, но с zetcd ситуация меняется.
Появление zetcd стало возможным благодаря «достаточно выразительному» API в etcd v3, позволившему реализовать эмуляцию модели данных ZooKeeper на стороне клиента с помощью обычного прокси-сервера. Таким образом, прокси zetcd устанавливается перед кластером etcd, обслуживая клиентский порт для ZooKeeper, что позволяет запускать с etcd использующие ZooKeeper приложения, не внося в них изменения. При этом авторы обещают производительность, которая сопоставима с показателями оригинального решения (т.е. при использовании обычного ZooKeeper).
Ранние наработки zetcd были доступны Open Source-сообществу ещё в октябре, а на прошлой неделе состоялся первый публичный релиз — zetcd v0.0.1, — ознаменовавший официальный переход проекта в статус бета-версии и близкую готовность к использованию в production. В CoreOS ожидают, что zetcd сможет стать готовой заменой для ZooKeeper в таких проектах, как Mesos, Kafka и Drill. Исходный код zetcd написан на языке Go, распространяется на условиях свободной лицензии Apache License v2 и опубликован на GitHub.
Дмитрий Шурупов по материалам Coreos.Com.