TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4214 3.03K
«Мы пилили монолит — много нас, а он один». Полезные советы от команды Яндекс Еды

Рассказ начинается с краткой истории сервиса, подчеркивая ее эволюцию от стартапа в 2015 году до крупного монолита к 2023 году. Решение отказаться от монолита было обусловлено различными проблемами, такими как отсутствие экспертизы, проблемы с релизами, сложность кода, размытые ответственности и трудности с локальным развертыванием.

Подчеркивается важность подготовки перед началом перехода. Они описывают общие трудности, с которыми сталкиваются при таких переходах, включая необходимость рефакторинга значительных частей кода, отсоединения объектов базы данных, поддержания совместимости API, обеспечения однородного функционирования и наличия планов на случай отката.

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

Затем автор подробно рассматривает конкретные инструменты и подходы, используемые во время перехода:

1️⃣Auth-proxy: Сервис шлюза API, ответственный за авторизацию пользователей и маршрутизацию запросов к соответствующим микросервисам. Он позволяет постепенно перенаправлять трафик от монолита к новым сервисам.

2️⃣API-proxy: Фасадный сервис для интеграции микросервисов. Применяются различные варианты переключения трафика, включая постепенное перенаправление трафика от монолита к новым сервисам при обеспечении идентичных ответов.

3️⃣Сервис экспериментов: Сервис, который делит пользовательские запросы на группы на основе параметров запроса, позволяя контролируемо экспериментировать с новой функциональностью.

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

Предоставляются несколько примеров, чтобы проиллюстрировать процесс перехода, такие как миграция отправки уведомлений, информации о стране, управления пользователями и конечной точки для получения предложений.
  • 🥱 4
  • ❤ 3
  • 👍 1
  • 🔥 1
  • 😁 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →