Архітектура Cosmos DB

Розробка для Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Розробка для Azure Storage

Проблема

Проблема Cosmos DB

Розробка для Azure Storage

Що таке Cosmos DB?

 

CosmosDB

  • Багатомодельна, глобально розподілена NoSQL-база даних.
  • NoSQL — гнучке зберігання, схоже на папки.
  • Підтримує кілька API та типів даних.
  • Як гнучке меню — оберіть свій «смак» API:
    • SQL (Core) для документів JSON.
    • MongoDB для розробників Mongo.
    • Cassandra для широкостовпцевих даних.
    • Gremlin для графових зв'язків.
    • Table API для ключ-значення.
Розробка для Azure Storage

Cosmos DB для розробників

  • Створено з урахуванням потреб розробників.
  • Автоматична індексація — без керування схемою.
  • Швидкі запити.
  • П'ять рівнів узгодженості: від Strong до Eventual.
  • Компроміс між продуктивністю та узгодженістю.
    • Strong — усі одразу чують одне й те саме.
    • Eventual — усі доженуть пізніше.

 

Сильна та остаточна узгодженість

Розробка для Azure Storage

Масштабування та пропускна здатність (RU/s)

Provisioned mode

  • Request units per second (RU/s) = «валюта» продуктивності Cosmos DB.
  • Кожне читання, запис або запит витрачає RU/s.
  • Оберіть фіксоване виділення або автмасштаб.
Розробка для Azure Storage

Масштабування та пропускна здатність (RU/s)

Scaling

  • Request units per second (RU/s) = «валюта» продуктивності Cosmos DB.
  • Кожне читання, запис або запит витрачає RU/s.
  • Оберіть фіксоване виділення або автмасштаб.
  • Автомасштаб підлаштовується під попит.
Розробка для Azure Storage

Еластичний масштаб і партиціювання

  • Cosmos DB масштабується через партиціювання.
  • Кожен контейнер має ключ партиції.
  • Ключ групує пов'язані дані.
  • Приклад: Cipher Coffee використовує /customerId для замовлень.
  • Усі замовлення клієнта зберігаються в одній партиції, якщо ключ — /customerId.
  • Запити лишаються швидкими навіть при зростанні даних.
  • Гаряча партиція: нерівномірне навантаження, що гальмує продуктивність.

Еластичний масштаб і партиціювання

Розробка для Azure Storage

Глобальний розподіл

  • Легко реплікуйте дані в будь-який регіон Azure.
  • Достатньо відмітити прапорці — без складного налаштування.
  • Якщо один регіон відмовляє, трафік автоматично перенаправляється.
  • Без простоїв і втрати даних.
  • Наче запасна кав'ярня, що миттєво приймає клієнтів.

Глобальний розподіл

Розробка для Azure Storage

Моніторинг і оптимізація витрат

  • Відстежуйте продуктивність в Azure Portal.
  • Дивіться метрики RU/s, затримку й вартість запиту.
  • Як панель приладів авто — видно швидкість і витрати.
  • Інженери Cipher Coffee проаналізували ці метрики.
  • Зменшили витрати, динамічно коригуючи пропускну здатність.

Моніторинг

Розробка для Azure Storage

Давайте потренуємось!

Розробка для Azure Storage

Preparing Video For Download...