Architettura di Cosmos DB

Sviluppare per Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Sviluppare per Azure Storage

Il problema

Problema di Cosmos DB

Sviluppare per Azure Storage

Cos’è Cosmos DB?

 

CosmosDB

  • Database NoSQL multi-modello e distribuito a livello globale.
  • NoSQL: archiviazione flessibile, simile a cartelle.
  • Supporta più API e tipi di dati.
  • Come un menu flessibile: scegli il “gusto” API:
    • SQL (Core) per documenti JSON.
    • MongoDB per sviluppatori Mongo.
    • Cassandra per dati wide‑column.
    • Gremlin per grafi.
    • Table API per key‑value.
Sviluppare per Azure Storage

Cosmos DB per sviluppatori

  • Progettato per gli sviluppatori.
  • Indicizzazione automatica: niente schema da gestire.
  • Query veloci.
  • Cinque livelli di consistenza: da Strong a Eventual.
  • Trade‑off tra prestazioni e consistenza.
    • Strong: tutti vedono subito lo stesso dato.
    • Eventual: tutti si allineano dopo.

 

Strong ed eventual consistency

Sviluppare per Azure Storage

Scalabilità e throughput (RU/s)

Modalità con capacità riservata

  • Request Units per second (RU/s) = valuta prestazionale di Cosmos DB.
  • Ogni read, write o query consuma RU/s.
  • Scegli provisioning fisso o autoscale.
Sviluppare per Azure Storage

Scalabilità e throughput (RU/s)

Scalabilità

  • Request Units per second (RU/s) = valuta prestazionale di Cosmos DB.
  • Ogni read, write o query consuma RU/s.
  • Scegli provisioning fisso o autoscale.
  • L’autoscale si adatta automaticamente alla domanda.
Sviluppare per Azure Storage

Scalabilità elastica e partizionamento

  • Cosmos DB scala tramite partizionamento.
  • Ogni contenitore usa una partition key.
  • La chiave raggruppa i dati correlati.
  • Esempio: Cipher Coffee usa /customerId per gli ordini.
  • Tutti gli ordini di un cliente stanno nella stessa partizione con /customerId come chiave.
  • Le query restano veloci anche con la crescita dei dati.
  • Hot partition: carico non uniforme che rallenta le prestazioni.

Scalabilità elastica e partizionamento

Sviluppare per Azure Storage

Distribuzione globale

  • Replica i dati in qualsiasi area Azure con facilità.
  • Spunta le caselle, senza configurazioni complesse.
  • Se un’area fallisce, il traffico viene reindirizzato automaticamente.
  • Niente downtime, nessuna perdita di dati.
  • Come un bar di riserva pronto a servire subito.

Distribuzione globale

Sviluppare per Azure Storage

Monitoraggio e ottimizzazione dei costi

  • Monitora le prestazioni nell’Azure Portal.
  • Vedi metriche come RU/s, latenza e request charge.
  • Come un cruscotto: vedi velocità e consumo.
  • Gli ingegneri di Cipher Coffee hanno analizzato queste metriche.
  • Hanno ridotto i costi regolando dinamicamente il throughput.

Monitoraggio

Sviluppare per Azure Storage

Ayo berlatih!

Sviluppare per Azure Storage

Preparing Video For Download...