«Управляемый» (managed) сервис — это когда вы пользуетесь технологией, а её обслуживанием занимается провайдер. Своя база на сервере — это вы сами ставите PostgreSQL, настраиваете копии, по ночам чините. Управляемая база — та же PostgreSQL, но копии, замену сломанного узла и обновления делает Google. Вы платите за это деньгами, но не временем и не бессонными ночами.

Главная ценность облака для backend-разработчика — не виртуальные машины, а именно управляемые данные: базы, кэши, очереди и брокеры. Эта статья — карта соответствий «то, что вы знаете по своему серверу → как это называется в GCP», и честный список того, что managed-сервис за вас не делает.

Cloud SQL

Cloud SQL — реляционные базы под управлением Google: PostgreSQL, MySQL и SQL Server. Cloud SQL for PostgreSQL — тот же PostgreSQL, только вокруг него автоматика: резервные копии с восстановлением на момент в прошлом, конфигурация высокой доступности с резервом в другой зоне, обновления версий, реплики для чтения. Аналог RDS в AWS.

Главное для новичка: managed-база снимает с вас эксплуатацию железа, но не проектирование данных. Она спасёт от сгоревшего диска, но не от запроса SELECT без индекса, перебирающего миллион строк. Схема, индексы, блокировки, безопасные миграции, тюнинг запросов — по-прежнему ваша работа.

Подключаются к Cloud SQL не по внешнему IP, а через Cloud SQL-коннектор (или Auth Proxy) — прослойку, которая устанавливает защищённое соединение по правам сервисного аккаунта, без пароля в открытом виде и без публичного адреса у базы. Для нагрузок, которым мало обычного PostgreSQL, есть AlloyDB — PostgreSQL-совместимая база Google с повышенной производительностью.

Memorystore

Кэш — быстрое временное хранилище, куда кладут уже посчитанный результат, чтобы не считать заново. Memorystore — управляемый Redis (а также Valkey и Memcached): кластер, реплики и переключение при сбое настраивает облако. Аналог ElastiCache в AWS.

Применяют как обычный Redis: кэширование ответов с временем жизни (TTL), распределённая блокировка, ограничение частоты запросов. Главное правило новичку: кэш — это не база данных. Данные, потеря которых недопустима (заказы, платежи), в нём не хранят: кэш может сбросить содержимое в любой момент.

Pub/Sub

Pub/Sub — управляемый сервис обмена сообщениями, который в GCP закрывает сразу две роли: и очередь задач, и поток событий. Устроен по модели «публикация-подписка»: издатель шлёт сообщение в тему (topic), а получают его все подписки (subscriptions) этой темы — одну и ту же тему могут независимо читать несколько потребителей.

Это развязывает отправителя и получателя: приложение публикует событие и идёт дальше, а обработчики разгребают их в своём темпе. Так сглаживают всплески, не теряют задачи и строят событийные системы. Pub/Sub часто служит триггером для Cloud Functions и Cloud Run. Для задач, где нужен именно протокол Apache Kafka, есть отдельный Managed Service for Apache Kafka; устройство самого Kafka разбирает раздел Kafka.

Управляемый против своего: как выбирать

УправляемыйСвой на сервере
ЭксплуатацияКопии, переключение, обновления — облакоВсё ваше, включая три часа ночи
ЦенаНадбавка к стоимости железаДешевле железом, дороже людьми
КонтрольВерсии и параметры из списка облакаЛюбые расширения и тонкая настройка

Разумное правило: компоненты с состоянием (базы, кэши, очереди) берём управляемыми, пока нет конкретной причины делать иначе. Прежде чем самому обслуживать базу при доступном managed-сервисе, честно ответьте, на что команда потратит время, которое сервис ей освобождает.

Где это применяется

Управляемые данные — костяк почти любого сервиса: база под основные данные, кэш перед ней, Pub/Sub для фоновых задач и событий. Всё это живёт во внутренней сети без внешних адресов и доступно приложению через привязанный сервисный аккаунт.

Типичные ошибки новичков:

  • хранят важные данные в кэше — теряют при сбросе;
  • подключаются к Cloud SQL по внешнему IP вместо коннектора — открывают базу наружу;
  • берут свой сервер там, где хватило бы managed;
  • выедают лимит соединений к базе без пулера.

Что учить дальше: когда нужна документная или глобально распределённая база — Firestore и другие NoSQL; файлы — Cloud Storage; как обращаться к сервисам из кода — GCP из Spring Boot. Та же карта в AWS — управляемые данные в AWS.