O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

DIY PAAS with Docker, Consul and Python

581 visualizações

Publicada em

This is a talk I gave at DevOps Days 2017 in Moscow.

Publicada em: Internet
  • Seja o primeiro a comentar

DIY PAAS with Docker, Consul and Python

  1. 1. Делаем PaaS при помощи Docker, Consul и Python Константин Назаров
  2. 2. Зачем? Знайте, что такой способ есть Запомните паттерн
  3. 3. Что готовим? Предположим, у вас маленькая команда Вам нужно масштабировать сервис по запросу Что будете делать?
  4. 4. Почему не решение X? Высокий входной порог Стоимость поддержки TCO - ?
  5. 5. Ингредиенты Python Docker Consul
  6. 6. Что может Docker API Запускать контейнеры и настраивать сеть Запускать команды в контейнерах (exec) Загружать и скачивать файлы
  7. 7. Что может Docker API Дохнуть
  8. 8. Что может Consul Хранить пары ключ-значение Хранить информацию о сервисах Проверять "здоровье" сервисов Распространять события Поддерживает Docker API
  9. 9. Что может Consul Поддерживает Docker API
  10. 10. Вариант 1: CLI
  11. 11. $ mypaas run myservice --args fd10124f
  12. 12. $ mypaas run myservice --args fd10124f $ mypaas ls > fd10124f myservice 10.0.0.1:8080
  13. 13. $ mypaas run myservice --args fd10124f $ mypaas ls > fd10124f myservice 10.0.0.1:8080 $ mypaas rm fd10124f
  14. 14. Дизайн Следуем соглашениям Docker CLI Храним все состояние в Consul KV
  15. 15. Подготовка Ставим Consul на все ноды Открываем Docker API вовне по TCP Регистрируем Docker как сервис
  16. 16. Как это работает Получаем список "серверов" Спрашиваем у Consul список сервисов Решаем, где запустить новый Запускаем сервис через Docker API Через Docker Exec донастраиваем Регистрируем сервис в Consul
  17. 17. Немного о сети Нет прямой связи между хостами Есть Overlay, но он глючный
  18. 18. Вариант 2: демон
  19. 19. Дизайн Все, что делал CLI + Принимаем команды по HTTP + Мониторим запущенные сервисы
  20. 20. Инструменты gevent flask
  21. 21. Важные замечания Не "раздувайте" демон на несколько сервисов Храните состояние только в Consul
  22. 22. Константин Назаров mail@kn.am @racktear bit.ly/paas-bom

×