Платежная система    Деньги@Mail.Ruпростые решения сложных вопросов                                   2
Что такое ДМР?• Платежи между пользователями и в магазины• Пластиковые карты• API и мобильные приложения• Квази-валюты    ...
Проблемы в ПСТипичные проблемы HighLoad• высокая доступность и отказоустойчивость• обработка больших объемов данных / запр...
Учимся считатьФинансовая математикаМатематика с плавающей точкой2×2       =42.0 × 2.0 = ?                                5
Безопасность в ПСТипичные уязвимостиВ сети:• перехват трафикаНа сервере:• SQL-инъекции• 0-строки и раскрытие данныхНа клие...
Безопасность в ПСШифрование данныхПри передаче:• https-соединение• cookies со спец-флагамиПри хранении:• можно шифровать д...
Безопасность в ПСОбработка данныхSQL-инъекции?  • хранимые процедуры и связанные переменныеXSS?  • шаблонизаторы и экранир...
ИнтеграцияПроблема:• Многообразие протоколов• Многообразие алгоритмов• Чрезмерная паранойяРешение:• Унификация — хотя бы с...
Где Rocket Science?            Масштабируемость         Скорость      Надежность                                    10
Где Rocket Science?                  Платежная система —                  это не Rocket Science…                        …н...
Хранилище данныхПроблема:Масштабируемость — scale-up или scale-out?Выбор технологии:•Промышленные СУБД?•Open-source?•NoSQL...
Хранилище данныхРешение:• Данные — в сотнях узлов одинаковой структуры• Каждый пользователь — в своем узле• Работа с данны...
Хранилище данныхПочему?• Данные слабосвязаны, разных типов мало• Многие данные не меняются  • Можно забыть про нормализаци...
Хранилище данныхТехнологии:MySQL 5.x + хранимые процедуры                                 15
Хранилище данныхТранзакцииклассика жанра…start transaction;UPDATE account SET balance = balance + :amount      WHERE uid =...
Хранилище данныхТребования:• Гарантированная доставка• Отсутствие дублей• И снова масштабирование                         ...
Хранилище данныхТребования:• Гарантированная доставка• Отсутствие дублей• И снова масштабированиеРешение:• Упрощение 2PC• ...
Хранилище данныхРаспределенные транзакцииЭтапы:• списание на транзитный счѐт• передача между узлами• зачисление на счѐт по...
Хранилище данныхРаспределенные транзакции                        В узлах:                        ACID + скорость          ...
ОчередиЭволюция: асинхронная работа• От транзакций к сообщениям• 99.9% работы платежной системы — в фонеВ фоне:• распредел...
Сервер приложений• NginX + apache + mod_perl• Где кэш?Задачи:• Координация запросов• Контроль соединений• Выдача результат...
Жертвы будутНеочевидные проблемы• Ой! Мы же зашифровали данные!• Контакт? Нет контакта! Коннект?...• Распределенные вычисл...
Главная проблемаРегуляторы в области ИБ                          © А. Лукацкий                                     24
Главная проблемаНормативно-правовые акты по ИБ в НПС                                       © А. Лукацкий                  ...
Главная проблемаГлавные проблемы — не технические  • Стандарты безопасности  • Закон о НПС + нормативные акты  • Отчетност...
СтатистикаСерверы БД:200 000 qpsПриложений:До 5K qpsБаланс: 0.003 секОчередей:2M msg/d, 1800 t/m67% сообщений — 0.02 сек97...
СПАСИБО!   Максим Бабич  Деньги@Mail.Rubabich@corp.mail.ru
максим бабич
Upcoming SlideShare
Loading in …5
×

максим бабич

4,527 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,527
On SlideShare
0
From Embeds
0
Number of Embeds
3,981
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

