22
Подходы к проектрованию, разработке и развертыванию больших систем Высокопроизводительные решения на платформе InterSystems

подходы к проектрованию, разработке и развертыванию больших систем

Embed Size (px)

Citation preview

Page 1: подходы к проектрованию, разработке и развертыванию больших систем

Подходы к проектрованию,

разработке и развертыванию больших систем

Высокопроизводительные решения на платформе InterSystems

Page 2: подходы к проектрованию, разработке и развертыванию больших систем

На что вы потратите следующий час?

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

• Технологии InterSystems позволяют успешно справляться с такими требованиями и создавать уникальные решения по скорости и производительности

• Как спроектировать и успешно реализовать такие системы?

2

Page 3: подходы к проектрованию, разработке и развертыванию больших систем

План

• Выбор архитектуры развертывания• горизонтальное/вертикальное масштабирование• сайзинг• технология отказоустойчивости

• Особенности программного дизайна высоконагруженных систем• архитектурные принципы• организация разработки

• Управление рисками - необходимая дисциплина для больших проектов

• Особенности сопровождения и внесения изменений2

Page 4: подходы к проектрованию, разработке и развертыванию больших систем

Что такое большая система?• Количество пользователей• одновременные пользователи: от сотен до тысяч• общее кол-во: от сотен до десятков тысяч пользователей

• Транзакционная нагрузке• от сотен до сотен тысяч транзакций в минуту

• Размер данных• Терабайты и десятки терабайт

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

4

Page 5: подходы к проектрованию, разработке и развертыванию больших систем

Примеры внедрений• Департамент по делам

ветеранов США • 155 000 пользователей• >500Tb

• Partners HealthCare • 55 000 пользователей• 9000 одновременных• >6 Tb

• Česká spořitelna• 5000 пользователей• 1 700 одновременных

• Credit Suisse• 1 млрд. сделок в день

• Mediterranean Shipping Company• 300 000 транзакций в

день

• Пенсионный Фонд РФ• > 15 000

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

5

Page 6: подходы к проектрованию, разработке и развертыванию больших систем

Результаты тестов

• Intel® Xeon® Processor X5570-based Blade Servers Deliver Unmatched Performance for InterSystems® Caché® Database Benchmark

6

Page 7: подходы к проектрованию, разработке и развертыванию больших систем

Как считают в InterSystems?• Technical Bid Worksheet• TrakCare CPU Calculator• TrakCare IO Calculator• TrakCare Network

Bandwidth Calculator

• Вход:• Кол-во эпизодов в год• Кол-во пользователей• Тип процессора

• Выход:• Кол-во ECP серверов• Память на ECP сервер,

ядер на ECP сервер• Размер и параметры

дисковой подсистемы• Параметры сервера БД

7

Page 8: подходы к проектрованию, разработке и развертыванию больших систем

Типовой сценарий. Входные данные.

• Веб приложение на платформе InterSystems Caché• Характер приложения: OLTP и OLAP• Количество пользователей: 10 000• Одновременное кол-во пользователей: 1500• Типовая бизнес-транзакция:• 5 000 000 транзакций в год• Размер 100 KB

• Упреждение в 3 года, прогнозируемый рост 3%

8

Page 9: подходы к проектрованию, разработке и развертыванию больших систем

Что хотим получить на выходе?

9

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

рабочие места

рабочиеместа

рабочие места

Mirror кластерDatabase Server

Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Mirror Backup Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

HTTP сервер

8 ядер CPU16 Gb RAM

HTTP сервер

8 ядер CPU16 Gb RAM

HTTP сервер

8 ядер CPU16 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

Массив SAN20 терабайт

Система бэкапирования

Failover кластерDatabase Server

Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Mirror Backup Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Подсистема аналитического хранилищаПодсистема OLTP

10 000 !"#$%"&'()#)* 1000 "+,"&-).),,/0500 !"#$%"&'()#)* !"+121()./ ','#2(23)14"5" 0-',2#26'

Сервер управления конфигурациями и администрирования

4 ядер CPU16 Gb RAM

Тестовый сервер разработчиков

8 ядер CPU16 Gb RAM

7'8+/* 1)-&)- !-2#"8),2* "91#:82&')( "+,"&-).),,"430 !"#$%"&'()#)*

