74
Отказоустойчивая архитектура Единой Фронтальной Системы Зелинский Максим Сбербанк-Технологии

Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

  • Upload
    ontico

  • View
    417

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивая архитектура Единой Фронтальной Системы Зелинский Максим

Сбербанк-Технологии

Page 2: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Для кого этот доклад?

Page 3: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Единая Фронтальная Система

Page 4: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Единая Фронтальная Система

Open API Web Mobile

ATM

Page 5: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Open API Web Mobile

ATM

Единая Фронтальная Система

Page 6: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Open API

Web

Mobile

ATM

Единая Фронтальная Система

Page 7: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Наши показатели на 2016 г.

Интернет банк для физических лиц

• Общее количество пользователей: ~85 000 000

• Количество активных пользователей: ~48 000 000

• Среднее количество операций, в день: ~11 000 000

Page 8: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Наш технологический стек

Языки разработки: • JavaScript/ Native на frontend’е (никакого server side!) • Java на стороне backend’а (никакого JEE, ну почти ) Инфраструктура: • NGINX - «умная» балансировка/ отдача статики • IBM WebSphere Application Server - сервер приложений • IBM WebSphere ExtremeScale - распределенный кеш • IBM WebSphere MQ - асинхронный обмен сообщениями • Oracle Database - хранилище

Page 9: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Наш Service Level Agreement

• Режим работы: 24 х 7

• Доступность: 99.99%

• Наличие технологических окон: нет

• RTO (Return Time Objective): не более 1 минуты

• RPO (Return Point Objective): 0 минут

• Disaster Recovery: не более 1 минуты

Page 10: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Типичная архитектура типичной Фронтальной Системы

Page 11: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система

СУБД

Серверы приложений

Page 12: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система

СУБД

Серверы приложений

Точки отказа?

Page 13: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система

СУБД

Серверы приложений

Точки отказа?

Page 14: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система

СУБД

Серверы приложений

Точки отказа?

Page 15: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система Очереди

Зависимость от внешних систем

СУБД

Серверы приложений

Page 16: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Внешняя система Очереди

Зависимость от внешних систем Единая точка отказа БД

Серверы приложений

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Page 17: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

2N

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Page 18: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

Распределенный кэш

2N

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Page 19: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

СУБД (active)

СУБД (standby)

Распределенный кэш

2N

DNS / Virtual IP

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП Единая точка отказа БН

реп

ли

кац

ия

Page 20: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

СУБД (active)

СУБД (standby)

Распределенный кэш

2N

DNS / Virtual IP

Локальный кэш

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП Единая точка отказа БН Возможность скрыть недоступность (< 1 мин)

реп

ли

кац

ия

Page 21: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП Единая точка отказа БН Возможность скрыть недоступность (< 1 мин)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Распределенный кэш

2N

DNS / Virtual IP

Локальный кэш

И это все?

Page 22: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП Единая точка отказа БН Возможность скрыть недоступность (< 1 мин)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Распределенный кэш

2N

DNS / Virtual IP

Локальный кэш

И это все?

Page 23: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Зависимость от внешних систем Единая точка отказа БД Уменьшение надежности из за отказа СП Прерывание в обслуживании из за отказа СП Единая точка отказа БН Возможность скрыть недоступность (< 1 мин)

Браузер Балансировщик

нагрузки

Серверы приложений

Внешняя система Очереди

СУБД (active)

СУБД (standby)

реп

ли

кац

ия

Распределенный кэш

2N

DNS / Virtual IP

Локальный кэш

И это все?

Page 24: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивость и масштабирование СУБД

Page 25: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивость • Репликация на уровне СХД

• Репликация средствами СУБД

• Репликация средствами приложения

Page 26: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивость • Репликация на уровне СХД

• Репликация средствами СУБД

• Репликация средствами приложения

Остановка и поднятие занимает

минимум 30 минут на больших объемах

Page 27: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивость • Репликация на уровне СХД

• Репликация средствами СУБД

• Репликация средствами приложения

Graceful shutdown по прежнему может

занять кучу времени!

Остановка и поднятие занимает

минимум 30 минут на больших объемах

Page 28: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Отказоустойчивость • Репликация на уровне СХД

• Репликация средствами СУБД

• Репликация средствами приложения

А это вариант!

Graceful shutdown по прежнему может

занять кучу времени!

Остановка и поднятие занимает

минимум 30 минут на больших объемах

Page 29: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Масштабирование • Использование Oracle RAC или аналога

• Offload нагрузки с основной СУБД (read-only режим)

• Средствами приложения (шардинг)

Page 30: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

• Использование Oracle RAC или аналога

• Offload нагрузки с основной СУБД (read-only режим)

• Средствами приложения (шардинг)

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

Не работает! А если работает, то в пределах одного ДЦ

Page 31: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

• Использование Oracle RAC или аналога

• Offload нагрузки с основной СУБД (read-only режим)

• Средствами приложения (шардинг)

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

Не работает! А если работает, то в пределах одного ДЦ

Ограниченное применение

Page 32: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

• Использование Oracle RAC или аналога

• Offload нагрузки с основной СУБД (read-only режим)

• Средствами приложения (шардинг)

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

А это вариант!

Не работает! А если работает, то в

