DevCon School. Azure Microservices and Containers

88
Современная мобильная и веб-разработка

Transcript of DevCon School. Azure Microservices and Containers

Page 1: DevCon School. Azure Microservices and Containers

Современная мобильная

и веб-разработка

Page 2: DevCon School. Azure Microservices and Containers

Микросервисная архитектура, контейнеры и Microsoft AzureСтас Павлов

Технический евангелист, Microsoft

Page 3: DevCon School. Azure Microservices and Containers

Содержание

• Введение в микросервисы• Монолитные приложения VS микросервисы

• Введение в контейнеры• История, текущее положение, Docker

• Экосистема Docker

• Контейнеры Windows

• Оркестрация, облачное размещение

• Azure Container Service

• Azure Service Fabric• .NET & Java, Linux & Windows, локально и в любом облаке

Page 4: DevCon School. Azure Microservices and Containers

Введение в микросервисыМонолитные приложения VS микросервисы

Page 5: DevCon School. Azure Microservices and Containers
Page 6: DevCon School. Azure Microservices and Containers

Clu

ster

• Масштабирование через клонирование приложения на множество серверов, VM или контейнеров

Монолитная Микросервисы

• Разделение функциональности на отдельные небольшие сервисы

• Масштабирование через размещение каждого сервиса независимо, создание экземпляров этих сервисов на разных серверах, VM или контейнеров, работа вместе в виде виртуального кластера..

• Большая часть функциональности распределена среди нескольких процессов разделенных на библиотеки

AppApp

Page 7: DevCon School. Azure Microservices and Containers

Типы микросервисов

• Web-фронтенды

• Шлюзы протоколов

• Облачные сервисы

• Базы данных

• Документы

• Профили пользователей

• Корзины онлайн-магазинов

Page 8: DevCon School. Azure Microservices and Containers

Введение в контейнерыИстория, текущее положение, Docker

Page 9: DevCon School. Azure Microservices and Containers

Метафора контейнеров

Page 10: DevCon School. Azure Microservices and Containers

Контейнеры

Physical Server

Host OS

Container Manager

AppFramework

AppA

AppA

AppFramework

AppB

AppB

AppB

Physical Server

Hypervisor

Guest OS Guest OS

AppFramework

AppFramework

AppA

AppA

Guest OS

AppFramework

AppB

Host OS

Декларативная упаковка

Единица развертывания

Изолирование среды

Изолирование ресурсов

Скорость запуска

Плотность размещения

Page 11: DevCon School. Azure Microservices and Containers

Docker, Docker, Docker

• Контейнеры существуют уже много лет. Docker Inc. не изобретала их

• Но они создали открытое ПО для сборки и управления контейнерами

• Docker упрощает работу с контейнерами.

Даже я могу создавать контейнеры и управлять ими

• Docker – это формат контейнеров и набор инструментов:

Docker CLI, Docker Engine, Docker Swarm, Docker Compose,

Docker Machine и так далее…

Page 12: DevCon School. Azure Microservices and Containers

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

Page 13: DevCon School. Azure Microservices and Containers

Docker Container Runtime

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

Page 14: DevCon School. Azure Microservices and Containers

Docker Compose

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

Page 15: DevCon School. Azure Microservices and Containers

Пример Docker Compose

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

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

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

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

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

Page 16: DevCon School. Azure Microservices and Containers

Экосистема Docker

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

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

Docker Machine

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

в кластеры

Docker Swarm

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

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

Docker Networking Docker Plugins

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

Docker

Page 17: DevCon School. Azure Microservices and Containers

Docker KitematicDocker Hub

Page 18: DevCon School. Azure Microservices and Containers

Docker для Windows, Linux, OSX

https://docker.com/toolbox

docker client, docker machine,

docker kitematic, virtualbox

Page 19: DevCon School. Azure Microservices and Containers

Успехи DockerКак себя чувствует технология сегодня

Page 20: DevCon School. Azure Microservices and Containers

Docker не одинокно самый заметный

Page 21: DevCon School. Azure Microservices and Containers

Docker сегодня

Page 22: DevCon School. Azure Microservices and Containers

Размер компаний респондентов

Page 23: DevCon School. Azure Microservices and Containers

Docker Hype

• Загрузки образов Docker выросли с 67 млн. в 2014 до 1.2 млрд. в 2015

• 40% компаний использующих Docker имеют его в продакшне

