advanced
Managed databases
Выбирайте managed БД под бэкапы, патчи, реплики, failover, scaling, лимиты соединений и операционную ответственность.
Managed databases (RDS, Cloud SQL, Azure SQL, PlanetScale-подобные сервисы) берут на себя patching, backups, failover и replication, а команда приложения отвечает за schema, queries, indexes, connection pooling и стратегию миграций. В Node.js используйте `pg`, Prisma или Drizzle с лимитами pool под `max_connections` инстанса.
| Решение | Вопрос | |---------|--------| | Engine | Postgres vs MySQL vs serverless SQL | | HA | Multi-AZ, read replicas, RPO/RTO | | Scaling | Vertical tier vs read replicas vs sharding | | Access | Private VPC, IAM auth, rotation |
Миграции в CI с review SQL; раз в квартал тест restore из backup. Connection poolers (PgBouncer, RDS Proxy) при множестве коротких serverless invocations к БД.
На интервью: поведение failover, lag read replica, connection storms от Lambda, retention backup и когда managed NoSQL лучше SQL.
Типовые ошибки: нет indexes на production-scale таблицах; ORM N+1 под нагрузкой; файлы в BLOB-колонках; миграции без стратегии lock timeout.
Компромисс — меньше ops toil против vendor lock-in, стоимости tier и меньшего контроля low-level tuning, чем у self-hosted Postgres.
Чеклист:
- Размер connections под poolers и serverless bursts.
- Автоматические backups и тест restore.
- Index и explain медленных queries на staging.
- Отдельная migration role от runtime app role.