подходы к проектрованию, разработке и развертыванию больших систем
1. Подходы к
проектрованию,
разработке и
развертыванию
больших систем
Высокопроизводительные решения на
платформе InterSystems
2. На что вы потратите следующий час?
• Проекты, отличные от нормы по требованиям к
производительности и числу пользователей, это
всегда вызов
• Технологии InterSystems позволяют успешно
справляться с такими требованиями и создавать
уникальные решения по скорости и
производительности
• Как спроектировать и успешно реализовать такие
системы?
2
3. План
• Выбор архитектуры развертывания
• горизонтальное/вертикальное масштабирование
• сайзинг
• технология отказоустойчивости
• Особенности программного дизайна высоконагруженных
систем
• архитектурные принципы
• организация разработки
• Управление рисками - необходимая дисциплина для
больших проектов
• Особенности сопровождения и внесения изменений
2
4. Что такое большая система?
• Количество пользователей
• одновременные пользователи: от сотен до тысяч
• общее кол-во: от сотен до десятков тысяч пользователей
• Транзакционная нагрузке
• от сотен до сотен тысяч транзакций в минуту
• Размер данных
• Терабайты и десятки терабайт
• Сложность задачи
• большое количество модулей
• сложная предметика
4
5. Примеры внедрений
• Департамент по делам • Credit Suisse
ветеранов США • 1 млрд. сделок в день
• 155 000 пользователей
• Mediterranean Shipping
• >500Tb
Company
• Partners HealthCare • 300 000 транзакций в
• 55 000 пользователей день
• 9000 одновременных • Пенсионный Фонд РФ
• >6 Tb • > 15 000
• Česká spořitelna пользователей
• 5000 пользователей
• 1 700 одновременных
5
6. Результаты тестов
• Intel® Xeon® Processor X5570-based Blade Servers
Deliver Unmatched Performance for InterSystems®
Caché® Database Benchmark
6
7. Как считают в InterSystems?
• Technical Bid Worksheet • Вход:
• TrakCare CPU Calculator • Кол-во эпизодов в год
• Кол-во пользователей
• TrakCare IO Calculator • Тип процессора
• TrakCare Network • Выход:
Bandwidth Calculator • Кол-во ECP серверов
• Память на ECP сервер,
ядер на ECP сервер
• Размер и параметры
дисковой подсистемы
• Параметры сервера БД
7
8. Типовой сценарий. Входные данные.
• Веб приложение на платформе InterSystems Caché
• Характер приложения: OLTP и OLAP
• Количество пользователей: 10 000
• Одновременное кол-во пользователей: 1500
• Типовая бизнес-транзакция:
• 5 000 000 транзакций в год
• Размер 100 KB
• Упреждение в 3 года, прогнозируемый рост 3%
8
9. Что хотим получить на выходе?
рабочие рабочие рабочие 10 000 !"#$%"&'()#)*
места места места 1000 "+,"&-).),,/0
500 !"#$%"&'()#)* !"+121()./
','#2(23)14"5" 0-',2#26'
;-)+&'-2()#$,'< "=),4' -'%.)-'
0-',2#26' ,' "1,"&):
10 000 000 (-=2* & 5"+ 1
:!-)8+),2). & (-2 5"+'
100 KB ,' (-=2>, 3 TB 321(/0 HTTP
+',,/0 %' (-2 5"+' Балансировщик
нагрузки
HTTP
HTTP сервер HTTP сервер HTTP сервер
8 ядер CPU 8 ядер CPU 8 ядер CPU 7'8+/* 1)-&)- !-2#"8),2*
16 Gb RAM 16 Gb RAM 16 Gb RAM "91#:82&')( "+,"&-).),,"
430 !"#$%"&'()#)*
TCP
ECP Application ECP Application ECP Application ECP Application ECP Application ECP Application
Server Server Server Server Server Server
8 ядер CPU 8 ядер CPU 8 ядер CPU 8 ядер CPU 8 ядер CPU 8 ядер CPU
32 Gb RAM 32 Gb RAM 32 Gb RAM 32 Gb RAM 32 Gb RAM 32 Gb RAM
Подсистема OLTP TCP Подсистема аналитического хранилища
Mirror кластер Failover кластер
Database Server Database Server Database Server Database Server
Mirror Primary Node Mirror Backup Node Mirror Primary Node Mirror Backup Node
16 ядер с частотой не 16 ядер с частотой не 16 ядер с частотой не 16 ядер с частотой не
менее 2.3 MHz менее 2.3 MHz менее 2.3 MHz менее 2.3 MHz
128 Gb RAM 128 Gb RAM 128 Gb RAM 128 Gb RAM
Сервер управления Тестовый сервер
конфигурациями и разработчиков
Система Массив SAN администрирования
бэкапирования 20 терабайт 4 ядер CPU 8 ядер CPU
16 Gb RAM 16 Gb RAM
9
10. Определение типов серверов
• Кластер ECP Database серверов
• ECP Application сервера
• Сервера интеграции/обмена сообщениями
• Веб сервера
• Сервера печати для Zen Reports
• Сервера для BI (OLAP)
• Терминальные сервера
10
11. Горизонтальное vs. вертикальное
масштабирование
ECP Application ECP Application ECP Application ECP Application
Server Server Server Server
ECP Application ECP Application ECP Application ECP Application
8 ядра CPU Server 8 ядра CPU Server 8 ядра CPU Server 8 ядра CPU Server
32 Gb RAM 32 Gb RAM 32 Gb RAM 32 Gb RAM
8 ядра CPU 8 ядра CPU 8 ядра CPU 8 ядра CPU
32 Gb RAM 32 Gb RAM 32 Gb RAM 32 Gb RAM
Mirror кластер
Database Server Database Server
Mirror Primary Node Mirror Backup Node
16 ядер с частотой не 16 ядер с частотой не
менее 2.3 MHz менее 2.3 MHz
128 Gb RAM 128 Gb RAM
Горизонтальное масштабирование Вертикальное масштабирование
Mirror кластер
Database Server Database Server
Mirror Primary Node Mirror Backup Node
40 ядер с частотой не 40 ядер с частотой не
менее 2.3 MHz менее 2.3 MHz
160 Gb RAM 160 Gb RAM
11
12. Горизонтальное vs. вертикальное
масштабирование
• Горизонтальное • Вертикальное
+ пользователь/CPU + keep it simple
+ пользователь/память + привычно
+ запас по - смешанная нагрузка
масштабированию - предел по
+ ECP Cluster масштабированию
- потеря в суммарной - стоимость решения
производительности
- осторожно с кэшем
- архитектура сложнее
• Если требуется два ECP сервера, это значит, что ECP не нужно.
• Если нагрузка не будет расти и под такую нагрузку существует сервер, ECP не
нужно.
12
13. Способы определения параметров
• Зная типовую транзакцию и параметры нагрузки,
можно все подсчитать. Как определить параметры для
транзакции?
• эмпирический путь
• тестирование на производительность
• здравый смысл и опыт схожих проектов (Performance
Group)
13
14. ECP Application и Database сервера
• Память
• Кол-во пользовательских процессов
• Память под ECP кэш
• Кол-во ECP серверов
• Процессор
• Модель процессора - в Caché single threaded процессы
• Коэффициент нагрузки
• Сетевая нагрузка
• Диск
• IOPS
• Объем
14
15. Разделение транзакционной и аналитической
нагрузок
• Старый принцип: OLTP и OLAP врозь
Подсистема
Подсистема OLTP
аналитического хранилища
Database Server Database Server
Mirror Primary Node Mirror Primary Node
16 ядер с частотой не 16 ядер с частотой
менее 2.3 MHz не менее 2.3 MHz
128 Gb RAM 128 Gb RAM
Primary Node Async Node
15
16. Разделение записи и чтения
Light C++ Binding
Cache Extreme for Java
Cache Extreme for .Net
16
17. Отказоустойчивость и высокая доступность
• InterSystems Caché Database • ECP Cluster
Mirroring
• External Backup (snapshots)
• Failover Cluster
1
Удаленный
ECP Application ECP Application ECP Application Дата Центр
Server Server Server
8 ядер CPU 8 ядер CPU 8 ядер CPU
32 Gb RAM 32 Gb RAM 32 Gb RAM
2 Подсистема 4 Подсистема
OLTP аналитического хранилища
Mirror кластер Failover кластер
Database Server Database Server Database Server Database Server
Mirror Primary Node Mirror Backup Node Production Node Standby Node
16 ядер с частотой не 5 16 ядер с частотой не 16 ядер с частотой не 6 16 ядер с частотой не
3 менее 2.3 MHz менее 2.3 MHz
менее 2.3 MHz менее 2.3 MHz
7 128 Gb RAM 128 Gb RAM 128 Gb RAM 128 Gb RAM
Система
бэкапа 5
Массив SAN 6
17
18. Программная архитектура
• Модульная, трехзвенная архитектура
• Готовность к оптимизации
• Простота внесения изменений
• Тестируемость
• Разделение данных
• Конфигурация
• Пользовательские настройки
• Транзакционные
• Аналитические
18
19. Управление рисками
• Предупрежден, значит вооружен:
• первичная оценка для выбора железа
• возможность проведения тестов на
производительность
• разработка приложения
• оптимизация производительности приложения
• оптимизация производительности приложения
• оптимиза….
19
20. Сопровождение
• Регламенты сопровождения крайне важны
• защита от дурака
• любой неоптимальный шаг при работе с большим
объемом данных выливается в часы и дни ожиданий
• InterSystems Enterprise Management System
• обеспечивает управление конфигурациями нескольких
серверов
• упрощает задачи администрирования
20
21. Технологии InterSystems для больших систем
• InterSystems Enterprise Cache Protocol (ECP)
• InterSystems Caché Database Mirroring
• InterSystems Enterprise Management System
• Инновации InterSystems Caché Database
21