• Предложения о работе с Docker выросли на 1720% за год

• 50% компаний в Docker Hub состоят в списке Fortune 100

• 60,000 проектов на Github содержат “docker” (+226%)

• 5.6 млн. обращений к образам Docker Hub в день

Page 24: DevCon School. Azure Microservices and Containers

Контейнеры WindowsЗачем? Типы контейнеров. Инструментарий

Page 25: DevCon School. Azure Microservices and Containers

Выбор

Page 26: DevCon School. Azure Microservices and Containers

Docker для Windows и Linux

Page 27: DevCon School. Azure Microservices and Containers

Docker Engine для Windows

Page 28: DevCon School. Azure Microservices and Containers

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

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

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

ний

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

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

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

ний

Page 29: DevCon School. Azure Microservices and Containers

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

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

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

System Processes

Application Processes

Page 30: DevCon School. Azure Microservices and Containers

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

Docker

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

Windows

Hyper-V Container

Windows Server Container

Page 31: DevCon School. Azure Microservices and Containers
Page 32: DevCon School. Azure Microservices and Containers

http://aka.ms/containers

Page 33: DevCon School. Azure Microservices and Containers

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

Page 34: DevCon School. Azure Microservices and Containers

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 35: DevCon School. Azure Microservices and Containers

Опции Docker в Azure

• Docker VM Image, Windows Server 2016

• Azure Docker VM Extension

• Azure Marketplace Container Apps

• Docker Trusted Registry

в Azure Marketplace

• Azure Resource Manager Templates

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

Page 36: DevCon School. Azure Microservices and Containers

ОркестрацияПопулярные решения оркестрации контейнеров

Page 37: DevCon School. Azure Microservices and Containers
Page 38: DevCon School. Azure Microservices and Containers

Google Kubernetes

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

поддержка в Azure

Kubernetes Visualizer

Page 39: DevCon School. Azure Microservices and Containers

Apache Mesos

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

Поддержкав Azure Container Service

Open Sourcehttp://mesos.apache.org/

Page 40: DevCon School. Azure Microservices and Containers

Mesosphere DC/OS

Управление, развертывание,мониторинг контейнеров

Open Source с поддержкой Microsoft, HP и других

Сервис по запросуAzure Container Service

Гибридное развертывание

Page 41: DevCon School. Azure Microservices and Containers

Deis

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

Docker PaaS

поддержка в Azure

Page 42: DevCon School. Azure Microservices and Containers

Rancher

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

Kubernetes и Swarm

RancherOS

RancherOS в Azure

Page 43: DevCon School. Azure Microservices and Containers

Force12.io

Масштабирование

контейнеров в realtime

Интеграция с Kubernetes,

Mesos/Marathon, Nomad,

ECS и Docker Swarm

поддержка в Azure

Page 44: DevCon School. Azure Microservices and Containers

Azure Container ServiceОркестрация по запросу с DC/OS или Docker Swarm

Page 45: DevCon School. Azure Microservices and Containers

Developer Workstation

Docker Host

Container

Container

Container

Page 46: DevCon School. Azure Microservices and Containers

Developer Workstation

Docker Engine

Container

Container

Container

Container

Container

Container

Page 47: DevCon School. Azure Microservices and Containers

Developer Workstation

Container

Container

ContainerContainer

Container

Container

Container

Container

Container

Page 48: DevCon School. Azure Microservices and Containers
Page 49: DevCon School. Azure Microservices and Containers

App1

App2

Azure Container Services

Page 50: DevCon School. Azure Microservices and Containers

История успехаTripToMap : применение Docker в Azure

Page 51: DevCon School. Azure Microservices and Containers

О компании

TripToMap.com

Каталог тематических

маршрутов для тех,

кто ожидает от отпуска

чего-то большего….

Большего, чем просто

стены одного отеля.

Page 52: DevCon School. Azure Microservices and Containers

Почему Docker?

+ Скорость

+ Изолированное окружение для сборок

+ Контейнеризация всех сервисов

+ Легковесность образов

+ Легко автоматизировать

+ Легко тестировать

