Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Middle+ — Principal
31
Подробный дизайн инфраструктуры сервиса‑клон Dropbox
Условие задачи
Компания планирует создать сервис, схожий по функционалу с DropBox, рассчитанный на пользователей по всему миру (Европа, США, Азия и др.). Приложение состоит из набора микросервисов, каждый из которых реализует отдельный бизнес‑процесс (например, сервис оплаты, сервис управления пользователями, сервис работы с файлами и т.п.). Для хранения данных используется PostgreSQL, файлы размещаются в объектном хранилище совместимом с S3, а обмен сообщениями между микросервисами организован через очередь.
Исходный репозиторий содержит:
- 10 каталогов, в каждом из которых находится код отдельного микросервиса и Dockerfile для его сборки;
- файл docker‑compose.yml в корне, позволяющий запустить локальное окружение со всеми микросервисами, PostgreSQL, очередью и S3‑совместимым хранилищем.
Нефункциональные требования бизнеса:
- Высокая доступность – SLA не менее 99,99 %.
- Устойчивость к нагрузке – система должна выдерживать как постоянную высокую нагрузку, так и кратковременные пиковые нагрузки.
- Низкая задержка – требуется минимальная latency как внутри региона, так и для пользователей из разных регионов.
- Безопасность и конфиденциальность – защита данных от несанкционированного доступа.
- Экономия расходов – инфраструктура должна быть cost‑effective, без избыточных затрат.
- Failover и DR – при отказе целого дата‑центра или региона сервис должен оставаться доступным и сохранять целостность данных.
Ваша роль – руководитель DevOps‑команды. Требуется подготовить:
- Проект production‑окружения – предложить полную схему инфраструктуры, учитывающую все перечисленные требования. Явно указать используемые облачные сервисы, инструменты и подходы.
- Проект staging‑окружения – разработать вариант, максимально приближённый к production, но существенно дешевле. Описать, какие компоненты будут упрощены или исключены и почему.
- Управление инфраструктурой – выбрать методику и инструменты для автоматизации развертывания и поддержки инфраструктуры.
- Обратная связь – определить набор средств и практик, позволяющих разработчикам и бизнесу наблюдать за работой системы в разных средах и принимать решения по её оптимизации.
- Оценка производительности – описать подходы и метрики, которые помогут измерять эффективность использования серверных ресурсов, а также способы снижения задержек при работе с файлами.