Продукт

Odin

Собственная технологическая платформа

Внедрено
Год2018

Задача

С чем пришли

Задача заказчика и то, что мешало решить её раньше.

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

Механики

Что внутри

Механики, из которых собран продукт.

Event Sourcing и CQRS

Методологии и паттерны написания бизнес-логики, при которых состояние системы восстанавливается из событий.

Обновление без остановки

Функционал добавляется и меняется без приостановки текущей версии и работающих сервисов.

Мультидатацентровость

Развёртывание на разных серверах для географической близости к заказчику.

Богатый API

Подключение к любому внешнему сервису: обмен данными запросами или выдачей информации.

Конвейер

Путь запроса через платформу

Путь запроса через платформу: от внешней системы до ответа, который собран из журнала событий.

  1. 01

    Запрос входит в контур

    Внешние системы обращаются по HTTP или WebSocket. Входная точка: маршрутизатор: TLS, распределение запросов, ограничение частоты обращений.

  2. 02

    Работу принимает сервис

    Логика разложена на небольшие сервисы. Каждый отвечает за свою часть и не вызывает соседей напрямую.

  3. 03

    Изменение становится событием

    Сервис не переписывает состояние молча: он записывает событие. Из журнала восстанавливается и актуальное представление данных, и полная история операций.

  4. 04

    Событие уходит в брокер

    Брокер доставляет его остальным сервисам: очереди и топики, гарантированная доставка, повторная обработка после сбоя.

  5. 05

    Представления обновляются отдельно

    Чтение и запись разделены: представления для чтения собираются заранее и обновляются по событиям, не конкурируя с проведением операций.

  6. 06

    Ответ уходит клиенту

    Чтение отдаётся из заранее собранных представлений: быстро и без блокировки записи.

Место в стеке

Место в стеке

Odin: нижний слой: на нём стоят и веб-продукты, и сервисы заказчиков.

Площадки Серверы и дата-центры

Контур разворачивается на своих серверах и может занимать несколько площадок: данные оказываются ближе к пользователям.

Odin Компоненты платформы

Брокер сообщений, хранилища, маршрутизатор, оркестрация, мониторинг. Собираются в комплектацию под задачу.

Продукты и сервисы Что работает на платформе

Продукты компании и сервисы заказчиков: Udeu, «Амбиции», бэк-офисы, консьерж-системы.

Результат

Что это даёт продукту

Что эти свойства платформы дают конкретному продукту.

Правка не ломает соседние сервисы

Сервисы связаны контрактами и событиями, а не общей базой кода: изменение одного не тянет за собой остальные.

Обновление без окна простоя

Две версии сервиса работают одновременно, поэтому выкатка и откат проходят без остановки обслуживания.

История операций уже есть

Состояние восстанавливается из журнала событий: разбор произошедшего не требует отдельной системы.

Чтение не конкурирует с записью

Представления собираются заранее и обновляются по событиям, поэтому отчёты не мешают проведению операций.

Новый сервис собирается из готовых компонентов

Комплектация подбирается под задачу: от инсталляции на одном сервере до распределённого контура.

Данные ближе к пользователю

Несколько площадок с репликацией данных и переключением трафика между ними.

Технологии

На чём построено

Платформа, стек и площадки, на которых работает продукт.

Технологии

  • Распределённый брокер сообщений
  • uWebSockets
  • RocksDB
  • Redis
  • Оркестрация
  • Поисковый движок

Платформы

  • Серверная платформа

Ссылки

Где посмотреть

Сайт продукта и материалы о нём.

Живое демо

Демо-доступ предоставляется по запросу.

Связаться

Нужен такой продукт под ваш бренд?

Развернём white-label, настроим процессы и подключим вашу команду.