Мы занимаемся потоковой обработкой данных, аналитикой в реальном времени и бизнес-логикой управления аккаунтами пользователей. В наши задачи входят расчет и детализация стоимости оказанных услуг, работа с системами документооборота и платежными шлюзами. Мы уделяем особое внимание качеству кода и полноте тестирования, потому что от нас зависят счета пользователей и выручка компании. Перед нами стоят задачи горизонтального масштабирования, обеспечения отказоустойчивости и поддержки ACID в распределенных транзакциях.
У нас можно научиться строить горизонтально масштабируемые системы обработки данных и построить биллинговую систему, не уступающую по возможностям тем, что предлагают крупнейшие облачные провайдеры.
За первое полугодие 2021 более 12600 клиентов Яндекс.Облака потребили услуг более чем на 1,1 млрд руб, все это потребление прошло через нашу платформу
Control plane отвечает за всю бизнес логику от регистрации пользователя и привязки карты до выставления и отправки счета за оказанные услуги.
В задачи команды входит:
У Control plane много внешних зависимостей, большинство сценариев требуют обеспечить согласованность данных в нескольких разных сервисах одновременно. Также большое внимание мы уделяем отказоустойчивости - каждая загрузка web консоли предполагает поход в наш API.
Data plane занимается подсчетом того сколько денег должен заплатить тот или иной пользователь.
Любой ресурс в облаке, будь то виртуальная машина или объект в S3 имеет свой жизненный цикл в рамках которого о ресурсе шлются события в биллинг. Data plane обрабатывает эти события и формирует счета пользователей.
Текущий поток превышает 1,5млрд событий в сутки. Наша задача - оперативно обработать их, сохранив семантику exactly once и идемпотентность расчетов.
Мы целимся в то чтобы от момента создания ресурса до его отражения в детализации расходов проходило не более 10 минут, избегать больших задержек важно т.к. пользователи хотят оперативно реагировать на превышение порога расходов.
Результатом работы Data plane является не только суммарное потребление пользователя но и расширенная детализация расходов, что заставляет работать как с OLTP так и с OLAP паттернами нагрузки.