Библиотека программиста
😴Вы ведь там не спите?! И правильно — ведь у нас для вас есть предложение отправиться в путешествие ...
😴Вы ведь там не спите?! И правильно — ведь у нас для вас есть предложение отправиться в путешествие по техническому стеку Uber (аналогичный недавний пост про Netflix)
Иллюстрация основана на исследованиях из технических блогов Uber и проектов с открытым исходным кодом:
📌Фронтенд
• Веб: Fusion.js (React-фреймворк для создания надежных веб-приложений) + Visualization.js для сценариев геопространственной визуализации.
• Mobile: кроссплатформенная система RIB с архитектурой VIPER вместо MVC.
📌Бэкенд:
• Uber Gateway как динамическая конфигурация поверх Nginx. Сервис использует gRPC и QUIC для взаимодействия клиент-сервер, а также Apache Thrift для описания интерфейсов.
• Единое хранилище конфигураций под названием Flipr (позже измененное на UCDP), H3 в качестве библиотеки хранилища location-index, Spring Boot для сервисов на основе Java, uAct для архитектуры, управляемой событиями, и Cadence для оркестрации.
📌Базы данных: для OLTP используется DocStore, под капотом у которой MySQL + PostgreSQL + движок RocksDB.
📌Big data: управление осуществляется с помощью семейства Hadoop. В качестве форматов файлов используются Hudi и Parquet, а Alluxio — для кэширования. Данные временных рядов хранятся в Pinot и AresDB.
📌Обработка данных: Hive, Spark и фреймворк с открытым исходным кодом Marmaray + Apache Kafka и Apache Flink.
📌DevOps: Uber использует Monorepo с упрощенным окружением под названием devpod. CD управляется через Netflix Spinnaker, метрики передаются в uMetric, уведомления в uMonitor и базу данных observability M3.
🔗Подробнее
#инфографика #проектирование_систем