advanced
Cloud SQL
Managed PostgreSQL, MySQL или SQL Server: бэкапы, реплики, connection pooling, maintenance и приватная сеть.
Cloud SQL — managed PostgreSQL, MySQL или SQL Server с автоматическими бэкапами, патчами, репликами и private IP. Node.js-сервисы обычно ходят через pooler: serverless и autoscale открывают много коротких соединений.
import pg from 'pg';
const pool = new pg.Pool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: 'app',
max: 10,
idleTimeoutMillis: 30_000,
});
| Риск | Практика | |------|----------| | Лимит соединений | Pool в приложении или Auth Proxy / PgBouncer | | Failover | Regional HA vs zonal instance | | Миграции | CI, обратимо совместимые шаги | | Секреты | Secret Manager, не в образе |
Проверьте restore, индексы и maintenance windows до того, как полагаться на «HA из коробки».
На интервью: pooling с Cloud Run; read replica и replication lag; private IP vs authorized networks; PITR и тест restore.
Типовые ошибки: соединение на каждый запрос без pool; миграции ORM с блокировкой больших таблиц; чтение с replica как strongly consistent.
Компромисс — меньше DBA-рутины против лимитов соединений, меньше tuning и vendor-specific failover.
Чеклист:
- Pool соединений на каждом tier Node.js.
- Private IP и DB-пользователи с минимальными правами.
- Обратимые миграции и мониторинг при deploy.
- Регулярный тест restore из бэкапа.