Какая/какие базы данных были на прошлом проекте?

«Какая/какие базы данных были на прошлом проекте?» — вопрос из категории Базы данных, который задают на 22% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

На последнем проекте архитектура данных была гибридной, и с DevOps-стороны я обеспечивал работу следующих СУБД:

1. PostgreSQL (основная, реляционная):

  • Роль: Хранение всех критичных транзакционных данных пользователей и заказов.
  • Инфраструктура: Развернут в облаке AWS как управляемый сервис Amazon RDS. Использовалась конфигурация с Multi-AZ для автоматической отказоустойчивости.
  • DevOps-задачи:
    • Настройка автоматических снапшотов и Point-in-Time Recovery (PITR) через возможности RDS.
    • Управление доступом через Security Groups и IAM-роли.
    • Мониторинг метрик (CPU, Connections, Disk Queue Depth) через CloudWatch и кастомные дашборды в Grafana.
    • Организация миграций схемы БД через инструменты типа Flyway, интегрированные в пайплайн CI/CD.

2. Redis (кэширующая и для очередей):

  • Роль: Кэш сессий и результатов тяжелых запросов, бэкенд для Celery.
  • Инфраструктура: Развернут как ElastiCache Redis в кластерном режиме.
  • DevOps-задачи: Настройка автоматической замены нод, мониторинг попаданий в кэш (hit ratio) и использования памяти.

3. Amazon DynamoDB (NoSQL для высоконагруженных операций):

  • Роль: Хранение данных игровых сессий и событий телеметрии, где требовалась крайне низкая задержка и высокая пропускная способность.
  • DevOps-задачи: Настройка автоскейлинга пропускной способности (RCU/WCU), проектирование ключей партиционирования для равномерного распределения нагрузки, экспорт данных в S3 для аналитики.

Общая стратегия: Использование управляемых сервисов (RDS, ElastiCache, DynamoDB) позволило сосредоточиться на настройке, мониторинге и оптимизации, а не на администрировании ОС и установке СУБД.