максим бабич

  1. 1. Платежная система Деньги@Mail.Ruпростые решения сложных вопросов 2
  2. 2. Что такое ДМР?• Платежи между пользователями и в магазины• Пластиковые карты• API и мобильные приложения• Квази-валюты 3
  3. 3. Проблемы в ПСТипичные проблемы HighLoad• высокая доступность и отказоустойчивость• обработка больших объемов данных / запросовНетипичные проблемы• любая ошибка — очень дорого• безопасность — наше всѐ• внешний мир — такой внешний 4
  4. 4. Учимся считатьФинансовая математикаМатематика с плавающей точкой2×2 =42.0 × 2.0 = ? 5
  5. 5. Безопасность в ПСТипичные уязвимостиВ сети:• перехват трафикаНа сервере:• SQL-инъекции• 0-строки и раскрытие данныхНа клиенте:• XSS• XSRF
  6. 6. Безопасность в ПСШифрование данныхПри передаче:• https-соединение• cookies со спец-флагамиПри хранении:• можно шифровать данные в БД• можно шифровать диски• данные отдельно, ключи отдельно 7
  7. 7. Безопасность в ПСОбработка данныхSQL-инъекции? • хранимые процедуры и связанные переменныеXSS? • шаблонизаторы и экранирование переменныхXSRF? • подпись форм и ссылок 8
  8. 8. ИнтеграцияПроблема:• Многообразие протоколов• Многообразие алгоритмов• Чрезмерная паранойяРешение:• Унификация — хотя бы свои делайте одинаково• Простота — чем проще вы, тем проще вам• Совместимость 9
  9. 9. Где Rocket Science? Масштабируемость Скорость Надежность 10
  10. 10. Где Rocket Science? Платежная система — это не Rocket Science… …но есть нюанс © 11
  11. 11. Хранилище данныхПроблема:Масштабируемость — scale-up или scale-out?Выбор технологии:•Промышленные СУБД?•Open-source?•NoSQL?С этим выбором жить долго:платежные системы консервативны
  12. 12. Хранилище данныхРешение:• Данные — в сотнях узлов одинаковой структуры• Каждый пользователь — в своем узле• Работа с данными — через хранимые процедуры 13
  13. 13. Хранилище данныхПочему?• Данные слабосвязаны, разных типов мало• Многие данные не меняются • Можно забыть про нормализацию • JSON рулит. Разница — всего 34.8%. Жалко? Можно и 20.5%• Дублируем, если нужно• Безопасность + меньше сетевые издержки
  14. 14. Хранилище данныхТехнологии:MySQL 5.x + хранимые процедуры 15
  15. 15. Хранилище данныхТранзакцииклассика жанра…start transaction;UPDATE account SET balance = balance + :amount WHERE uid = :user1;UPDATE account SET balance = balance - :amount WHERE uid = :user2;commit;…не работает! 16
  16. 16. Хранилище данныхТребования:• Гарантированная доставка• Отсутствие дублей• И снова масштабирование 17
  17. 17. Хранилище данныхТребования:• Гарантированная доставка• Отсутствие дублей• И снова масштабированиеРешение:• Упрощение 2PC• Журналы транзакций 18
  18. 18. Хранилище данныхРаспределенные транзакцииЭтапы:• списание на транзитный счѐт• передача между узлами• зачисление на счѐт получателя 19
  19. 19. Хранилище данныхРаспределенные транзакции В узлах: ACID + скорость Координатор: • доставка • отсутствие дублей • масштабируемость
  20. 20. ОчередиЭволюция: асинхронная работа• От транзакций к сообщениям• 99.9% работы платежной системы — в фонеВ фоне:• распределенные транзакции• взаимодействие с внешними системами• различные уведомления внутри системы 21
  21. 21. Сервер приложений• NginX + apache + mod_perl• Где кэш?Задачи:• Координация запросов• Контроль соединений• Выдача результатов ХП• Бизнес-логика (не СУБД) 22
  22. 22. Жертвы будутНеочевидные проблемы• Ой! Мы же зашифровали данные!• Контакт? Нет контакта! Коннект?...• Распределенные вычисления• Распределенный поиск• Точки G 23
  23. 23. Главная проблемаРегуляторы в области ИБ © А. Лукацкий 24
  24. 24. Главная проблемаНормативно-правовые акты по ИБ в НПС © А. Лукацкий 25
  25. 25. Главная проблемаГлавные проблемы — не технические • Стандарты безопасности • Закон о НПС + нормативные акты • Отчетность: 1С, SAP, АБС… • Люди 26
  26. 26. СтатистикаСерверы БД:200 000 qpsПриложений:До 5K qpsБаланс: 0.003 секОчередей:2M msg/d, 1800 t/m67% сообщений — 0.02 сек97% — 0.05 сек 27
  27. 27. СПАСИБО! Максим Бабич Деньги@Mail.Rubabich@corp.mail.ru

×