Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsoft Azure <3 Open Source Tech

Microsoft Azure <3 Open Source Tech

> Slides of my session at the Global Azure Bootcamp 2019 in Linz, Austria

https://coding-club-linz.github.io/global-azure-bootcamp-2019/

Over the last few years, Microsoft has time and again proven the high priority given to open source technologies, especially in different Azure Cloud Computing Services.

A brief introduction will show the key aspects of Azure Event Hubs and Azure Cosmos DB. Apart from the standard operation, alternative APIs are the focus of this session, which should allow for these two Azure services a seamless integration or a "drop-in" replacement to very popular open source projects.

While Azure Event Hubs offers an Apache Kafka-compliant API, Azure CosmosDB can also be used in a MongoDB-compatible variant. Based on simple use cases and practical live demos, these possibilities are discussed.

> Folien meiner Session am Global Azure Bootcamp 2019 in Linz, Österreich

https://coding-club-linz.github.io/global-azure-bootcamp-2019/

Über die letzten Jahre hat Microsoft stets aufs Neue bewiesen, welchen hohen Stellenwert Open Source Technologien insbesondere auch in unterschiedlichen Azure Cloud Computing Services eingeräumt bekommen.

Im Rahmen einer kurzen Einführung werden zunächst die wichtigsten Aspekte von Azure Event Hubs sowie Azure CosmosDB vorgestellt. Abseits vom Standard Betrieb liegen alternative APIs im Fokus dieser Session, welche für diese beiden Azure Services eine nahtlose Integration bzw. einen “Drop-In” Ersatz zu sehr populären Open Source Projekten ermöglichen sollen.

Während Azure Event Hubs eine zu Apache Kafka kompatible API offeriert, kann Azure CosmosDB auch in einer MongoDB-kompatiblen Variante genutzt werden. Anhand einfacher Use-Cases und praktischer Live-Demos werden diese Möglichkeiten diskutiert.

Hans-Peter Grahsl

April 27, 2019
Tweet

More Decks by Hans-Peter Grahsl

Other Decks in Programming

Transcript

  1. $ whoami • Hans-Peter Grahsl • living & working in

    Graz • technical trainer at • independent engineer & consultant • associate lecturer • " irregular conference speaker @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 9
  2. Application Needs ? • "It depends" ! • plenty of

    pieces & components • irrespective of concrete use cases • two architectural pieces... @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 10
  3. Cosmos DB • global distribution • high availability & elastic

    scaling • multi-model & native NoSQL APIs • consistency choices • leading security, compliance & SLAs @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 16
  4. Multi-Model • keys + values • documents • column families

    • graphs @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 17
  5. Native API Support • SQL • Table Storage • MongoDB

    • Cassandra • Gremlin @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 18
  6. Throughput Provisioning • request units (RUs) • abstract performance metric

    • combination of CPU + Memory + IOPS • backed by SLAs @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 19
  7. Azure Docs on RUs "The cost of all database operations

    is normalized by Azure Cosmos DB and is expressed in terms of Request Units (RUs). The cost to read a 1-KB item is 1 Request Unit (1 RU) and minimum RUs required to consume 1 GB of storage is 40." @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 21
  8. Measure via API • write operation consumed ??? RUs •

    given 1000 provisioned RUs at most ☛ 1000 ÷ 20.19 ≅ 49 docs/sec • no parallel activity considered @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 24
  9. Measure via API • read operation consumed ??? RUs •

    given 1000 provisioned RUs at most ☛ 1000 ÷ 3.11 ≅ 321 reads/sec • no parallel activity considered @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 25
  10. Influences on RUs • indexing • property count • consistency

    level • query patterns • scripts ...and any other concurrent operation @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 26
  11. Cosmos DB for MongoDB API • native implementation • wire

    protocol compatibility • transparent re-use (code + tools) • migration benefits: in both ways @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 27
  12. Important Note • feature support is limited of course •

    carefully check what does (NOT) work • wire protocol versions: 3.2 GA, 3.4 preview @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 29
  13. Currently Missing Out On... • powerful operators from 3.2 +

    3.4 - $graphLookup, $facet, $bucket(Auto) - $reduce, $zip, $switch, $replaceRoot, ... • great features & major advances from 3.6 + 4.0 - views, change streams, - type conversions, schema validation, - multi-element array updates, array filters, - sessions & transactions, ... @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 33
  14. Event Hubs • distributed event ingestion platform • decouple producers

    ⬌ consumers • source for stream processing • high availability & scalability • fully-managed @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 35
  15. Event Hubs for Apache Kafka • overlay on top of

    Event Hubs • binary compatible with Kafka 1.0+ • transparent re-use (code + tools) • migration benefits: in both ways @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 41
  16. The Promise... "You update the connection string in configurations to

    point to the Kafka endpoint exposed by your event hub instead of pointing to your Kafka cluster. Then, you can start streaming events from your applications that use the Kafka protocol into Event Hubs." @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 42
  17. Unsupported Kafka Features • idempotent producers & transactions • message

    compression • size-based retention or log compaction • parition resize for existing topics • HTTP Kafka API support • Kafka Streams & KSQL @hpgrahsl | #Azure @GlobalAzure, 27th April 2019, Linz - Austria 44
  18. THANK YOU Q & A ? https://bit.ly/2W7KGn1 @hpgrahsl | #Azure

    @GlobalAzure, 27th April 2019, Linz - Austria 46