максим бабич

28

Upload: kuchinskaya

Post on 22-Jun-2015

3.248 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: максим бабич
Page 2: максим бабич

2

Платежная системаДеньги@Mail.Ru

простые решения сложных вопросов

Page 3: максим бабич

3

Что такое ДМР?

• Платежи между пользователями и в магазины• Пластиковые карты• API и мобильные приложения• Квази-валюты

Page 4: максим бабич

4

Проблемы в ПС

Типичные проблемы HighLoad• высокая доступность и отказоустойчивость• обработка больших объемов данных / запросов

Нетипичные проблемы• любая ошибка — очень дорого• безопасность — наше всё• внешний мир — такой внешний

Page 5: максим бабич

5

Учимся считать

Финансовая математика

Математика с плавающей точкой2 × 2 = 42.0 × 2.0 = ?

Page 6: максим бабич

Безопасность в ПС

Типичные уязвимостиВ сети:• перехват трафикаНа сервере:• SQL-инъекции• 0-строки и раскрытие данныхНа клиенте:• XSS• XSRF

Page 7: максим бабич

7

Безопасность в ПС

Шифрование данныхПри передаче:• https-соединение• cookies со спец-флагами

При хранении:• можно шифровать данные в БД• можно шифровать диски• данные отдельно, ключи отдельно

Page 8: максим бабич

Безопасность в ПС

8

Обработка данныхSQL-инъекции?

• хранимые процедуры и связанные переменные

XSS?• шаблонизаторы и экранирование переменных

XSRF?• подпись форм и ссылок

Page 9: максим бабич

9

Интеграция

Проблема:• Многообразие протоколов• Многообразие алгоритмов• Чрезмерная паранойя

Решение:• Унификация — хотя бы свои делайте одинаково• Простота — чем проще вы, тем проще вам• Совместимость

Page 10: максим бабич

10

Где Rocket Science?

Скорость

Масштабируемость

Надежность

Page 11: максим бабич

11

Где Rocket Science?

Платежная система —это не Rocket Science…

…но есть нюанс ©

Page 12: максим бабич

Проблема:Масштабируемость — scale-up или scale-out?

Хранилище данных

Выбор технологии:•Промышленные СУБД?•Open-source?•NoSQL?

С этим выбором жить долго: платежные системы консервативны

Page 13: максим бабич

13

• Данные — в сотнях узлов одинаковой структуры• Каждый пользователь — в своем узле• Работа с данными — через хранимые процедуры

Решение:

Хранилище данных

Page 14: максим бабич

• Данные слабосвязаны, разных типов мало• Многие данные не меняются

• Можно забыть про нормализацию • JSON рулит. Разница — всего 34.8%. Жалко? Можно и 20.5%

• Дублируем, если нужно• Безопасность + меньше сетевые издержки

Почему?

Хранилище данных

Page 15: максим бабич

15

Хранилище данных

Технологии:MySQL 5.x + хранимые процедуры

Page 16: максим бабич

16

Транзакции

start transaction;

UPDATE account SET balance = balance + :amountWHERE uid = :user1;

UPDATE account SET balance = balance - :amountWHERE uid = :user2;

commit;

классика жанра…

…не работает!

Хранилище данных

Page 17: максим бабич

17

Требования:

• Гарантированная доставка• Отсутствие дублей• И снова масштабирование

Хранилище данных

Page 18: максим бабич

18

Требования:

• Гарантированная доставка• Отсутствие дублей• И снова масштабирование

Решение:• Упрощение 2PC• Журналы транзакций

Хранилище данных

Page 19: максим бабич

19

Распределенные транзакции

Этапы:• списание на транзитный счёт• передача между узлами• зачисление на счёт получателя

Хранилище данных

Page 20: максим бабич

Распределенные транзакции

В узлах: ACID + скорость

Координатор: • доставка• отсутствие дублей• масштабируемость

Хранилище данных

Page 21: максим бабич

21

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

Эволюция: асинхронная работа

• От транзакций к сообщениям• 99.9% работы платежной системы — в фоне

Очереди

В фоне:

Page 22: максим бабич

22

• NginX + apache + mod_perl• Где кэш?

Задачи:• Координация запросов• Контроль соединений• Выдача результатов ХП• Бизнес-логика (не СУБД)

Сервер приложений

Page 23: максим бабич

23

Жертвы будут

Неочевидные проблемы

• Ой! Мы же зашифровали данные!• Контакт? Нет контакта! Коннект?...• Распределенные вычисления• Распределенный поиск• Точки G

Page 24: максим бабич

24

Главная проблема

© А. Лукацкий

Регуляторы в области ИБ

Page 25: максим бабич

25

Главная проблема

Нормативно-правовые акты по ИБ в НПС

© А. Лукацкий

Page 26: максим бабич

26

Главная проблема

Главные проблемы — не технические

• Стандарты безопасности • Закон о НПС + нормативные акты• Отчетность: 1С, SAP, АБС…• Люди

Page 27: максим бабич

27

Статистика

Серверы БД:200 000 qps

Очередей:2M msg/d, 1800 t/m67% сообщений — 0.02 сек97% — 0.05 сек

Приложений:До 5K qpsБаланс: 0.003 сек

Page 28: максим бабич

Максим БабичДеньги@Mail.Ru

[email protected]

СПАСИБО!