Slide 1

Slide 1 text

1 aMS Lausanne 5/04/2024 Préparez-vous à une virée intersidérale avec Azure Cosmos DB 󰳙 Sylvain Pontoreau Your photo

Slide 2

Slide 2 text

Merci à nos SPONSORS 2 Partenaire Diamant 💎

Slide 3

Slide 3 text

󰳙 Préparez-vous à une virée intersidérale avec Azure Cosmos DB

Slide 4

Slide 4 text

🖖 Hello! 🎪 Co-organisateur 📕 Auteur Microsoft Sylvain Pontoreau 󰳕 Je travaille avec

Slide 5

Slide 5 text

📖 Autopromotion

Slide 6

Slide 6 text

󰳙 Le sujet du jour

Slide 7

Slide 7 text

❓ CosmosDB c’est quoi ? Base de données Cloud Multi-modèle Globalement distribué Haute disponibilité SDK AI

Slide 8

Slide 8 text

❓ Qui l’utilise ?

Slide 9

Slide 9 text

● ⛽ Provisionnement : ○ Request Unit ○ Serverless ● 󰳘 Debug local = Emulator : ○ Application Windows ○ Docker Image (Windows & Linux) ☁ Base de données Cloud ● 🙅 On-premises

Slide 10

Slide 10 text

🌍 Hautement disponible et distribué Partition SLA Container

Slide 11

Slide 11 text

🗝 Partitionnement

Slide 12

Slide 12 text

⚙ Provisionnement - Request Unit ● Assignation des RUs : ○ Par base de données ○ Par container ● Dimensionnement automatique ● Comment choisir entre RUs et Serverless : https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-choose-offer

Slide 13

Slide 13 text

🌍 Globalement distribué ● 🌍 Redondance géographique ● ✏ Écriture multi-région

Slide 14

Slide 14 text

🌍 Globalement distribué

Slide 15

Slide 15 text

🎛 Consistence Strong Bounded staleness Session Consistent Prefix Eventual High availability Low consistency Data consistency: Write synchronously committed Writes propagation: Relatively freshness Monotonic: Read your own writes Low latency: Weakest form of consistency Never out of order: Order guarantees

Slide 16

Slide 16 text

󰳕 Les modèles Key-Value Column family Document Graph Relational

Slide 17

Slide 17 text

🧩 Les APIs SQL Mongo Table Gremlin Cassandra PostgreSQL

Slide 18

Slide 18 text

📤 Stream database Change feed ! Change Feed Event Stream Data

Slide 19

Slide 19 text

📤 Change feed use case

Slide 20

Slide 20 text

📤 Change feed mode Latest version All Updates Creates Deletes

Slide 21

Slide 21 text

📄 Document Account Database Container Items 👤Utilisateurs 🔒Permissions ⚙ Procédure ⚙ Déclencheur ⚙ Fonctions 📄 Documents

Slide 22

Slide 22 text

󰳕 SDK - Exemple en TypeScript const endpoint = "https://your-account.documents.azure.com"; const key = ""; const client = new CosmosClient({ endpoint, key }); const container = client.database("EventStore").container("EventStream"); await container.items.create({ streamId: "", createdAt: "", version: , payload: { //… } }); ● 🖊 Écriture

Slide 23

Slide 23 text

󰳕 SDK - Exemple en TypeScript const endpoint = "https://your-account.documents.azure.com"; const key = ""; const client = new CosmosClient({ endpoint, key }); const container = client.database("EventStore").container("EventStream"); const querySpec: SqlQuerySpec = { query: `SELECT eventStream.eventType, eventStream.payload, eventStream.version, FROM eventStream WHERE eventStream.streamId = @streamId ORDER BY eventStream.createdAt, eventStream.version`, parameters: [{ name: "@streamId", value: "a stream id" }] ] }; const { resources } = await container.items.query(querySpec).fetchAll(); ● 📖 Lecture

Slide 24

Slide 24 text

🧩 Intégration

Slide 25

Slide 25 text

🎨 Power Platform https://powerautomate.microsoft.com/en-us/connectors/details/shared_documentdb/azure-cosmos-db/

Slide 26

Slide 26 text

🎮 Démo

Slide 27

Slide 27 text

💁 Conclusion

Slide 28

Slide 28 text

❓ Questions

Slide 29

Slide 29 text

󰳙 Thanks!