Алексей Залесов-«Управление контейнерами в облаках»

24
Управление контейнерами в облаках Алексей Залесов Engineer @ Altoros 10 октября 2015 Несоразмерность задач и машин Как управлять облаком? Восемь характеристик контейнер менеджера Сравнение Cloud Foundry, Mesos и Kubernetes Демо Cloud Foundry

Transcript of Алексей Залесов-«Управление контейнерами в облаках»

Page 1: Алексей Залесов-«Управление контейнерами в облаках»

Управление контейнерами в облаках

Алексей ЗалесовEngineer @ Altoros

10 октября 2015

➔ Несоразмерность задач и машин➔ Как управлять облаком?➔ Восемь характеристик контейнер

менеджера➔ Сравнение Cloud Foundry, Mesos и

Kubernetes➔ Демо Cloud Foundry

Page 2: Алексей Залесов-«Управление контейнерами в облаках»

Алексей Залесов

работаю Cloud Foundry Engineer @ Altoros

учился в МФТИ молекулярной биофизике

интересы• распределенные системы• DevOps практики• самоуправляемые

информационные системы 2

Page 3: Алексей Залесов-«Управление контейнерами в облаках»
Page 4: Алексей Залесов-«Управление контейнерами в облаках»

System Stack

Page 5: Алексей Залесов-«Управление контейнерами в облаках»
Page 6: Алексей Залесов-«Управление контейнерами в облаках»

Что такое PaaS?

➔ Container Orchestration

➔ Resource Scheduling

➔ App Packaging

➔ Routing

➔ Logging

➔ Service Integration

➔ User Management

Page 7: Алексей Залесов-«Управление контейнерами в облаках»

Что такое PaaS?

➔ Container Orchestration

➔ Resource Scheduling

➔ App Packaging

➔ Routing

➔ Logging

➔ Service Integration

➔ User Management

Page 8: Алексей Залесов-«Управление контейнерами в облаках»

8

Несоразмерность задачи и сервера

Page 9: Алексей Залесов-«Управление контейнерами в облаках»

9

Задачи: однократные и непрерывные

Page 10: Алексей Залесов-«Управление контейнерами в облаках»

10

Автоматическая балансировка нагрузки

Page 11: Алексей Залесов-«Управление контейнерами в облаках»

11

Перезапуск контейнера при сбое

Page 12: Алексей Залесов-«Управление контейнерами в облаках»

12

Эвакуация контейнеров при отказе сервера

Page 13: Алексей Залесов-«Управление контейнерами в облаках»

Восемь характеристик менеджера контейнеров

маркировка контеинеров

кэширование артефактов

пространства имен приложении

откат установки

Blue-Green Deployment

Rolling Deployment

проверка состояния

контеинера

ограничения по размещению

Page 14: Алексей Залесов-«Управление контейнерами в облаках»

1. Container LabellingХарактеристики

Что это такое? ❏ Связать текстовые метки с контейнером и использовать их при выполнении операций.

Примеры использования

❏ Перезагрузить все контейнеры помеченные как “frontend”

❏ Остановить все контейнеры “QA”

Степень поддержки

Cloud Foundry - noneMesos - fullKubernetes - full

Page 15: Алексей Залесов-«Управление контейнерами в облаках»

2. Artifact Caching

Что это такое? ❏ Быстрое создание одинаковых контейнеров из образа в репозитории

❏ Образ загружается лишь один раз

Примеры использования

❏ Создать 100 одинаковых контейнеров из образа в репозитории

Степень поддержки

Cloud Foundry - partialMesos - fullKubernetes - none

Характеристики

Page 16: Алексей Залесов-«Управление контейнерами в облаках»

3. Application Namespaces

Что это такое? ❏ Допустимо использовать одинаковые имена приложений в разных пространствах

Примеры использования

❏ Отсутствие конфликтов имен между командами

Степень поддержки

Cloud Foundry - fullMesos - noneKubernetes - full

Характеристики

Page 17: Алексей Залесов-«Управление контейнерами в облаках»

4. Deployment RollbacksХарактеристики

Что это такое? ❏ Размещение предыдущей версии контейнера при сбое текущей

Примеры использования

❏ Rollback на версию X

Степень поддержки

Cloud Foundry - noneMesos - noneKubernetes - full

Page 18: Алексей Залесов-«Управление контейнерами в облаках»

5. Blue-Green DeploymentsЧто это такое? ❏ Обновления без остановки сервиса

Примеры использования

❏ У вас есть две копии контейнера - blue и green.❏ Вы обновляете blue. Трафик клиентов обслуживается

только green❏ Если blue работает корректно, трафик клиентов

переключается на него❏ Вы обновляете green

Степень поддержки

Cloud Foundry - fullMesos - fullKubernetes - none

Характеристики

Page 19: Алексей Залесов-«Управление контейнерами в облаках»

6. Rolling Deployment

Что это такое? ❏ Поэтапное обновление контейнеров

Примеры использования

❏ Обновить несколько контейнеров ❏ Если успешно, то обновить остальные ❏ Иначе - прекратить обновление

Степень поддержки

Cloud Foundry - noneMesos - noneKubernetes - full

Характеристики

Page 20: Алексей Залесов-«Управление контейнерами в облаках»

7. Health Check

Что это такое? ❏ Способ проверки состояния контейнеров

Примеры использования

❏ TCP порт открыт?❏ HTTP запрос возвращает код 200?❏ Скрипт отрабатывает с кодом 0?❏ Ссылка обновлялась не более 1 мин назад?

Степень поддержки

Cloud Foundry - partialMesos - partialKubernetes - partial

Характеристики

Page 21: Алексей Залесов-«Управление контейнерами в облаках»

8. Placement Constraints

Что это такое? ❏ Указать физический сервер, который будет запускать контейнеры

Примеры использования

❏ Запустить контейнеры ‘compute’ на серверах с GPU.

❏ Запускать все контейнеры ‘payment processing’ в rack2.

Степень поддержки

Cloud Foundry - noneMesos - fullKubernetes - partial

Характеристики

Page 22: Алексей Залесов-«Управление контейнерами в облаках»

Container Labeling none full full

Artifact Caching partial full none

Application Namespaces full none full

Deployment Rollbacks none none full

Blue-Green Deployments full full none

Rolling Deployment none none full

Health Check partial partial partial

Placement Constraints none full partial

Характеристики

Page 23: Алексей Залесов-«Управление контейнерами в облаках»

ДемоУправление контейнерами в Cloud Foundry

23

Page 24: Алексей Залесов-«Управление контейнерами в облаках»

Вопросы?

Алексей Залесов[email protected]

@azalesovaleksey_zalesov