- Linux only :(

Page 53: DevCon School. Azure Microservices and Containers

В TripToMap на базе Docker работают

Все Web-ноды

обновление версии

происходит посредством

полной замены контейнера

База данных

кластер из 3-х серверов,

каждый в своем Docker-

контейнере

Система

для обеспечения CI

Все сборки

и запуск тестов

осуществляются в

одноразовых контейнерах,

полная изоляция

Page 54: DevCon School. Azure Microservices and Containers

TripToMap.com - Выводы

Docker дает легкость в создании, тестировании,

обновлении и поддержке образов

Вся инфраструктура представлена в виде Dockerfiles,

что позволяет быстро развернуть её где угодно

Dockerfiles + Azure Powershell/Azure CLI

- это широкие возможности

по автоматизации всей инфраструктуры

Page 55: DevCon School. Azure Microservices and Containers

История успехаLast.Backend : управление Docker-окружением

Page 56: DevCon School. Azure Microservices and Containers

www.lastbackend.com

Visual Backend Management Platform

LastBackend.com

Last.Backend

Page 57: DevCon School. Azure Microservices and Containers

www.lastbackend.com

Page 58: DevCon School. Azure Microservices and Containers

www.lastbackend.com

Last.Backend in MS Azure

26 VMs + Redis Cache + Service Bus + Traffic

Manager

Page 59: DevCon School. Azure Microservices and Containers

Azure Service FabricПлатформа микросервисов

.NET & Java, Linux & Windows, локально и в любом облаке

Page 60: DevCon School. Azure Microservices and Containers

Микросервисы

Azure

Windows

ServerLinux

Хостинг

Windows

ServerLinux

Service Fabric

Частные облака

Windows

ServerLinux

High Availability

Hyper-Scale

Hybrid Operations

High Density Rolling Upgrades

Stateful services

Low LatencyFast startup &

shutdown

Container Orchestration

& lifecycle management

Replication &

Failover

Simple

programming

modelsLoad balancing

Self-healingData Partitioning

Automated Rollback

Health

Monitoring

Placement

Constraints

Page 61: DevCon School. Azure Microservices and Containers

Azure Service Fabric

Microsoft AzureЧастные облака

Хостинг,другие облака

Функции и возможности

Page 62: DevCon School. Azure Microservices and Containers

Issues на GitHub

Экосистема Service Fabric

Page 63: DevCon School. Azure Microservices and Containers

App1 App2

Микросервисы Service Fabric

Пакеты приложений Кластер Service Fabric из VM

Page 64: DevCon School. Azure Microservices and Containers

App1 App2

Отказы машин

Пакеты приложений Кластер Service Fabric из VM

Page 65: DevCon School. Azure Microservices and Containers

Репликация Stateful-микросервисов

Кластер Service Fabric из VM

Primary

Secondary

Replication

Page 66: DevCon School. Azure Microservices and Containers

App1 App2

Базовая оркестрация - Ограничения

Пакеты приложений Кластер Service Fabric из VM

Page 67: DevCon School. Azure Microservices and Containers

App1 App2

Базовая оркестрация - Емкость

Пакеты приложений Кластер Service Fabric из VM

Page 68: DevCon School. Azure Microservices and Containers

App1 App2

Базовая оркестрация - Балансировка

Пакеты приложений Кластер Service Fabric из VM

Page 69: DevCon School. Azure Microservices and Containers

App1 App2

Базовая оркестрация – Scaleout Service

Пакеты приложений Кластер Service Fabric из VM

Page 70: DevCon School. Azure Microservices and Containers

App1 App2

Базовая оркестрация – Scaleout Cluster

Пакеты приложений Кластер Service Fabric из VM

Page 71: DevCon School. Azure Microservices and Containers

UD3

UD2

UD1

App1 App2

Базовая оркестрация – Апгрейд

Пакеты приложений Кластер Service Fabric из VM

App2.1

Page 72: DevCon School. Azure Microservices and Containers

Исполняемые файлы

• Любой исполняемый файл

• Любой язык

• Любая программная модель

• Упаковывается в Приложение

• Получает версионирование,

апгрейды, мониторинг,

жизненные статусы, и т.д.

Надежные сервисы

• Сервисы с сохранением

и без состояния

• Параллельность,

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

изменение состояний

• Вместе с Reliable Collections

• Транзакции внутри коллекций

• Полная интеграция с платформой

Надежные акторы

• Объекты акторов с сохранением

и без состояния

• Упрощенная модель разработки

• Модель Single Threaded

• Прекрасно подходит

для масштабирования

вычислений и состояния

Page 73: DevCon School. Azure Microservices and Containers

• Коллекции reliable collections упрощают создание stateful-сервисов

• Эволюция коллекций – для облака

Программные модели: Reliable collections

Page 74: DevCon School. Azure Microservices and Containers

Истории УспехаAzure Service FabricВнутри команд Microsoft и других команий

Page 75: DevCon School. Azure Microservices and Containers

1000х VM

Инфраструктура ядра Azure

Сервисы Microsoft построенные с Service Fabric

Млрд.транзакций в неделю

Azure Document DB

2 Трлн. событий в месяц

Azure Event Hubs

1.4 Млн. баз данных

Azure SQL Database

500 Млн. запросов в секунду

Bing Cortana

> 800,000устройств

Microsoft Intune

… и другие сервисы

IoT Suite

Skype for Business

Power BI

Page 76: DevCon School. Azure Microservices and Containers

300+ Service Fabric Preview Customers

Page 77: DevCon School. Azure Microservices and Containers
Page 78: DevCon School. Azure Microservices and Containers

История УспехаAge of Ascent & Service Fabric

Illyriad Games - независимая игровая студия со специализацией в MMORPG

Page 79: DevCon School. Azure Microservices and Containers

Credit: NASA, ESA, S. Beckwith (STScI), and The Hubble Heritage Team (STScI/AURA)

• Расширяется действиями игроков

• Единая протяженная вселенная

Page 80: DevCon School. Azure Microservices and Containers

Credit: NASA and The Hubble Heritage Team (AURA/STScI)

• Сервера как ресурсы

• Гипер-масштабирование▪ Высокая плотность

▪ Ценовая эффективность

▪ Обеспечение работы при неожиданной нагрузке

• Защита от сбоев• Непрерывный пользовательский опыт

• Постоянная доступность

• Индивидуально обновляемая

• Данные масштабируются вместе с вычислительными мощностями

Page 81: DevCon School. Azure Microservices and Containers

Credit: ESO/L. Calçada

Построение империй, ценовые войны, космические бои в реальном времени с упором на реакцию

• Миллионы игроков одновременно в единой протяженной вселенной

• 50,000+ одновременных игроков в одной битве в реальном времени

• 267 миллионов сетевых сообщений в секунду (23 триллиона в день)

Page 82: DevCon School. Azure Microservices and Containers

Кластер Service Fabric

Архитектура Age of Ascent

Spatial

(в космосе)

Гайя(stateless)

Торговля Инвентарь Производство ОбщениеНавигация

ИгрокУчетная запись

КомандаТорговля Альянс

Аватар

(stateless)

AI События

Web-браузер или устройство

Сервисы игровых функций

CDN

Агреги-рующиесервисы

Сервис физики

Сервисы потоков

Page 83: DevCon School. Azure Microservices and Containers

http://aka.ms/ServiceFabricSDK

http://aka.ms/ServiceFabricWS2012R2

https://azure.microsoft.com/ru-ru/documentation/learning-paths/service-fabric/

http://aka.ms/ServiceFabricSamples

http://aka.ms/SFlinuxpreview

http://aka.ms/ServiceFabricForum

Page 84: DevCon School. Azure Microservices and Containers

ЗаключениеЗачем на нужны контейнеры и микросервисы?

Page 85: DevCon School. Azure Microservices and Containers

Зачем нужны контейнеры и микросервисы?

• Быстрое развертывание, мгновенный старт

• Автомасштабирование, партицирование, высокая плотность

• Переиспользование и переносимость кода• Применение гибридных облаков

• Отсутствие lock in

• Уменьшение задач разработчиков (DevOps) • “Собрал, Поставил и Запустил”

• Обширная поддержка инструментов разработки

Page 86: DevCon School. Azure Microservices and Containers

Введение в использование Service Fabric на Linux

Reliable Actors Reliable Services

Подготовка окружения для разработки на Linux

Подготовка окружения для разработки на OSX

Создание первого приложения Service Fabric на Java для Linux

Создание и управление кластерами Service Fabric в Azure

Масштабирование кластеров

Центр документации Service Fabric

Learning Path

Пример кода на GitHub

Page 87: DevCon School. Azure Microservices and Containers

Введение в службу Azure Container Services

Развертывание кластера контейнеров

Управление контейнерами через DC/OS

Управление кластерами через Swarm

Центр документации

Page 88: DevCon School. Azure Microservices and Containers

© 2016 Microsoft Corporation. All rights reserved.