;-)+&'-2()#$,'< "=),4' -'%.)-' 0-',2#26' ,' "1,"&):10 000 000 (-=2* & 5"+ 1 :!-)8+),2). & (-2 5"+'100 KB ,' (-=2>, 3 TB 321(/0 +',,/0 %' (-2 5"+'

HTTP

HTTP

TCP

TCP

Page 10: подходы к проектрованию, разработке и развертыванию больших систем

10

Определение типов серверов

• Кластер ECP Database серверов • ECP Application сервера• Сервера интеграции/обмена сообщениями• Веб сервера• Сервера печати для Zen Reports• Сервера для BI (OLAP)• Терминальные сервера

Page 11: подходы к проектрованию, разработке и развертыванию больших систем

Горизонтальное vs. вертикальное масштабирование

11

Mirror кластерDatabase Server

Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Mirror Backup Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

ECP ApplicationServer

8 ядра CPU32 Gb RAM

Mirror кластерDatabase Server

Mirror Primary Node

40 ядер с частотой не менее 2.3 MHz160 Gb RAM

Database Server Mirror Backup Node

40 ядер с частотой не менее 2.3 MHz160 Gb RAM

Вертикальное масштабированиеГоризонтальное масштабирование

Page 12: подходы к проектрованию, разработке и развертыванию больших систем

Горизонтальное vs. вертикальное масштабирование• Горизонтальное

+ пользователь/CPU+ пользователь/память+ запас по

масштабированию+ ECP Cluster- потеря в суммарной

производительности- осторожно с кэшем- архитектура сложнее

• Вертикальное + keep it simple+ привычно- смешанная нагрузка- предел по

масштабированию- стоимость решения

12

• Если требуется два ECP сервера, это значит, что ECP не нужно.• Если нагрузка не будет расти и под такую нагрузку существует сервер, ECP не

нужно.

Page 13: подходы к проектрованию, разработке и развертыванию больших систем

Способы определения параметров• Зная типовую транзакцию и параметры нагрузки,

можно все подсчитать. Как определить параметры для транзакции?• эмпирический путь• тестирование на производительность• здравый смысл и опыт схожих проектов (Performance

Group)

13

Page 14: подходы к проектрованию, разработке и развертыванию больших систем

ECP Application и Database сервера

• Память• Кол-во пользовательских процессов• Память под ECP кэш• Кол-во ECP серверов

• Процессор• Модель процессора - в Caché single threaded процессы• Коэффициент нагрузки

• Сетевая нагрузка• Диск• IOPS • Объем

14

Page 15: подходы к проектрованию, разработке и развертыванию больших систем

Разделение транзакционной и аналитической нагрузок

• Старый принцип: OLTP и OLAP врозь

15

Database Server Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Подсистема аналитического хранилищаПодсистема OLTP

Primary Node Async Node

Page 16: подходы к проектрованию, разработке и развертыванию больших систем

Разделение записи и чтения

16

Light C++ Binding

Cache Extreme for Java

Cache Extreme for .Net

Page 17: подходы к проектрованию, разработке и развертыванию больших систем

Отказоустойчивость и высокая доступность• InterSystems Caché Database

Mirroring • Failover Cluster

• ECP Cluster• External Backup (snapshots)

17

Mirror кластерDatabase Server

Mirror Primary Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Mirror Backup Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Система бэкапа

Failover кластерDatabase Server Production Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Database Server Standby Node

16 ядер с частотой не менее 2.3 MHz128 Gb RAM

Подсистема аналитического хранилища

Подсистема OLTP

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

ECP ApplicationServer

8 ядер CPU32 Gb RAM

Массив SAN

Удаленный Дата Центр

1

2

3

4

5

6

5 6

7

Page 18: подходы к проектрованию, разработке и развертыванию больших систем

Программная архитектура

• Модульная, трехзвенная архитектура• Готовность к оптимизации• Простота внесения изменений• Тестируемость

• Разделение данных• Конфигурация• Пользовательские настройки• Транзакционные• Аналитические

18

Page 19: подходы к проектрованию, разработке и развертыванию больших систем

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

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

производительность• разработка приложения• оптимизация производительности приложения• оптимизация производительности приложения• оптимиза….

19

Page 20: подходы к проектрованию, разработке и развертыванию больших систем

Сопровождение

• Регламенты сопровождения крайне важны• защита от дурака• любой неоптимальный шаг при работе с большим

объемом данных выливается в часы и дни ожиданий• InterSystems Enterprise Management System• обеспечивает управление конфигурациями нескольких

серверов• упрощает задачи администрирования

20

Page 21: подходы к проектрованию, разработке и развертыванию больших систем

Технологии InterSystems для больших систем

• InterSystems Enterprise Cache Protocol (ECP)• InterSystems Caché Database Mirroring• InterSystems Enterprise Management System• Инновации InterSystems Caché Database

21

Page 22: подходы к проектрованию, разработке и развертыванию больших систем

Вопросов нет?Отлично!

Пишите & звоните

[email protected]: oleg.olenin