Архитектура

  1. Лицензирование системы в целом и особенно используемых пакетов на back/front написанных под коробку?

Используются либо Open Source решения, либо собственные разработки. Права на продукт принадлежат компании, разработчики подписывают NDA.

  1. Как реализуется обновления платформы? Обновления пакетов?

Обновление пакетов происходит с помощью менеджеров пакетов Composer и NPM/Yarn. Обновление платформы происходит через систему контроля версий Git и встроенных инструментов фреймворка

  1. Что входит в документацию и как ведется документирование кода? Есть ли требования к разработке? Есть ли МХД, Сваггер, диаграмма потоков данных?

В документацию входят REST-запросы к микросервисами. Используется Swagger.

  1. Структура кода и паттерн проектирования, примененные внутри микросервисов?

Сейчас стандартная структура фреймворка Laravel, но постепенно начинаем переходить на архитектурный шаблон Porto.

  1. Как реализована агрегация данных для фронта? Есть ли агрегатор на беке или сам фронт выступает агрегатором данных?

Бек агрегируют большую часть данных, особенно кешируемых. Часть данных фронт запрашивает по необходимости.

  1. Есть ли Elasticsearch и как используется? Какие настройки эластики идут из коробки (кластер, количество шардов и реплик)? Размеры индексов в Гб и их количество в системе?

Elasticsearch используется для вывода товаров и поиска по магазину. Используются стандартные настройки, кроме использования оперативной памяти. Она ограничивается в 4 GB. Размеры индексов зависят от количества данных.

  1. Какие БД используются? Как настроен кластер и какая репликация используется? Поддерживается ли архивирование устаревшей информации (заказы)?

В качестве БД выступает PostgreSQL. Репликация и архивирование не используются.

  1. Какой кэш используется? Как организовано кэширование каталога? Какие вообще сущности в коробке кэшируются?

В качестве кэша используется Redis. Данные каталога отдаются Эластиком. Кэшируются данные страниц, которые содержат мета-информацию, рубрикатор каталога, различные виджеты (карусели баннеров, подборку товаров и брендов).

  1. Есть ли поддержка файлового хранилища S3? Поддерживаются ли приватные хранилища?

Такая поддержка существует. Приватное хранилище должно быть S3-совместимым.

  1. Как реализуется логирование в системе и какие действия/события логируется?

Средствами фреймворка логируется взаимодействие с внешними системами, а также ошибки. Есть возможность подключить Sentry.

  1. Как реализуется мониторинг системы и за какими показателями следят?

Мониторинг доступности осуществляется внешними системами - UptimeRobot, Я.Метрика. Настраивается индивидуально.

  1. Есть ли мониторинг бизнес процессов (обработка импортов, заказов, обмена с внешними системами)?

Результаты и состояние бизнес процессов можно наблюдать в административной панели

  1. Есть ли автотесты, какие и какое покрытие?

Есть автотесты на API и на UI - как для витрины, так и для админ. панелей. Покрытие примерно 25%. Автотесты быстро устаревают и на данный момент не используются.

Last updated