Константин НАЗАРОВ
Как сделать PaaS при помощи Docker, Consul и обвязки на Python
Сейчас я в одиночку работаю над созданием Database-As-A-Service решения. И вопрос "как и где запускать" успешно решился в пользу Docker. Проблемы возникли в двух местах: как соединять контейнеры по сети для репликации данных, и как автоматизированно управлять большим парком запущенных инстансов. На рынке есть много решений для организации IaaS, и всяких шедулеров вроде Mesos и Kubernetes. Но у всех у них довольно крутой learning curve. К тому же они не очень хорошо работают с сервисами, сдизайненными не по SOA. В своем докладе я расскажу, как можно сделать (и как я в итоге сделал) для своей компании небольшой PaaS на основе Docker, Consul и обвязки на Python в качестве оркестратора. Это вполне воспроизводимо силами одного человека. Вот о чем мы поговорим: - Consul как надежное распределенное хранилище - Делаем связь контейнеров между хостами без overlay сети - Выделение IP адресов и организация их пула в Consul KV - Как правильно регистрировать сервисы и health check-и - Делаем оркестратор на gevent + простую админку к нему на Flask - Делаем failover, масштабирование и переезд сервисов - Отложенные задания (бэкап, аналитика и т.д.) - И немного про мониторинг всего этого хозяйства (Consul + Prometheus) Почти весь, включая ansible скрипты, доступен на GitHub.

Константин Назаров - инфраструктурный инженер в команде Tarantool. В прошлом - системный программист и любитель Common Lisp. Минималист и приверженец итеративного подхода ко всему.

Made on
Tilda