0 656 ru

Архитектура платформы финансовых вычислений Uber

Categories: 💻 Programming

Для компании маштаба убера: аналитика, бухгалтерский учет есть жизненно необходимыми вещами. 

В сфере райдшеринга ежегодно совершается более 4 миллиардов поездок по всему миру, что составляет более 40 миллиардов записей в журнале (финансовых микротранзакций). Каждая из этих записей должна производиться в соответствии с Общепринятыми принципами бухгалтерского учета (GAAP) и управляться идемпотентным, непротиворечивым, точным и воспроизводимым образом.

Чтобы удовлетворить эти специфические требования, Uber создали собственную Платформу FCP (Finance Computation Platform).

Мотивация и технические челленджи

В 2019 году клиенты Uber ежедневно совершали более 15 миллионов поездок с использованием самых разных услуг (еда, поездки, грузоперевозки и т. д.), команде пришлось иметь дело с множеством неупорядоченных данных, и неравномерной нагрузкой, точное, объяснимое и стандартизированное представление. 

Типичный финансовый расчет

Для выполнения бухгалтерских операций и регистрации необходимых финансовых показателей в general ledger (GL) Uber нужно было подключиться к системам продаж, сбора и оплаты каждого продукта.

Один из самых простых способов сделать это — создать пайплайны Extract Transform Load (ETL) для заполнения warehouse таблиц, коллекций и т. д. и написать запросы на языке SQL поверх warehouse таблиц для создания бухгалтерской книги. Этот тип типичной конфигурации финансовой системы, показанный ниже на рисунке включает в себя различные хранилища данных и хранилища для приема и хранения финансовой информации для обработки. 

A typical financial system.
Типичная финансовая система.

 

Несмотря на то, что для многих компаний работа с финансовыми расчетами типична, размер, масштаб и динамичный характер бизнеса в Uber сделали этот подход несовместимым с их требованиями. В частности, в Uber решили, что типовой системы будет недостаточно, потому что: 

  • Complex Queries: по мере роста бизнеса и количества доменов модели данных значительно меняются, что увеличивает сложность запросов и затрудняет их обслуживание.
  • Потребность в снапшотах и Audit trail. Для существенного финансового аудита может потребоваться подтверждение для каждой записи , представленной в системе на срок до года. Следовательно, он может запросить снапшот и audit trail для источника.

Принимая во внимание всю сложность, финансовые расчеты в Uber были бы слишком сложными для обработки только SQL-запросов, созданных человеком. Поэтому в убер создали собственную Платформу финансовых вычислений (FCP).

Финансовый жизненный цикл поездки

Финансовый жизненный цикл поездки

FCP - Finance Computation Platform

PSP - Payment Service Provider

Ключевые принципы Платформы финансовых вычислений (FCP)

Гарантии данных имеют решающее значение для любой финансовой системы, поэтому система Uber построена на принципах:

  1. Immutable: редактирование транзакции отключено, и любые исправления принимаются как дополнительные транзакции .
  2. Idempotent и strong Consistency: система гарантирует всегда производить одну и ту же транзакцию для данного события.
  3. Возможность аудита : ведет контрольный журнал каждой финансовой транзакции с полной объяснимостью для каждого действия, связанного с его корнем  .
  4. Complete: гарантирует полноту финансовых книг за счет измерения бизнес-событий, пропущенных системой, и обеспечения отсутствия пробелов в финансовых показателях.
  5. Точность: точность обеспечивается постоянным мониторингом просчетов на различных этапах финансового жизненного цикла и выявлением любых пробелов.
  6. Безопасность: механизмы контроля доступа к базовой инфраструктуре Uber помогают обеспечить ограниченный доступ к финансовым данным.

Выбор дизайна

Прежде чем создавать архитектуру Платформы финансовых вычислений Uber, ребята оценили ряд вариантов дизайна для обеспечения оптимальной производительности и масштабируемости. В конечном итоге остановились на event-driven architecture с Schemaless в качестве хранилища OLTP (Online Transaction Processing) и Apache Hadoop® (распределенная файловая система Apache Hadoop®) в качестве хранилища для OLAP (Online Analytic Processing) для создания отчетов и аналитики.

Архитектура платформы финансовых вычислений Uber

Архитектура платформы финансовых вычислений Uber

Рассмотрим подробнее детали реализации:

Использование Schemaless на базе MySQL в качестве хранилища данных

Uber разработал Schemaless - единое хранилище данных для транзакций. Чтобы оно обеспечивало управляемые кластеры и высокую пропускную способность, доступность и согласованность данных.

Использованпе Apache Hadoop для батч операций

Некоторые отчеты и проверки качества данных требуют обработки больших объемов данных. Для того чтобы справиться с таким потоком uber юзают Hadoop.

Источник

Comments:

Please log in to be able add comments.