Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Автоматический, надежный и управляемый деплой с...

Danila Migalin
May 29, 2018
240

Автоматический, надежный и управляемый деплой с помощью простых инструментов

Danila Migalin

May 29, 2018
Tweet

Transcript

  1. Кто я такой Меня зовут Данила Мигалин и я 3

    года работал в Skype в качестве service engineer. Моя команда занималась поддержкой нескольких команд разработчиков, ответственных за платежную инфраструктуру и десятки смежных сервисов и приложений. Disclaimer: в Skype я больше не работаю, поэтому все, что вы от меня услышите, является моим собственным мнением
  2. Про этот доклад • Сколько человеко-часов необходимо для доставки кода

    в прод? • Как насчет роллбеков, green-blue/canary/gradual?
  3. Про этот доклад • Сколько человеко-часов необходимо для доставки кода

    в прод? • Как насчет роллбеков, green-blue/canary/gradual? • Насколько прозрачен процесс, и какие следы после себя он оставляет?
  4. Про этот доклад • Сколько человеко-часов необходимо для доставки кода

    в прод? • Как насчет роллбеков, green-blue/canary/gradual? • Насколько прозрачен процесс, и какие следы после себя он оставляет? • А у меня вообще нет chef, зачем мне тут сидеть и слушать?
  5. Что получилось • ~10 команд пользуется • ~40 деплоев в

    день • ~1.5 KSLoC • ~30 минут на выкатку из репозитория в продакшен
  6. Что получилось • ~10 команд пользуется • ~40 деплоев в

    день • ~1.5 KSLoC • ~30 минут на выкатку из репозитория в продакшен • Быстрее и чаще можно, но оказалось не нужно
  7. Наводим порядок • Вводим версионирование артефактов • Переносим "сборку" кукбуков

    в CI-систему: линтинг, проверка синтаксиса и т.д. • Настройки приложений уносим в "версионированные" роли
  8. Наводим порядок • Вводим версионирование артефактов • Переносим "сборку" кукбуков

    в CI-систему: линтинг, проверка синтаксиса и т.д. • Настройки приложений уносим в "версионированные" роли • Фиксируем версии кукбуков и приложений С такими правилами можно накрутить еще больше автоматики!
  9. Каким мы хотим видеть процесс деплоя • Автоматическим: не требуется

    участие людей админов • Надежным: частичный деплой и откат
  10. Каким мы хотим видеть процесс деплоя • Автоматическим: не требуется

    участие людей админов • Надежным: частичный деплой и откат • Комплаенс: перекрестное ревью, утверждение и прочий Change Management
  11. Каким мы хотим видеть процесс деплоя • Автоматическим: не требуется

    участие людей админов • Надежным: частичный деплой и откат • Комплаенс: перекрестное ревью, утверждение и прочий Change Management • Оставление логов и других следов — как для людей, так и для мониторинга
  12. Таск-трекер для деплоя? • Деплой — это тоже задача •

    У нас уже есть таск-трекер • Люди умеют им пользоваться
  13. Таск-трекер для деплоя? • Деплой — это тоже задача •

    У нас уже есть таск-трекер • Люди умеют им пользоваться • У них уже есть API и красивый UI
  14. Таск-трекер для деплоя? • Деплой — это тоже задача •

    У нас уже есть таск-трекер • Люди умеют им пользоваться • У них уже есть API и красивый UI • Мы уже это делаем!
  15. • Деплой в стейджинг и в продакшен • Частичный деплой

    и откат • Авторизация • Принуждение к Change Management • Создание и обновление деплой-тасок • Нотификации • Тесты и прочее
  16. Миграция • 80% всех усилий • Самое главное в автоматизации

    — различать manual work и hand job • Заинтересуйте людей - устройте митапы, презентации, ходите и продавайте
  17. Миграция • 80% всех усилий • Самое главное в автоматизации

    — различать manual work и hand job • Заинтересуйте людей - устройте митапы, презентации, ходите и продавайте • Простота, документация и поддержка
  18. Управление деплоем • Одна активная таска на сервис на окружение

    • Иерархия тасок • Фидбэк от системы деплоя
  19. Управление деплоем • Одна активная таска на сервис на окружение

    • Иерархия тасок • Фидбэк от системы деплоя • ChatOps
  20. Технические тонкости • Храните стейт в таск-трекере • Делайте ретраи

    • Различайте временные и перманентные ошибки
  21. Технические тонкости • Храните стейт в таск-трекере • Делайте ретраи

    • Различайте временные и перманентные ошибки • Считайте чексуммы артефактов
  22. Чаты • Это работает • Это ужасно отвлекает • on-call

    -> bau (business as usual) • культура важна
  23. TL;DR • Деплой — это не только дело техники, но

    и людей • Люди любят прозрачность, управляемость и простоту
  24. TL;DR • Деплой — это не только дело техники, но

    и людей • Люди любят прозрачность, управляемость и простоту • Управление деплоем хорошо ложится на работу с таск-трекером
  25. TL;DR • Деплой — это не только дело техники, но

    и людей • Люди любят прозрачность, управляемость и простоту • Управление деплоем хорошо ложится на работу с таск-трекером • Малой кровью можно удивительно хорошо интегрировать таск-трекер и вашу инфраструктуру
  26. TL;DR • Деплой — это не только дело техники, но

    и людей • Люди любят прозрачность, управляемость и простоту • Управление деплоем хорошо ложится на работу с таск-трекером • Малой кровью можно удивительно хорошо интегрировать таск-трекер и вашу инфраструктуру • Программировать легко, с людьми тяжеловато