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

53
Высокая доступность в гибридном облаке на базе Azure Traffic Manager Дмитрий Лазаренко, Jelastic Директор по развитию бизнеса в России и СНГ

Upload: dmitry-lazarenko

Post on 21-Feb-2017

252 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность в гибридном облаке на базе Azure Traffic Manager

Дмитрий Лазаренко, JelasticДиректор по развитию бизнеса в России и СНГ

Page 2: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Проблема

Page 3: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Единая точка отказа

Page 4: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность и отказоустойчивость

App

DB

Page 5: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность и отказоустойчивость

App

DB

App

Load balancer

Page 6: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность и отказоустойчивость

App

DB

App

Load balancer Load balancer

DB

Page 7: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность и отказоустойчивость

App

DB

App

Load balancer Load balancer

DBReplica

Page 8: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Гибридная облачная платформа JelasticPaaS для Java, .NET, Ruby, PHP, Node.JS, Python и Docker приложений

• Автоматизированная платформа, позволяющая запускать и масштабировать любое приложение на Java, .NET, PHP, Python, Ruby и Node.JS

• SQL и NoSQL СУБД, серверы приложений, балансировщики нагрузки, очереди сообщений

• Как Azure, только для Java + можно установить в свой ЦОД

Платформа PaaS как коробочный продукт

Page 9: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Гибридная облачная платформа JelasticPaaS для Java, .NET, Ruby, PHP, Node.JS, Python и Docker приложений

• Основные сценарии: среды разработки и тестирования, высокодоступные автомасштабируемые облачные среды для приложений

• Клиенты 50+ Хостинг-провайдеров (MyCloud.by) Корпоративные пользователи (ISV, системные

интеграторы)• Конкуренты – OpenShift, CloudFoundry, Heroku• Можно развернуть свой экземпляр PaaS для Java в

Azure с помощью Azure Marketplace

Платформа PaaS как коробочный продукт

Page 10: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Визуальный конструктор облачных окружений

Page 11: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Физические серверы и контейнеры1 ЦОД

Page 12: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Типичная конфигурация – MS Azure в миниатюре

• 10-50 физических серверов• 32 – 256 GB RAM каждый

• На каждом сервере• 250-2000 контейнеров

• Итого в кластере• 8000 – 64000 контейнеров• 160-1400 приложений конечных

пользователей

Page 13: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Распределение контейнеров для HA

Affinity & Anti-Affinity• Для высокой

доступности• Для защиты от

неравномерной загрузки серверов

Page 14: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Пользовательские домены

DNS-сервер BindProxy-server NGINX

Page 15: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Глобальная точка входа

Page 16: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность для точки входа

Page 17: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность для точки входа

Page 18: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Высокая доступность для точки входа

Page 19: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

17 ЦОД в8 странах

11 ЦОД, 23 зон доступности в 8 странах

3 ЦОД, 10 зон доступности в3 странах

25 ЦОД в 11 странах

36 ЦОД в 25 странах

Межцодовая оркестрация в Jelastic

Page 20: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Private Cloud

Гибридное облако

Page 21: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Мульти-облако

Page 22: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Как обеспечить высокую доступность в сценарии гибридного или мульти-облака?

• Сервис должен работать одновременно в 2+ ЦОД

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

• Решение должно поддерживать любые ЦОД и облака

• Для клиента такое переключение должно быть прозрачным

Page 23: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Проблемы• Внутренние подсети в каждом облаке

разные• 172.160.200.* vs. 172.155.100.*

• Базовое доменное имя каждого облака разное• *.cloudA.jelastic.com vs.

*.cloudB.jelastic.com• Внешние IP-адреса каждого облака

разные

Page 24: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• Anycast IP• Global IP/Failover IP • Global/Anycast DNS своими силами• Azure Traffic Manager

HA между ЦОД - варианты

Page 25: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Unicast адресация«Позвонить маме»

Page 26: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Anycast адресация«Позвонить 911»

Page 27: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Anycast IP – маршрут запросов

Page 28: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• IP-адрес живет одновременно в нескольких ЦОД

• Быстрота. Трафик идет до ближайшего сервера (не гео)

