Стратегия и тактика улучшения производительности BSS...
-
Upload
ontico -
Category
Engineering
-
view
121 -
download
5
Transcript of Стратегия и тактика улучшения производительности BSS...
![Page 1: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/1.jpg)
Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи YotaОлег ФилатьевПавел НашатыревАлександр Семелит
![Page 2: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/2.jpg)
YOTA
Алло Инкогнит
о
Aiva Mo-bile
Matrix Mobile SIM-SIM Другие
Доли рынка
YOTA – 81%
Алло Инкогнито – 7%
SIM-SIM – 4%
Matrix Mobile – 4%
Aiva Mobile – 3%
Другие – 1%
YOTA – самый крупныйMVNO оператор в России
Как сотовый оператор стартовали в середине 2014MVNO – виртуальный оператор без собственной сети
![Page 3: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/3.jpg)
YOTA занимает
место среди MVNO операторов в мире
10
![Page 4: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/4.jpg)
![Page 5: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/5.jpg)
60+ бизнес-процессов
96 систем и сервисов
420+ серверов
13000+ запросов на обслуживание
200+ проектов и релизов
![Page 6: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/6.jpg)
Общая архитектура BSSBSS – Business Support System
WebAPI
ESB (Java/Tibco)
Billing(Oracle. PL/SQL)
CRM (MS Dynamics)
Customer Interaction
Product Catalog
Payment System
Remote Dealer
Business intelligence
• 30 сервисов • 70 инстансов сервисов• Production – 20 серверов.• 200 читающих вызовов в сек.• 200 изменяющих вызовов в
сек.• Часть подсистем
проприетарная
OSS
MobileApp
![Page 7: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/7.jpg)
• Каждый вызов запускает процесс на ESB• Каждый процесс вызывает 5-10
методов конечных сервисов• Конечные сервисы выполняют 2-5
атомарных операций• 7-10 тыс. атомарных операций в сек• Процессы меняются часто – каждые 2-3
месяца• Критичных процессов – около 10 (всего
~ 60)
Оптимизируем критичные EndToEnd процессы
400 вызовов/сек не много, НО:
![Page 8: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/8.jpg)
Контроль над производительностьюВыделенная группа в разработке-тестировании для контроля над производительностью выпускаемых релизов.Тестовый стенд – половина Production с идентичными настройками.Несколько видов тестов:1.Комплексный 3-х часовой с постепенным увеличением
нагрузки. Контрольный для каждого релиза.2.Длительный 8-часовой для тестирования новых
компонентов и существенных изменениях в старых. Не в каждом релизе.
3.Специализированные тесты, например, на прогрев кэша
Основной инструмент – JMeter 3
![Page 9: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/9.jpg)
Ключевые улучшения за 2016
• Кэширование Product Catalog и справочников• Оптимизация часто вызываемых EndToEnd
процессов• Оптимизация запросов и структур БД• Внедрение in-memory database для быстрого
чтения данных по клиенту – подход CQRS• Java вместо Tibco ESB• Асинхронное взаимодействие с MobileAPP
![Page 10: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/10.jpg)
Кэширование Product Catalog (тарифы) Стратегия кэширования – сохранять вызовы методов
Ключ записи в кэше – хеш-функция от параметровPros:• Легкая реализация + простые структуры• Возможно хранить кэш на стороне вызывающего
сервисаCons:• Комбинаторность, требующая больше памяти при
повышениикол-ва параметров или их комбинаций
• Медленный прогрев кэшаОбщий выигрыш в скорости в десятки раз – БД почти не нагружена после прогреваВ будущем – переход на объекты в памяти
![Page 11: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/11.jpg)
Кэш Product Catalog – разработка
• Ehcache 2.x• Репликация • Сохранение на диск для быстрого прогрева
Нагрузка на БД до:
Нагрузка на БД после:
![Page 12: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/12.jpg)
Внедрение in-memory database Необходимо хранить информацию о СИМ-картах клиентов и
подключенные продукты вне биллинга на Oracle, в более быстрой БД.Сделали БД для чтения на Tarantool с синхронизацией с Oracle БД – CQRS подход.Для синхронизации – GoldenGate. Ограничение по времени синхронизации (latency) < 0.3 сек. Эффект:• Ускорение доступа к данным в 7-10 раз при вызове сервиса. • Снижение нагрузки на сервера БД на порядок (c 20 сессий до 1
или с 8 ядер до 1)
![Page 13: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/13.jpg)
Почему Tarantool?
Сравнивали с Apache Ignite, Oracle TimesTen, CoachBase, Haselcast, Redis
Наличие фич БД (индексы, скрипты)
Техподдержка в РФ
Стоимость техподдержки
Tarantool + + +Apache Ignite + -Oracle Times Ten
+ + -
CoachBase -/+ - -Redis + - -Haselcast - - -
На прошлой Highload 2015 впечатлил доклад о работе Tarantool
![Page 14: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/14.jpg)
Tarantool – разработка
• Разные типы индексов• Активно используем составные индексы• Гранулярная очистка кэша• Обновление процедур без простоев• Написали свой Java connection pool• На самом деле connection pool не нужен
![Page 15: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/15.jpg)
Источники изменения:
• Прямые вызовы сервисов
• Звонки
• Биллинговые процессы
• Скрипты в Oracle
Service
Oracle DB
Invalidate
Tarantool
Modify
Неконсистентность
Чтение 1Изменение Чтение 2
Sync
Del
Save
Чтение 3
Синхронизация баз данных
![Page 16: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/16.jpg)
Java вместо Tibco BW
• Логика требует вложенных циклов• Сталкиваемся с ограничениями среды• Баги, проявляющиеся только под
нагрузкой• Особенности реализации• XML. Ресурсоемкая реализация DOM• Тяжелые абстракции
• В итоге переписали под Java 8 и WildFly 10• Response time уменьшился в 2 раза
![Page 17: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/17.jpg)
Мониторинг
YourKit Java Profiler
+
Oracle AWR
JMX
![Page 18: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/18.jpg)
TPS
RT
TPS: 38Response time: 12 сек.
Результаты 2015
![Page 19: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/19.jpg)
Результаты 2016
TPS
RT
TPS: 240Response time: 0,4 сек.
![Page 20: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/20.jpg)
Результаты проекта
• Изменение архитектуры системы – частичный переход на CQRS• Снижение нагрузок на системы на
порядок• Производительность перестает быть
ограничивающим фактором – дает больше свободы для бизнес-идей• Развита экспертиза, получен опыт
применения инструментария и выработаны подходы
![Page 21: Стратегия и тактика улучшения производительности BSS систем оператора мобильной связи Yota / Олег Филатьев,](https://reader036.fdocuments.net/reader036/viewer/2022062310/586f90cf1a28ab54768b7a49/html5/thumbnails/21.jpg)
Спасибо за внимание!