46

Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Embed Size (px)

Citation preview

Page 1: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном
Page 2: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Миллионы карточных платежей за месяц

Анатолий Пласковский, руководитель группы исследований производительности

или как потерять 10 000 евро на нагрузочном тестировании

Page 3: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Содержание

01 Моя стрельба

02 Моя цель

03 Мое исследование

Page 4: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Моя стрельба

Page 5: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

4

Пример

Page 6: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Алгоритм любой стрельбы

Описываем профиль

Обстреливаем цель

Снимаем метрики Анализируем результаты

Page 7: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Цели бывают разные

Page 8: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Моя цель

Page 9: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Сервис электронных платежей

Page 10: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Множество типов финансовых операций

Page 11: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Операции с банковскими картами

Page 12: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Мы получили лицензию на процессинг!

Page 13: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

О производительности процессинга

› Производительность ключевых микросервисов ограничена лицензией

› Расположение ключевых микросервисов ограничено лицензией

› Познания и опыт партнеров в исследованиях минимальны

Page 14: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

И что с этим со всем делать???

Page 15: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

14

Пример

Page 16: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Но с бережной заботой о пользователях

Page 17: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Пополнение: с карты на счёт

Page 18: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Как все работает

Яндекс.ДеньгиТанк-генератор

Банк-эквайр

MasterCard

Page 19: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

План эксперимента

Page 20: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Связь между нами и банком

Провайдер маршрутизации

Терминал с кодом категории оплаты (MCC)

Page 21: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Что ещё нужно учесть?

› Снятие комиссий на каждом шаге

› Снятие лимитов на число и сумму операций на каждом шаге

› Уведомление собственных и партнёрских Служб Безопасности

Page 22: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Итоговая комиссия

Page 23: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Моё исследование

Page 24: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

5 экспериментов за 23 дня

День 1 День 10 День 12 День 23День 18

Page 25: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Эксперимент 1

Page 26: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Результаты

1. Выедаем CPU на БД нашего Процессинга

2. Накопление блокировок на счетах

3. Доработка: оптимизация ряда запросов к БД

4. Проведено: 17 000 операций

5. Списания: успешно прошли за 10 минут

Page 27: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Эксперимент 2

Page 28: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Результаты

1. Уперлись в шифровальный модуль (HSM) нашего Процессинга

2. Накопление блокировок на счетах

3. Доработка: расширение пула счетов

4. Проведено: 24 778 операций

5. Списания: успешно прошли за 10 минут

Page 29: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Эксперимент 3

Page 30: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Результаты

1. Проведено: 50 000 операций

2. Списания: успешно загрузились в БД Процессинга за 40 минут

3. Потолок списание: размер файла списаний 104 Мб, ограничение в Oracle 4 Гб, не более 2 млн. операций на сегмент

Page 31: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Эксперимент 4

Суточный эксперимент с входной интенсивностью 15 блокировок в секунду и последующим потоком списаний

Page 32: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном
Page 33: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Результаты

1. Файл со списаниям пришел к нам в 18:00 следующего дня с задержкой в 1,5 часа

2. Процессинг обработал файл с 1 135 000 записей за 2 часа 10 минут

3. Полный разбор данных в системе закончился в 3:23

4. Массированный обстрел повсеместно привел к росту размера логов

Page 34: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Кроме того

1. Возникли проблемы с балансировкой запросов на фронты

2. Проявилась деградация производительности антифрод-системы

Page 35: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Эксперимент 5

Эксперимент нескольких суток с генерацией максимально возможного объёма операций за сутки (этап одновременной работы под потоком авторизаций с заданной интенсивностью и разбором пула клирингов)

Page 36: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном
Page 37: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Результаты

1. Процессинг успешно выдержал многосуточный эксперимент

2. Файл со списаниями пришел к нам в 18:00 следующего

3. Процессинг обработал файл с 1 400 000 списаниями за 1,5 часа

4. Полный разбор данных в системе закончился в 6:07

Page 38: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

операций

Page 39: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

38

Пример

Page 40: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

А вам посылка от MasterCard!

Page 41: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

0,05 евро за одну операцию

Page 42: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном
Page 43: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Вернемся к выданному нам терминалу

Провайдер маршрутизации MCC: 6051

Page 44: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном
Page 45: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Пожалуйста, будьте

Смелыми на эксперименты

Мудрыми при продумывании деталей

Понимающими и прощающими при общении с партнёрами

Page 46: Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять 10 тысяч евро на нагрузочном

Контакты

@fourwingedsun

[email protected]

Ваши вопросы?

Анатолий ПласковскийРуководитель группы исследований производительности