Название проекта

Action plan по архитектурным решениям
1
Цели

  1. Повысить отказоустойчивость системы;
  2. Обеспечить масштабируемость системы;
  3. Ускорить и упростить расследование инцидентов;
  4. Сделать состояние системы наблюдаемым.

Работы первого этапа не подразумевают глубокого рефакторинга существующих технических компонентов системы. Основное содержание работ - развертывание компонентов, которые будут работать рядом с существующими или заменяет их бесшовно.
Такой подход позволит получить быстрые и значимые результаты для бизнеса, не внося существенных рисков в работающие процессы.
Работы последующих этапов потребуют рефакторинга отдельных существующих компонентов и должны быть спланированы по результатам углубленного анализа требований к системе, который сейчас не проведен. Тем не менее, работы первого этапа спланированы так, чтобы их результат мог быть эффективным образом использован на последующих этапах вне зависимости от того, какие результата углубленного анализа будут получены.
Мы сознательно не включили в первый этап некоторые работы - например, работы по оптимизации подсистемы хранения на основе MySQL. Это сделано в связи с тем, что после первого этапа метрики этой и других подсистем будут изменены, что сделало бы мало полезной такую преждевременную оптимизацию, которая и затратна и рискованна.
2
3
Компоненты решения
А. Отказоустойчивый кластер

Основной технологический компонент - Kubernetes.


Решаемые задачи:

  • Масштабируемая среда для работы сервисов;
  • Получение готовых инструментов для автоматизированного восстановления работоспособности;
  • Получение готовых инструментов для сбора логов и метрик.


Примерный план работ:

  • Развертывание Kubernetes;
  • Контейниризация сервисов;
  • Развертывание сервисов в кластере.



В. Система мониторинга

Основные технологические компоненты - Prometheus и Grafana.


Решаемые задачи:

  • Сбор технических и бизнес метрик сервисов;
  • Отображение данных по метрикам;
  • Алертинг.


Примерный план работ:

  • Настройка сбора метрик с агентов сервисов;
  • Настройка визуальных представлений;
  • Настройка алертинга.



С. Система хранения логов

Основной технологический компонент - ELK.


Решаемые задачи:

  • Сбор логов сервисов;
  • Централизованное хранилище логов;
  • Система быстрого поиска и отображение логов.


Примерный план работ:

  • Развертывание и настройка ElasticSearch (хранилище логов);
  • Реализация трассировки запросов (сквозной Request Id между всеми сервисами);
  • Получение логов с сервисов в Logstash (сбор и унификация логов);
  • Развертывание и настройка Kibana (представление логов).



D. Асинхронный транспорт

Основной технологический компонент - Apache Kafka. Может быть изменен после завершения углубленного анализа на AMQP брокер, если содержание сообщений и особенности работы с ними вызовут такую необходимость.


Решаемые задачи:

  • Обмен сообщениями между аптеками и центральным офисом;
  • Локализация обработки ошибочных сообщений в слое транспорта с целью исключить их влияние на остальные компоненты системы;
  • Хранение лога обмена для аудита и расследования инцидентов;
  • Готовность к масштабированию.


Примерный план работ:

1. Развертывание Kafka.

2. Реализация нового клиента транспорта на стороне центрального офиса включает:
  • валидацию сообщений;
  • обработку ошибок обмена;
  • обработку ошибок взаимодействия(истечение таймаута, потеря связи и т.д.);
  • вызовы бизнес логики систем бэкофиса при успешном получении сообщений;
  • отправку сообщений в аптеки.

3. Реализация нового клиента транспорта на стороне аптек включает:
  • валидацию сообщений;
  • обработку ошибок обмена;
  • обработку ошибок взаимодействия(истечение таймаута, потеря связи и т.д.);
  • вызовы бизнес логики систем бэкофиса при успешном получении сообщений;
  • отправку сообщений в центральный офис.

4. Сбор бизнес и технических метрик с компонентов нового транспорта.

5. Постепенное переключение обмена центрального офиса с аптеками на новый транспорт.
Артефакты работы

  • Документация (техническая и бизнес);
  • Кодовая база;
  • Система доставки кода в продуктивный контур (CI/CD);
  • Система управления инфраструктурой (IaC).
4
Результат

Реализация Action Plan позволит вам:

  • Ускорить и упростить расследование инцидентов;
  • Сделать состояние систем наблюдаемым;
  • Решить ключевые проблемы в интеграционном взаимодействии между ЦО и филиалами;
  • Обеспечить высокий уровень доступности систем;
  • Оптимизировать решение.
5
Как ведется работа
6
Дорожная карта
Упрощает понимание стратегии развития благодаря визуализации работы команды, цены, планируемых часов и занятости
Управление проектом
Планирование, оценка, распределение задач по спринтам, согласования в Zoom, стендапы и общение в Telegram
Таск трекер — Monday
В качестве трекера задач используем Monday, в режиме реального времени следим за спринтами и выполненными задачами
Документация — Notion
Всё для понимания проекта: описание, глоссарий, раздел для разработчиков, описания инфраструктуры, нужных интеграций, UX и другого
Свяжитесь с нами
Телефон: +7 915 421-17-89
Email: glukhov.a@sparklingtide.com
Коммерческий директор
Артем Глухов