Открыть сервис

MongoDB Atlas

MongoDB Atlas — это полностью управляемая облачная платформа для развёртывания и эксплуатации документоориентированной системы управления базами данных MongoDB. Платформа предоставляется по модели «База данных как услуга» (DBaaS) и позволяет разработчикам и администраторам создавать, масштабировать и администрировать кластеры MongoDB без необходимости управления физической или виртуальной инфраструктурой. MongoDB Atlas поддерживает развёртывание в публичных облачных провайдерах, таких как Amazon Web Services (AWS), Microsoft Azure и Google Cloud Platform (GCP), а также в частных и гибридных средах.

История

MongoDB Atlas был анонсирован компанией MongoDB Inc. в июне 2016 года на конференции MongoDB World. Первоначально продукт предлагал только базовые возможности развёртывания и управления кластерами MongoDB в облаке AWS. В последующие годы функциональность платформы значительно расширилась. В 2017 году была добавлена поддержка Microsoft Azure, а в 2018 году — Google Cloud Platform. В 2019 году MongoDB Inc. представила сервис MongoDB Atlas Data Lake, позволяющий выполнять запросы к данным, хранящимся в объектных хранилищах (например, Amazon S3), используя синтаксис MongoDB. В 2020 году была запущена функция MongoDB Atlas Search, основанная на поисковом движке Apache Lucene, а также сервис MongoDB Atlas Serverless, позволяющий создавать бессерверные кластеры с автоматическим масштабированием. В 2021 году появилась поддержка мультиоблачных развёртываний, а также интеграция с Apache Kafka через MongoDB Atlas Stream Processing. В 2022 году была анонсирована возможность развёртывания в частных облаках (MongoDB Atlas for Government) и на локальных серверах (MongoDB Atlas on-premises). К 2024 году MongoDB Atlas стал основным продуктом компании, на который приходится более 70 % выручки MongoDB Inc.

Архитектура и ключевые компоненты

Кластеры и репликация

MongoDB Atlas позволяет создавать кластеры MongoDB, состоящие из одного или нескольких узлов (replica sets). Каждый кластер включает в себя первичный узел (primary), который обрабатывает все операции записи, и один или несколько вторичных узлов (secondary), которые реплицируют данные с первичного. В случае выхода из строя первичного узла автоматически выбирается новый первичный узел из числа вторичных, что обеспечивает высокую доступность. Пользователь может выбирать количество узлов (от 3 до 7) и их географическое размещение.

Типы развёртывания

MongoDB Atlas предлагает несколько типов развёртывания, различающихся по производительности, стоимости и уровню управления:

  • Выделенные кластеры (Dedicated clusters): обеспечивают изолированные вычислительные ресурсы (CPU, RAM, хранилище). Подходят для production-сред с высокими требованиями к производительности и безопасности. Доступны с различными уровнями производительности (M10, M20, M30, M40, M50, M60 и выше).
  • Общие кластеры (Shared clusters): используют общие ресурсы с другими пользователями. Подходят для разработки, тестирования и небольших приложений с низкой нагрузкой. Доступны с уровнями M0 (free tier), M2 и M5.
  • Бессерверные кластеры (Serverless instances): автоматически масштабируются в зависимости от нагрузки, не требуют ручного управления вычислительными ресурсами. Оплата производится только за фактически использованные ресурсы (операции чтения/записи и объём хранимых данных). Подходят для приложений с непредсказуемой или переменной нагрузкой.
  • Локальные развёртывания (Atlas on-premises): позволяют развернуть платформу управления MongoDB на собственных серверах организации, сохраняя при этом доступ к функциям управления и мониторинга через облачную консоль.

Хранилище данных

MongoDB Atlas использует собственный движок хранения WiredTiger, который обеспечивает сжатие данных, контроль конкурентного доступа (MVCC) и поддержку транзакций ACID. Пользователи могут выбирать тип хранилища: стандартное (SSD) или оптимизированное по производительности (Provisioned IOPS). Объём хранилища можно масштабировать динамически, без остановки работы кластера.

