Azure запускает глобально распределенную службу базы данных с несколькими моделями: Cosmos DB.

На прошлой неделе Microsoft объявила, что Azure Cosmos DB стала общедоступной, что должно коренным образом изменить способ создания приложений для облака.
Azure Cosmos DB — это первая глобально распределенная служба данных, которая позволяет эластично масштабировать пропускную способность и хранилище в любом количестве географических регионов, гарантируя при этом низкую задержку, высокую доступность и согласованность, что поддерживается наиболее полными соглашениями об уровне обслуживания в отрасли. Azure Cosmos DB создан для поддержки современных приложений Интернета вещей и мобильных приложений, а также будущего, требующего ИИ. — Дхарма Шукла, заслуженный инженер и генеральный директор, OSS Analytics и NoSQL

С помощью Azure Cosmos DB клиенты могут эластично (и независимо) масштабировать пропускную способность и хранилище во многих географических регионах, поддерживаемых корпорацией Майкрософт. Его функции делают его первой и единственной глобально распределенной службой баз данных, предлагаемой сегодня, которая предлагает комплексные SLA, которые охватывают четыре требования клиентов Microsoft:
- пропускная способность
- Задержка (99% процентиль)
- Доступность
- Последовательность
Azure Cosmos DB — это первая серверная служба, которая будет принимать множество различных моделей данных и популярных API-интерфейсов запросов, которые будут поддерживать большие объемы данных без каких-либо задержек или задержек управления схемой/индексом.
[tg_youtube video_id="aAy635iBB50"]
Вдохновение для Azure Cosmos DB
Корпорация Майкрософт отдает дань уважения эксперту по созданию Azure Cosmos DB доктору Лесли Лэмпорт. Лэмпорт — исследователь Microsoft, лауреат премии Тьюринга. В видео ниже он объясняет, что данные можно реплицировать, а копии можно распространять по всему миру. Таким образом, приложения могут быть настроены так, чтобы все пользователи оставались рядом с данными и сводили к минимуму беспокойство разработчиков, которым, возможно, придется беспокоиться о том, где находятся данные.
[tg_youtube video_id="Yfmw7swCtZs"]
История Azure Cosmos DB
Как мы тут оказались? В 2010 году Azure Cosmos DB получила кодовое название Project Florence, чтобы помочь решить многие болевые точки, с которыми разработчики сталкивались при работе с крупномасштабными приложениями Microsoft. Команда Microsoft поняла, что эта проблема касается не только их компании, поэтому в 2015 году разработчикам Azure стало доступно первое поколение этой технологии, известной как Azure DocumentDB. Благодаря отзывам разработчиков проект был значительно переработан с добавлением новых функций.
Введите Azure Cosmos DB.
Как Azure Cosmos DB трансформирует разработку облачных приложений
Microsoft считает, что Azure Cosmos DB, безусловно, изменит способ создания приложений для облака. Вот способы, которыми они видят это возможным.
- Простое создание глобально распределенных приложений. Глобальное распространение полностью готово к работе с Azure Cosmos DB. Чтобы добавить или удалить любой регион Azure для репликации базы данных, вам просто нужно щелкнуть мышью. Вот и все. Azure выполняет все остальное, беспрепятственно реплицируя данные.
- Эластичное масштабирование пропускной способности и хранилища в любой точке земного шара: администраторы могут эластично масштабировать от тысяч до сотен миллионов запросов в секунду по всему миру по требованию с помощью одного вызова API. Вы платите за необходимую пропускную способность и можете указать, хотите ли вы гранулярность как в секундах, так и в минутах, что помогает администраторам справляться с потенциальными пиками без избыточного выделения ресурсов.
- Создание приложений с высокой скоростью отклика. Как упоминалось ранее, с задержкой 99 % Azure Cosmos DB гарантирует задержку, исчисляемую единицами миллисекунд. Ядро Azure Cosmos DB оптимизировано для записи, структурировано журналом и не содержит защелок.
- Создание приложений, которые «всегда активны»: Microsoft гарантирует высокую доступность данных в каждом регионе и во всем мире. Таким образом, даже в случае какой-либо региональной катастрофы данные по-прежнему высокодоступны, и сложное перераспределение не требуется.
- Гибкие модели согласованности для каждого приложения. Существует пять четко определенных вариантов согласованности: строгая, с ограниченным устареванием, сеансовая, согласованный префикс и возможная. У вас есть возможность выбрать правильный вариант для вашего приложения.
- Быстрая итерация, не беспокоясь о схемах и индексах. Не нужно беспокоиться о схемах и индексах, поскольку механизм Azure Cosmos DB не зависит от схемы. Таким образом, при переносе схем нет простоев приложений, поскольку их не существует. Результат? Супер быстрые запросы.
- Использование правильной модели данных для вашего приложения. Azure Cosmos DB поддерживает практически любой тип модели данных. Запуск включает модели «ключ-значение», «документ» и «график», но движок является расширяемым и продолжит поддерживать новые типы моделей.
- Использование API по вашему выбору. Вместо повторного изучения какой-либо базы кода Azure Cosmos DB позволяет вам использовать инструменты и API, с которыми вы уже знакомы. Он изначально поддерживает диалект SQL DocumentDB, API MongoDB, API Gremlin (граф) и API-интерфейсы хранилища таблиц Azure. Другие популярные API будут добавлены в будущем.
- Ведущие в отрасли комплексные соглашения об уровне обслуживания: Azure Cosmos DB — это первая в отрасли глобально распределенная база данных, которая предлагает комплексные соглашения об уровне обслуживания с финансовой поддержкой, обеспечивающие высокую доступность, низкую задержку, согласованность и пропускную способность.
Цели разработки Azure Cosmos DB
Основываясь на скромном начале Project Florence, Azure Cosmos DB предназначалась для решения множества проблем.
- Предоставление клиентам возможности эластично масштабировать пропускную способность и хранилище по требованию по всему миру: гарантия была в пределах 5 секунд на 99-м процентиле с момента запроса до доставки.
- Предоставление клиентам возможности создавать критически важные приложения с высокой скоростью отклика. Таким образом, Azure Cosmos DB необходимо было обеспечить предсказуемую и гарантированную сквозную низкую задержку чтения и записи на уровне 99-го процентиля.
- Обеспечение постоянной работы системы: для этого требуется доступность на уровне 99,99 % независимо от количества регионов, выбранных разработчиками. Разработчики также получили возможность имитировать региональные сбои и отмечать регионы, связанные с их базой данных, в автономном режиме. Это проверяет сквозные свойства приложения.
- Предоставление разработчикам возможности писать правильные глобально распределенные приложения: предсказуемая и интуитивно понятная модель должна быть построена на согласованности данных.
- Предлагайте строгие, финансово подкрепленные всеобъемлющие соглашения об уровне обслуживания: вы платите за то, что вам нужно.
- Избавьте разработчиков от бремени управления схемой базы данных, индексами и предоставлением ресурсов: Microsoft признает, что это было головной болью.
- Встроенная поддержка нескольких моделей данных и популярных API-интерфейсов для доступа к данным: API-интерфейсы, открытые извне, и внутреннее представление данных должны быть эффективными.
- Работа с низкими затратами: сохраняйте высокую экономию для клиентов.
Дополнительные технические сведения об Azure Cosmos DB см. в этой статье высокого уровня.
Shutterstock