Upload
denis-pavlov
View
773
Download
1
Embed Size (px)
Citation preview
Подходы к проектрованию,
разработке и развертыванию больших систем
Высокопроизводительные решения на платформе InterSystems
На что вы потратите следующий час?
• Проекты, отличные от нормы по требованиям к производительности и числу пользователей, это всегда вызов
• Технологии InterSystems позволяют успешно справляться с такими требованиями и создавать уникальные решения по скорости и производительности
• Как спроектировать и успешно реализовать такие системы?
2
План
• Выбор архитектуры развертывания• горизонтальное/вертикальное масштабирование• сайзинг• технология отказоустойчивости
• Особенности программного дизайна высоконагруженных систем• архитектурные принципы• организация разработки
• Управление рисками - необходимая дисциплина для больших проектов
• Особенности сопровождения и внесения изменений2
Что такое большая система?• Количество пользователей• одновременные пользователи: от сотен до тысяч• общее кол-во: от сотен до десятков тысяч пользователей
• Транзакционная нагрузке• от сотен до сотен тысяч транзакций в минуту
• Размер данных• Терабайты и десятки терабайт
• Сложность задачи• большое количество модулей• сложная предметика
4
Примеры внедрений• Департамент по делам
ветеранов США • 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
Результаты тестов
• Intel® Xeon® Processor X5570-based Blade Servers Deliver Unmatched Performance for InterSystems® Caché® Database Benchmark
6
Как считают в InterSystems?• Technical Bid Worksheet• TrakCare CPU Calculator• TrakCare IO Calculator• TrakCare Network
Bandwidth Calculator
• Вход:• Кол-во эпизодов в год• Кол-во пользователей• Тип процессора
• Выход:• Кол-во ECP серверов• Память на ECP сервер,
ядер на ECP сервер• Размер и параметры
дисковой подсистемы• Параметры сервера БД
7
Типовой сценарий. Входные данные.
• Веб приложение на платформе InterSystems Caché• Характер приложения: OLTP и OLAP• Количество пользователей: 10 000• Одновременное кол-во пользователей: 1500• Типовая бизнес-транзакция:• 5 000 000 транзакций в год• Размер 100 KB
• Упреждение в 3 года, прогнозируемый рост 3%
8
Что хотим получить на выходе?
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
10
Определение типов серверов
• Кластер ECP Database серверов • ECP Application сервера• Сервера интеграции/обмена сообщениями• Веб сервера• Сервера печати для Zen Reports• Сервера для BI (OLAP)• Терминальные сервера
Горизонтальное 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
Вертикальное масштабированиеГоризонтальное масштабирование
Горизонтальное vs. вертикальное масштабирование• Горизонтальное
+ пользователь/CPU+ пользователь/память+ запас по
масштабированию+ ECP Cluster- потеря в суммарной
производительности- осторожно с кэшем- архитектура сложнее
• Вертикальное + keep it simple+ привычно- смешанная нагрузка- предел по
масштабированию- стоимость решения
12
• Если требуется два ECP сервера, это значит, что ECP не нужно.• Если нагрузка не будет расти и под такую нагрузку существует сервер, ECP не
нужно.
Способы определения параметров• Зная типовую транзакцию и параметры нагрузки,
можно все подсчитать. Как определить параметры для транзакции?• эмпирический путь• тестирование на производительность• здравый смысл и опыт схожих проектов (Performance
Group)
13
ECP Application и Database сервера
• Память• Кол-во пользовательских процессов• Память под ECP кэш• Кол-во ECP серверов
• Процессор• Модель процессора - в Caché single threaded процессы• Коэффициент нагрузки
• Сетевая нагрузка• Диск• IOPS • Объем
14
Разделение транзакционной и аналитической нагрузок
• Старый принцип: 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
Разделение записи и чтения
16
Light C++ Binding
Cache Extreme for Java
Cache Extreme for .Net
Отказоустойчивость и высокая доступность• 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
Программная архитектура
• Модульная, трехзвенная архитектура• Готовность к оптимизации• Простота внесения изменений• Тестируемость
• Разделение данных• Конфигурация• Пользовательские настройки• Транзакционные• Аналитические
18
Управление рисками
• Предупрежден, значит вооружен:• первичная оценка для выбора железа• возможность проведения тестов на
производительность• разработка приложения• оптимизация производительности приложения• оптимизация производительности приложения• оптимиза….
19
Сопровождение
• Регламенты сопровождения крайне важны• защита от дурака• любой неоптимальный шаг при работе с большим
объемом данных выливается в часы и дни ожиданий• InterSystems Enterprise Management System• обеспечивает управление конфигурациями нескольких
серверов• упрощает задачи администрирования
20
Технологии InterSystems для больших систем
• InterSystems Enterprise Cache Protocol (ECP)• InterSystems Caché Database Mirroring• InterSystems Enterprise Management System• Инновации InterSystems Caché Database
21