Сеть и безопасность

MongoDB Atlas предоставляет несколько уровней сетевой безопасности:

  • IP-белые списки: ограничение доступа к кластеру по IP-адресам.
  • VPC Peering: создание частного сетевого соединения между кластером и виртуальной частной сетью (VPC) в облачном провайдере.
  • Private Endpoints: использование частных конечных точек для доступа к кластеру без прохождения через публичный интернет.
  • Шифрование: шифрование данных при передаче (TLS/SSL) и при хранении (AES-256). Поддерживается управление ключами шифрования (CMK) через AWS KMS, Azure Key Vault и GCP Cloud KMS.
  • Аутентификация и авторизация: поддержка аутентификации по паролю, X.509-сертификатам, LDAP и AWS IAM. Ролевая модель доступа (RBAC) позволяет назначать пользователям и приложениям различные уровни прав.

Основные функции и сервисы

MongoDB Atlas Search

MongoDB Atlas Search — это встроенная функция полнотекстового поиска, основанная на Apache Lucene. Она позволяет выполнять сложные поисковые запросы (нечёткий поиск, автодополнение, поиск по синонимам, ранжирование по релевантности) непосредственно в базе данных, без необходимости использования внешних поисковых систем (например, Elasticsearch). Поисковые индексы создаются и управляются через консоль Atlas или API.

MongoDB Atlas Data Lake

MongoDB Atlas Data Lake предоставляет возможность выполнять запросы к данным, хранящимся в объектных хранилищах (Amazon S3, Azure Blob Storage, Google Cloud Storage), используя синтаксис MongoDB (MQL). Данные при этом не копируются в кластер MongoDB, а остаются в исходном хранилище. Поддерживаются форматы JSON, BSON, Parquet, Avro и CSV. Это позволяет анализировать большие объёмы исторических данных без необходимости их загрузки в базу данных.

MongoDB Atlas Stream Processing

MongoDB Atlas Stream Processing (ранее — Atlas Streams) — это сервис для обработки потоковых данных в реальном времени. Он интегрируется с Apache Kafka (включая Amazon MSK, Confluent Cloud и Azure Event Hubs) и позволяет выполнять преобразования, агрегации и фильтрацию данных на лету, используя конвейеры агрегации MongoDB. Результаты обработки могут быть записаны обратно в коллекции MongoDB или отправлены в другие системы.

MongoDB Atlas Triggers

Atlas Triggers — это механизм, позволяющий автоматически выполнять пользовательские функции (написанные на JavaScript или TypeScript) в ответ на события в базе данных (вставка, обновление, удаление документов) или по расписанию (cron-триггеры). Функции выполняются в бессерверной среде (Atlas Functions), что позволяет реализовать бизнес-логику без необходимости развёртывания отдельных серверов.

MongoDB Atlas Charts

MongoDB Atlas Charts — это встроенный инструмент визуализации данных, позволяющий создавать интерактивные дашборды и диаграммы на основе данных, хранящихся в кластере MongoDB. Charts поддерживает различные типы визуализаций (столбчатые, линейные, круговые, карты, таблицы) и позволяет встраивать их в веб-приложения через iframe или API.

MongoDB Atlas Online Archive

MongoDB Atlas Online Archive — это функция автоматического перемещения редко используемых данных (cold data) из кластера MongoDB в объектное хранилище (например, Amazon S3) с сохранением возможности выполнения запросов к этим данным через конвейеры агрегации. Это позволяет снизить затраты на хранение данных, не теряя к ним доступа.

Управление и мониторинг

