DevOps Summit: микросервисы...Создает и запускает контейнер с...

70
Как контейнеры изменили разработку и развертывание ПО DevOps Summit: микросервисы

Transcript of DevOps Summit: микросервисы...Создает и запускает контейнер с...

Page 1: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Как контейнеры изменили разработку и развертывание ПО

DevOps Summit:микросервисы

Page 2: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

КонтейнерыКотнейнеры, оркестрация, контейнерыне сервисы

Page 3: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 4: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое контейнер?

Page 5: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Shared Library.v2

Что такое контейнер?

Механизм упаковки и развёртывания приложений

Операционная система

Общие библиотеки.v1

Page 6: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое контейнер?

Механизм упаковки и развёртывания приложений

Операционная система

Общая библиотека.v1

Общая библиотека.v2

Page 7: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое контейнер?

Механизм распространения пакетов

Образ на машине

разарбочтика

Azure Container Registry

MyApp.v2 MyApp.v2

Push Pull

Page 8: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое контейнер?

Чёткие границы для ваших сущностей

Операционная система

Web Server

Log Roller

Monitoring Agent

SSH Daemon

Page 9: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

OperatingSystem

Что такое контейнер?

Чёткие границы для ваших сущностей

Web Server Log Roller

Monitoring Agent

SSH Daemon

Page 10: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое контейнер?

Изоляция времени исполнения

Веб-сервер в продакшене

Игровой сервер интерна

Page 11: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?

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

Гомогенный набор серверов (виртуальных или физических)

Page 12: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?Отделяет сервера от приложений

Гомогенный набор серверов (виртуальных или физических)

Container API: Unified Compute Substrate

Page 13: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?Стандартизует сервисы для приложений

Перезапуск

Журналирование

Мониторинг

Container API: Unified Compute Substrate

?

Page 14: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?

Container API: Unified Compute Substrate

?

Стандартизует сервисы для приложенийПерезапуск

Журналирование

Мониторинг

Page 15: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?

Container API: Unified Compute Substrate

?

Стандартизует сервисы для приложенийПерезапуск

Журналирование

Мониторинг

Page 16: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое оркестратор контейнеров?Цель для CI/CD

Гомогенный набор серверов (виртуальных или физических)

Container API: Unified Compute Substrate

Page 17: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое сервис контейнеров?

Делает всё это проще

Container API: Unified Compute Substrate

Page 18: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое сервис контейнеров?

Делает всё это проще

Container API: Unified Compute Substrate

Page 19: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Что такое сервис контейнеров?

Делает всё это проще

Container API: Unified Compute Substrate

Page 20: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Контейнеры Как они меняют нашу работу

Page 21: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

https://www.flickr.com/photos/greeblie/2224507899

Page 22: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Большинство аварийных

ситуаций происходит по

собственной вине.

Page 23: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 24: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Слишком сложно.

Page 25: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 26: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Рассоединяем

Приложение

Аппаратная часть

Кластер

Ядро/ОС

Page 27: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

DevOps

Приложение

Аппаратная часть

Кластер

Ядро/ОС

Page 28: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Тоже DevOps

Аппаратная часть

Кластер

Ядро/ОС

Page 29: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Рассоединяем

Azure Virtual Machines

Приложение

Аппаратная часть

Кластер

Ядро/ОС

Page 30: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Приложение

Аппаратная часть

Кластер

Ядро/ОС

Рассоединяем

IaaS / Виртуализация

Container Runtimes / Образы

Page 31: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Рассоединяем

IaaS / Виртуализация

Container Runtimes / Образы

Container Cluster Managers

Приложение

Аппаратная часть

Кластер

Ядро/ОС

Page 32: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Аппаратная часть

Рассоединяем

IaaS / Виртуализация

Container Runtimes / Образы

Container Cluster Managers

Приложение

Кластер

Ядро/ОС

Page 33: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Но в реальности, это всё равно слишком сложно!

Page 34: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Оркестраторы Как основа новой платформы

Page 35: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Правда, ведь всё равно сложно ..

Хорошо, у меня есть кластер Kubernetes, что мне теперь говорить нашим разработчикам?

Мы не можем заставить разработчиков учить Docker, Kubernetes и т.д.

Посмотрим на Draft...

Page 36: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Работа с большими данными

Оркестраторы – новая основа для платформ

Вертикальные PaaS

приложения

Container API: Unified Compute Substrate

Приложения

Page 37: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Экосистема DockerDocker Engine, Docker Swarm, Docker Compose

Page 38: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker Engine

Запуск кода повторно на разных машинах

Page 39: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker Compose