пределах одного ДЦ

Ограниченное применение

Page 33: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Zero downtime deployment

Page 34: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Типичный подход

1. Обновление серверов приложений по группам кластеров

2. Обновление структуры БД с сохранением обратной совместимости

3. Повторить

Page 35: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Типичный подход

1. Обновление серверов приложений по группам кластеров

2. Обновление структуры БД с сохранением обратной совместимости

3. Повторить Ок, а если меняется схема

данных радикально?

Page 36: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Типичный подход

1. Обновление серверов приложений по группам кластеров

2. Обновление структуры БД с сохранением обратной совместимости

3. Повторить Ок, а если меняется схема

данных радикально?

Blue / Green развертывание!

Page 37: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Решение?

Page 38: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Решение?

Hint: Шардинг, репликация средствами приложения и Blue/Green развертывание

Page 39: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Браузер Балансировщик

нагрузки СУБД Серверы

приложений

Page 40: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Stand-In©

Page 41: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Primary

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Stand-In

СУБД Серверы приложений

Роутер

Консоль управления

реп

ли

кац

ия

Page 42: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Primary

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Stand-In

СУБД Серверы приложений

Роутер

Консоль управления

реп

ли

кац

ия

Disaster Recovery за считанные минуты

Page 43: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Primary

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Stand-In

СУБД Серверы приложений

Роутер

Консоль управления

реп

ли

кац

ия

Disaster Recovery за считанные минуты

Blue / Green развертывание

Page 44: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Primary

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Stand-In

СУБД Серверы приложений

Роутер

Консоль управления

реп

ли

кац

ия

Disaster Recovery за считанные минуты

Blue / Green развертывание

Простой оборудования

Page 45: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Primary

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Stand-In

СУБД Серверы приложений

Роутер

Консоль управления

реп

ли

кац

ия

Disaster Recovery за считанные минуты

Blue / Green развертывание

Простой оборудования

Не решается проблема масштабирования

Page 46: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Многоблочность©

Page 47: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер реп

ли

кац

ия

Disaster Recovery за считанные минуты

Blue / Green развертывание

Простой оборудования

Не решается проблема масштабирования

Блок N Консоль управления

Page 48: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер

Disaster Recovery за считанные минуты

Blue / Green развертывание

Простой оборудования

Не решается проблема масштабирования

Блок N Консоль управления

реп

ли

кац

ия

Page 49: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер

Disaster Recovery за считанные минуты

Blue / Green развертывание

Простой оборудования

Не решается проблема масштабирования

Блок N Консоль управления

реп

ли

кац

ия

Page 50: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер

Блок N Консоль управления

реп

ли

кац

ия

В чем магия?

Page 51: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер

Блок N Консоль управления

реп

ли

кац

ия

В чем магия? • Роутер

Page 52: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

Браузер Балансировщик

нагрузки

СУБД Серверы приложений

Блок 2

СУБД Серверы приложений

Роутер

Блок N Консоль управления

реп

ли

кац

ия

В чем магия? • Роутер

• Репликация

Page 53: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Роутер

Page 54: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)
Page 55: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

СУБД Серверы приложений

Блок N

Пользователи

Page 56: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

СУБД Серверы приложений

Блок N

Пользователи Auth

Page 57: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Блок 1

СУБД Серверы приложений

Блок N

{ id }

Пользователи Auth

Page 58: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Распределенный кэш

Блок 1

СУБД Серверы приложений

Блок N REST

Маппинг пользователей

{ id }

Пользователи Auth

Page 59: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Распределенный кэш

Блок 1

СУБД Серверы приложений

Блок N REST

Маппинг пользователей

{ id }

Пользователи Auth

Page 60: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Распределенный кэш

Блок 1

СУБД Серверы приложений

Блок N REST

Маппинг пользователей

{ id }

cookie { номер блока }

Пользователи Auth

Page 61: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Репликация между блоками

Page 62: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Какие данные мы храним?

• Справочники (внутренние и внешние)

• Операционные данные

Page 63: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Справочники

Блок 1 Внутренние справочники

Блок N

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

Oracle GoldenGate

Очереди

Внешние справочники

Page 64: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Справочники

Блок 1 Внутренние справочники

Блок N

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

Очереди

Внешние справочники

Page 65: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Операционные данные

Блок 1 Блок N

Консоль управления

dblink

Page 66: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Операционные данные

Блок 1 Блок N

Консоль управления

dblink

В штатном режиме операционные данные не

реплицируются

Page 67: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

А как же noSQL решения?

Page 68: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

А как же noSQL решения?

Everybody lies!

Page 69: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

А как же noSQL решения?

Everything fails!

Page 70: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Выводы

Page 71: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Выводы

• На больших объемах архитектура становится очень нетривиальной

Page 72: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Выводы

• На больших объемах архитектура становится очень нетривиальной

• Если у вас 99.99%, 24 х 7, RPO 0, RTO 1, DR «не 4 часа» - то вы попали

Page 73: Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Максим Зелинский (СберТех)

Выводы

• На больших объемах архитектура становится очень нетривиальной

• Если у вас 99.99%, 24 х 7, RPO 0, RTO 1, DR «не 4 часа» - то вы попали

• Все падает