Аутентификация и безопасность
- Включи аутентификацию и авторизацию, чтобы ограничить доступ к базе данных
- Используй TLS/SSL для шифрования всех клиентских и репликационных соединений
- Применяй принцип наименьших привилегий при назначении ролей пользователям
Параметры целостности данных
- Установи подходящий write concern для управления подтверждением операций записи
- Настрой read concern для обеспечения консистентности чтения данных
- Эти параметры уравновешивают производительность и долговечность данных в зависимости от твоих требований
Репликация и Oplog
- Настрой адекватный размер oplog для поддержки лага репликации и восстановления на момент времени
- Больший oplog даёт больше времени secondary-узлам на синхронизацию после простоя
Хранилище и память
- Размер WiredTiger cache должен быть подходящим — по умолчанию используется 50% доступной RAM минус 1 ГБ
- Правильный размер кэша критичен для производительности чтения/записи в production
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4
Мониторинг и алерты
- Настрой инструменты мониторинга, такие как
MongoDB Atlas, Cloud Manager или сторонние решения вроде Prometheus
- Сконфигурируй алерты для метрик, включая использование CPU, лаг репликации и количество соединений
Стратегия резервного копирования
- Реализуй надёжную стратегию резервного копирования, используя инструменты вроде
mongodump, Ops Manager или снимки файловой системы
- Регулярно тестируй восстановление из резервных копий, чтобы проверить их целостность
Управление логами
- Настрой ротацию логов, чтобы предотвратить исчерпание дискового пространства
- Убедись, что логи захватывают достаточно деталей для аудита и отладки, но без излишней многословности
Ключевой вывод
Production-развёртывания MongoDB требуют многоуровневого подхода — сочетания безопасности, настройки производительности, высокой доступности и операционной готовности для обеспечения стабильной и надёжной среды.