• В случае DDoS-атаки траффик равномерно распределяется между всеми точками вещания

• Если сервер умирает – маршрут автоматом перестраивается до ближайшего рабочего сервера

• Абсолютно прозрачно для клиента

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

Page 29: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• Поддерживается малым количеством ЦОД• Не поддерживается глобальными облачными

провайдерами: Azure, AWS, SoftLayer• Очень дорого: $2700 - $8500 в месяц за

небольшой сервер (Host Virtual)

Недостатки Anycast

Page 30: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• IP-адрес активен только на одном сервере в один момент времени

• Если мастер-сервер умирает, то можно выбрать новый мастер-сервер

• Новый мастер-сервер может быть как в текущем, так и в другом ЦОД

Failover IP

Page 31: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• 2 сервера в разных географических регионах• Каждый сервер владеет своим failover IP• В случае падения одного из серверов, его IP

автоматом переназначается на его backup-сервер

• В итоге backup-сервер владеет сразу 2 failover IP, весь трафик идет на backup-server

• Пока не оживет первый сервер

Failover IP – пример работы на IBM SoftLayer/OVH

Page 32: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• Поддерживается не всеми глобальными облачными провайдерами

• Сложно реализовать между разными ЦОД (частный и публичный)

• В AWS failover IP есть только в рамках текущего региона

• Задержки до 5 минут при первом падении сервера

Недостатки Failover IP

Page 33: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• Распределили точку входа по нескольким ЦОД (nginx+bind)

• Добавили глобальное DNS-имя, независимое от ЦОД• *.globalcloud.jelastic.com

• Каждое приложение теперь доступно по 2м DNS-именам• Глобальному• Локальному, связанному с его текущим ЦОД

HA на базе DNS своими руками

Page 34: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

HA на базе DNS своими руками

Page 35: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

• Сложность масштабирования вверх• Сложность гео-маршрутизации• Высокие накладные расходы

HA на базе DNS своими руками - недостатки

Page 36: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager

• Запрос к DNS• Определение

Endpoint• Отправка

трафика на один и тот же endpoint, пока он жив

Page 37: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager – Round robin балансировка

Page 38: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager - Failover routing

Page 39: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Geo-routing

Page 40: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager - Performance/Geo routing

Page 41: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager – Встроенный мониторинг

Page 42: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager – Многоуровневая иерархия

Page 43: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager – Многоуровневая иерархия

Гео-балансировка

ЦОД ЦОД ЦОД

Сервис Сервис

Page 44: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager - недостатки

• Кэш DNS обновляется редко, часть запросов может идти на упавший endpoint

• Мониторинг производится только GET-запросом• Веса в Round-Robin статичны• Нельзя использовать собственные метрики

мониторинга

Page 45: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager в Jelastic

Page 46: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Живая миграция из частного ЦОД в Azure

Page 47: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Живая миграция из AWS в Azure

Page 48: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager
Page 49: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Azure Traffic Manager - преимущества

• Поддержка гео-балансировки• Поддержка плавных обновлений сервиса по

цепочке• Встроенный мониторинг и failover• Многоуровневая DNS-иерархия• Поддержка как веб-сервисов Azure, так и

произвольных веб-сервисов в публичном или частном облаке

Page 50: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

За рамками задачи остаются…

• Автоматическое горизонтальное масштабирование

• Репликация данных серверов приложений• Распределенные блокировки• Репликация и шардинг данных в СУБД• Репликация и высокая доступность Storage• Автоматическое восстановление данных

Storage после аппаратных сбоев

Page 51: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Многое решается фреймворками для микросервисов

Consul.io

Page 52: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Выводы

• Anycast IP – дорого и привязано к конкретным ЦОД

• Global IP/Failover IP – доступно у некоторых крупных игроков

• Global DNS – можно реализовать где угодно, но трудно обслуживать и масштабировать

• Azure Traffic Manager – простой и удобный способ настроить гео-балансировку в гетерогенной среде

Page 53: Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Traffic Manager

Дмитрий Лазаренко

[email protected]@lazarenkod

@jelastic