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

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

Azure Database for PostgreSQL

Azure Database for PostgreSQL (вариант Flexible Server) — тот же PostgreSQL, только вокруг него автоматика: резервные копии с восстановлением на момент в прошлом, зоно-избыточная высокая доступность, обновления версий в заданное окно. Аналог RDS в AWS.

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

Грабли, на которые наступают почти все, — лимит соединений: у базы есть максимум одновременных подключений, и десяток приложений со своими пулами выедают его незаметно. Лечится дисциплиной размеров пулов и встроенным пулером (PgBouncer). Рядом в семействе — управляемый MySQL и Azure SQL Database (управляемый SQL Server); модель у всех одинаковая.

Azure Cache for Redis

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

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

Service Bus и Storage Queues

Для очередей в Azure два инструмента:

  • Storage Queues — простая очередь: положить задачу, забрать задачу. Годится для базовой разгрузки.
  • Service Bus — полноценный брокер с очередями и темами (topics): темы дают модель «публикация-подписка», когда одно сообщение получают несколько независимых подписчиков; плюс упорядочивание, дедупликация, транзакции. Это выбор для серьёзной обработки сообщений.

Очередь развязывает отправителя и получателя: приложение кладёт задачу и идёт дальше, а обработчик разгребает её в своём темпе. Так сглаживают всплески и не теряют задачи при недоступности обработчика. Service Bus часто служит триггером для Azure Functions.

Event Hubs

Когда нужна не очередь задач, а поток событий, который читают несколько независимых потребителей и перечитывают историю, берут Event Hubs — сервис потоковой передачи, совместимый с протоколом Apache Kafka. Аналог MSK в AWS. Разницу между очередью и брокером-логом и устройство Kafka разбирает раздел Kafka.

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

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

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

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

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

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

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

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