Практики Continuous Delivery с Docker (Флант, RootConf 2016)

YOUTUBE · 30.11.2025 07:29

Ключевые темы и таймкоды

Введение

0:03
  • Дмитрий Столяров представляет свой доклад о концепции "континиус деливери" и рассказывает о своем опыте работы с контейнерами и докером.

Концепция "континиус деливери"

6:12
  • Дмитрий объясняет, что вопрос о том, как построить "континиус деливери", уже не стоит, так как крупные компании, такие как Google и Facebook, уже успешно реализуют эту концепцию.
  • Он рассказывает о том, как использовать мощные инструменты, доступные каждому, для создания "континиус деливери" на сайтах с миллионом запросов в секунду и пятью тысячами запросов на бэкенд.

Использование докера

10:02
  • Дмитрий рассказывает о своем опыте использования докера и о том, как он узнал о нем в 2013 году.
  • Он также упоминает, что за последние восемь лет он работал над более чем тридцатью проектами, используя докер, и знает их проблемы и преимущества.

Заключение

13:03
  • Дмитрий заканчивает свой доклад, рассказывая о том, что его доклад будет быстрым и капитальным, и что он надеется, что все присутствующие знают обсуждаемые темы.

Диплоем и докер

13:43
  • В видео обсуждается диплоем (переключение трафика между двумя версиями приложения) и его проблемы, связанные с простоем и сложностью обновления зависимостей.
  • Вместо этого предлагается использовать докер для изоляции и решения проблем с зависимостями, а также обновления системного ПО.

Проблемы с воспроизводимостью и зеркалами

19:13
  • Обсуждаются проблемы с воспроизводимостью и зеркалами, которые могут возникнуть при диплое на несколько серверов или площадок.
  • Предлагается использовать один образ докера для всех серверов и площадок, чтобы избежать проблем с зависимостями и обновлениями.

Сборка докерных имиджей и инфраструкторы за кода

22:14
  • Обсуждается проблема забывания обновить зависимости при обновлении приложения и предлагается решение - использование скриптов сборки докерных имиджей в одном репозитории с исходником.
  • Это позволяет разработчикам, продакт-менеджеру и другим участникам команды одновременно обновлять информацию о версии приложения и его зависимостях.

Пример с фронтентом и бэк-эндом

24:28
  • Обсуждается пример, когда в новой версии приложения требуется новый движок, который использует веб-сокеты.
  • Предлагается решение - использовать один образ докера для всех версий приложения, чтобы избежать проблем с забыванием обновить зависимости.

Обсуждение работы с Git и Docker

24:47
  • Автор обсуждает, как работать с Git и Docker, чтобы избежать проблем с версиями и зависимостями.
  • Он предлагает использовать Git для хранения информации о сборке и инфраструктуре, а также для хранения исходного кода приложения.

Работа с временными образами и тегами

31:28
  • Автор объясняет, как собирать временные образы для интеграции и релизные образы для тестирования и выпуска.
  • Он также обсуждает, как найти старую версию образа и как связать Git с Docker.

Заключение

36:10
  • Автор подводит итоги и подчеркивает важность работы с Git и Docker для эффективной разработки и управления версиями.
  • Он также предлагает использовать нестандартное семантическое версионирование для определения версий образов, побывавших в продакшне.

Проблемы с дипломентом

36:42
  • Видео обсуждает проблемы с дипломентом, когда бэкенд и фронтенд приложения обновляются одновременно.
  • Важно регламентировать порядок обновления, чтобы избежать проблем с несовместимостью.

Docker и Docker Compose

38:42
  • Docker и Docker Compose являются строительными инструментами для создания кластеров на докере.
  • Docker Compose упрощает процесс создания и управления кластерами.

Docker Swarm и Kubernetes

40:00
  • Docker Swarm и Kubernetes являются более сложными инструментами для управления кластерами на докере.
  • Kubernetes предлагает более продвинутые функции, такие как автоматическое масштабирование и управление ресурсами.

Google Kubernetes Engine (GKE)

41:00
  • GKE - это решение от Google для управления кластерами на Kubernetes.
  • GKE предлагает удобный интерфейс для управления кластерами и позволяет легко масштабировать ресурсы.

Заключение

42:10
  • Видео обсуждает важность правильного дипломента и управления инфраструктурой для успешного развития приложений.
  • Рекомендуется использовать Docker и Docker Compose для создания и управления кластерами, а также Kubernetes для более сложных задач.

Обзор Kubernetes

42:28
  • Kubernetes - это платформа, которая позволяет управлять контейнерами и обеспечивает их непрерывную доставку.
  • Она имеет встроенные функции для проверки готовности приложения к переключению трафика и самодиагностики.

Возможности Kubernetes

43:37
  • Kubernetes умеет автоматически уменьшать количество инстансов и обновлять версии приложений.
  • Он также поддерживает роллинг апдейты, канареечные релизы и автоскейлинг.

Преимущества Kubernetes

49:09
  • Kubernetes имеет мощный фундамент, большое комьюнити, интеграцию с Docker и другими технологиями, простоту использования и совместимость с различными платформами.
  • Он позволяет использовать готовую платформу и собирать имидж только один раз.

Рекомендации по использованию Kubernetes

51:29
  • Используйте Docker, собирайте имидж с простой инициализацией и используйте готовую платформу Kubernetes.
  • Связывайте код со сборкой и используйте инфраструктуру как код.

Конкурс для линуксовых админов

52:29
  • Завтра будет конкурс для линуксовых админов, где нужно будет починить линукс.

Обсуждение использования Docker и Git

53:34
  • Участники обсуждают использование Docker и Git для сборки образов и хранения кода.
  • Обсуждается использование Chef для управления сборкой и хранения Docker-файлов.

Вопросы и ответы

57:01
  • Участники задают вопросы о том, как хранить Docker-файлы в Git, как обновлять образы и как управлять версиями.
  • Обсуждаются проблемы с использованием Chef для групповой работы и возможные альтернативы.

Управление состоянием и облачные сервисы

1:00:34
  • Участники обсуждают управление состоянием в облаке и использование Kubernetes для управления контейнерами.
  • Обсуждаются способы управления доступом к базам данных и использование переменных окружения.

Вопросы о Docker и Kubernetes

1:03:19
  • Участники задают вопросы о том, как собрать и проверить Docker-образы для большого количества репозиториев и сервисов.
  • Обсуждаются возможные подходы к решению этой проблемы и использование Kubernetes для управления сервисами.