Сборка решения из масштабируемых сервисов

Page 40: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Пример Docker Compose

Извлекает образ Redis из хаба Docker

Создает и запускает контейнер с Redis

Собирает образ ASP.NET

Создает и запускает web-образ на порту

80 с переменными окружения redis

Page 41: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Экосистема Docker

Автоматизация работы

с контейнерами

Docker Machine

Организация контейнеров

в кластеры

Docker Swarm

Безопасное общение

контейнеров между собой

Docker Networking Docker Plugins

Расширение экосистемы

Docker

Page 42: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker KitematicDocker Hub

Page 43: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker для Windows, Linux, OSX

https://docker.com/toolbox

docker client, docker machine,

docker kitematic, virtualbox

Page 44: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Контейнеры Windows

Page 45: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 46: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker для Windows и Linux

Page 47: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker Engine для Windows

Page 48: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

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

Системные процессы

Процессы приложе-

ний

Системные процессы

Системные процессы

Процессы приложе-

ний

Page 49: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Виртуальная машинаОптимизирована для запуска Контейнера

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

Системные процессы

System Processes

Application Processes

Page 50: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

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

Docker

Образы контейнеров

Windows

Hyper-V Container

Windows Server Container

Page 51: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 52: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

http://aka.ms/containers

Page 53: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Контейнеры и DevOpsИ как это ложится на Azure

Page 54: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Build/CI,

Integrate,

Test

3.

1.

Containerized Workflow

Outer-Loop

Push

Code

Production

environments

Run, Manage

5.

6.

Code

Run

Validate

Debug

Inner-Loop

CD, Deploy

4.

Source Code

Control(SCC)

2.

Private

Registry

Page 55: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Web App for

Container

Container Service

Service Fabric

App Services

Managed Kubernetes

Container Instances

Build/CI,

Integrate,

Test

Containerized Workflow

Outer-Loop

Push

Code

Production

environments

Run, Manage

Code

Run

Validate

Debug

Inner-Loop

CD, Deploy

Visual Studio Team Services

Source Code

Control(SCC)

Container

Registry

Azure

Page 56: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Developer Segments

Node.js GO

Linux Containers

IntelliJ

Page 57: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Docker & Облако AzureОпции развертывания на любой вкус

Page 58: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Web Apps

MobileApps

APIManagement

APIApps

LogicApps

NotificationHubs

Content DeliveryNetwork (CDN)

MediaServices

HDInsight MachineLearning

StreamAnalytics

DataFactory

EventHubs

MobileEngagement

BiztalkServices

HybridConnections

ServiceBus

StorageQueues

Backup

StorSimple

SiteRecovery

Import/Export

SQLDatabase

DocumentDB

RedisCache

Search

Tables

SQL DataWarehouse

Azure AD Connect Health

AD PrivilegedIdentity Mngt

OperationalInsights

CloudServices

Batch Remote App

ServiceFabric Visual Studio

ApplicationInsights

Azure SDK

Team Project

ActiveDirectory

Multi-FactorAuthentication

Automation

Portal

Key Vault

Store /Marketplace

VM Image Gallery& VM Depot

БЕЗОПАСНОСТЬ И УПРАВЛЕНИЕ СЕРВИСЫ ПЛАТФОРМЫ

ГИБРИДНЫЕ ОПЕРАЦИИ

Page 59: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Контейнеры в Azure

• Docker VM Image, Windows Server 2016

• Azure Docker VM Extension

• Azure Marketplace Container Apps

• Docker Trusted Registryв Azure Marketplace

• Azure Container Registry

• Azure Resource Manager Templates

• Azure Service Fabric

• Azure Web Apps for Containers

• Azure Container Service(с оркестратором на выбор: Swarm, DC/OS, Kubernetes)

• acs-engine – база – можно руками

Page 60: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Azure Native

Azure Container Service

Custom IaaS

Hosting Containers/Microservices in Azure

Page 61: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 62: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Стандартный инструментарий Docker

Поддержка DC/OS, Docker и K8s

Linux и Windows Server контейнеры

Возможность гибридных решений

Azure Container Service

SwarmDC/OSKubernetes

Page 63: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Спасибо!

Page 64: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 65: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 66: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Развёртывание с дополнительными условиями

Существующие VNETНесколько пулов агентовСмешанные кластеры (Windows иLinux)

ACS -Engine Зачем?

Page 67: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 68: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

https://helm.sh

Page 69: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает
Page 70: DevOps Summit: микросервисы...Создает и запускает контейнер с Redis Собирает образ ASP.NET Создает и запускает

Спасибо!