MongoDB Atlas предоставляет веб-консоль (Atlas UI) и API для управления всеми аспектами работы кластеров. Основные возможности управления включают:

  • Мониторинг производительности: отображение метрик (загрузка CPU, использование памяти, операции ввода-вывода, задержки запросов, количество подключений) в реальном времени и за исторический период.
  • Алерты: настройка уведомлений по электронной почте, SMS, Slack или PagerDuty при достижении заданных пороговых значений метрик.
  • Performance Advisor: автоматический анализ медленных запросов и рекомендации по созданию индексов для их оптимизации.
  • Real-Time Performance Panel: отображение текущих операций в базе данных с возможностью их завершения (kill operations).
  • Логирование: сбор и хранение логов аудита, ошибок и медленных запросов.
  • Бэкапы: автоматическое создание резервных копий (snapshot-based) с возможностью восстановления на любой момент времени (point-in-time recovery). Бэкапы хранятся в облачном хранилище.

Тарифные планы и стоимость

MongoDB Atlas предлагает несколько тарифных планов, различающихся по функциональности и стоимости:

ПланОписаниеБесплатный уровеньПодходит для
Free (M0)Общий кластер с 512 МБ хранилища, без репликацииДаРазработка, обучение, прототипирование
ServerlessБессерверное развёртывание с оплатой по факту использованияНет (оплата за операции)Приложения с переменной нагрузкой
Dedicated (M10–M700+)Выделенные кластеры с различными уровнями производительностиНетProduction-среды, высоконагруженные приложения
Atlas for GovernmentВыделенные кластеры в изолированных облачных средах для государственных организаций (США)НетГосударственные и регулируемые отрасли

Стоимость складывается из нескольких компонентов: вычислительные ресурсы (vCPU, RAM), объём хранилища, сетевой трафик (исходящий), дополнительные сервисы (Search, Data Lake, Stream Processing, Online Archive). MongoDB Inc. предоставляет калькулятор стоимости на своём веб-сайте.

Критика и ограничения

Несмотря на широкую популярность, MongoDB Atlas имеет ряд критических замечаний и ограничений:

  • Зависимость от провайдера (vendor lock-in): хотя MongoDB Atlas поддерживает несколько облачных платформ, перенос данных между ними или на локальную инфраструктуру может быть сложным и дорогостоящим.
  • Стоимость: при больших объёмах данных и высокой нагрузке стоимость использования MongoDB Atlas может значительно превышать стоимость самостоятельного развёртывания MongoDB на собственных серверах.
  • Ограничения бесплатного уровня: кластер M0 не поддерживает репликацию, что делает его непригодным для production-сред. Также на нём недоступны многие функции (Search, Data Lake, Triggers).
  • Производительность: в некоторых сценариях (например, при работе с очень большими документами или сложными агрегациями) производительность может быть ниже, чем у специализированных реляционных баз данных (например, PostgreSQL).
  • Сложность администрирования: несмотря на автоматизацию, некоторые задачи (например, настройка сложных индексов, оптимизация запросов, управление шардированием) требуют глубоких знаний MongoDB и могут быть нетривиальными.

Применение

MongoDB Atlas используется в различных отраслях и сценариях:

  • Веб- и мобильные приложения: в качестве основной базы данных для хранения пользовательских данных, контента, сессий.
  • Интернет вещей (IoT): для сбора и хранения данных с датчиков и устройств.
  • Каталоги товаров: для управления ассортиментом, ценами, описаниями в интернет-магазинах.
  • Системы управления контентом (CMS): для хранения структурированного и неструктурированного контента.
  • Аналитика и отчётность: в сочетании с Atlas Data Lake и Atlas Charts для анализа больших объёмов данных.
  • Игровая индустрия: для хранения профилей игроков, игровых состояний, внутриигровых транзакций.

Источники

  • Официальная документация MongoDB Atlas (mongodb.com/docs/atlas)
  • MongoDB Inc. — Годовой отчёт (Form 10-K) за 2023 год
  • MongoDB World 2016 — Анонс MongoDB Atlas
  • Технические блоги MongoDB Inc. (mongodb.com/blog)
  • Статья «MongoDB Atlas: A Fully Managed Cloud Database» на сайте InfoQ (2016)
  • Документация Apache Lucene и Apache Kafka

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →