Slide 1

Slide 1 text

Auf ins Blaue: Azure Cloud Services für Java-Entwickler – ein persönlicher Überblick Christian Weyer @christianweyer CTO

Slide 2

Slide 2 text

2 § Co-founder, co-owner and CTO at Thinktecture AG § Focus on § Mobile & web-based application architectures § Interoperability, cross-device § Pragmatic end-to-end solutions § Cloud-native architectures § Microsoft MVP for ASP.NET (Architecture) ASPInsider, AzureInsider § Google GDE for Web Technologies § [email protected] § ! @christianweyer Christian Weyer Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 3

Slide 3 text

3 § Azure Cloud services for Java developers & architects – by a non-Java guy § This is a highly filtered view! § Storage & Databases § Compute § PaaS § CaaS § FaaS § Communication & Messaging § Special guest: Event-driven Serverless Architectures Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Our Journey through the Cloud

Slide 4

Slide 4 text

4 The other Cloud Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 5

Slide 5 text

5 § Why Azure? § Look beyond one’s own nose § Microsoft has always been strong in the enterprise § It is no longer “Windows Azure” § >50% of VMs running on Linux (increasing) § Strong developer tooling § VS Code, anyone? § Breadth & depth offerings § https://azureinteractives.azurewebsites.net/Azure101Cards § Very broad availability worldwide Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Azure Cloud https://www.cbronline.com/news/aws-results-azure

Slide 6

Slide 6 text

https://azure.microsoft.com/en-us/global-infrastructure/regions/ Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 7

Slide 7 text

7 Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue IaaS

Slide 8

Slide 8 text

8 Storage & Databases Data in Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 9

Slide 9 text

9 § Three families of data services § Storage § SQL § NoSQL Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Storing and Managing Data in Azure

Slide 10

Slide 10 text

10 § Blob § Highly scalable storage for arbitrary data § Can host static websites § Integrated with Event Grid § Files: fully managed cloud file shares § Sync § SMB, HTTPS § Table § Very simple schemaless table storage § Highly scalable § Needs thorough upfront design of data structures Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Azure Storage

Slide 11

Slide 11 text

11 § Azure SQL Database – aka SQL Server* § Azure Database for MySQL § Azure Database for PostgreSQL § Azure Database for MariaDB Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick SQL Databases-as-Service

Slide 12

Slide 12 text

12 § Globally distributed, elastically scalable § Fully managed by Azure § But not yet fully automatically scaling § Pricing not (yet?) suitable for low-entry projects § Multi-model database § Key-value, document, graph § Multiple APIs § DocumentDB, with SQL & JS APIs § MongoDB API § Cassandra API § Table Storage API § Graph Database with Gremlin API Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Cosmos DB: A NoSQL Database with Many Faces Auf ins Blaue

Slide 13

Slide 13 text

13 § Building event-driven architectures with Cosmos DB § Listening to Azure Cosmos DB collection for any changes § Inserts, updates, soft-deletes § Subscribe to collection changes Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Cosmos DB Change Feed Auf ins Blaue

Slide 14

Slide 14 text

14 Compute Code in Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 15

Slide 15 text

15 § We can choose from a continuum § VM ➔ § Containers ➔ § Orchestrators ➔ § PaaS ➔ § Serverless Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Evolution to Cloud Compute Continuum PaaS IaaS On-Premises Serverless

Slide 16

Slide 16 text

16 § Fully managed web apps platform § Windows § Linux § Web, mobile, and API apps § .NET, .NET Core § Java § Ruby § Node.js § PHP § Python § Docker § Enterprise-ready option available § ASE: fully isolated, compliant, and dedicated environment Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick PaaS: Azure App Service

Slide 17

Slide 17 text

17 § Docker is everywhere in Azure - literally § Azure Container Registry § Azure App Service § Azure Container Instances § Azure Kubernetes Services (AKS) § Azure Service Fabric § Azure Functions Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick CaaS: Managed Docker & Kubernetes

Slide 18

Slide 18 text

18 Communication Connecting things in Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 19

Slide 19 text

19 § Different messaging services in Azure § Events, messages, data points § Event Grid § Primary use case: Reactive programming § Service Bus § Primary use case: Enterprise-grade messaging § Event Hubs § Primary use case: Big data streams Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Communication is key to Cloud Architectures

Slide 20

Slide 20 text

20 § Fully-managed centralized event routing service § Simplifies development of event-based applications § Simplifies creation of serverless workflows § Supports direct event filtering using event type, prefix or suffix § Your application will only need to receive the events you care about § Same underlying model for different use-cases § System-provided events § Custom application-specific events Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Reactive Programming: Event Grid Auf ins Blaue

Slide 21

Slide 21 text

21 § Queues & Topics § Reliable asynchronous communication § Rich features for temporal control § Routing and filtering § Transactions § Convoys & Sessions (related messages with state) Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Service Bus: Messaging-as-a-Service

Slide 22

Slide 22 text

22 § Sender sends message to queue § Queue ACKs receipt § Receiver connects to queue & retrieves message § Receiver ACKs complete (or other action) Service Bus Queues Receiver Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 23

Slide 23 text

23 § Sender only knows about Topic § Receivers only know about Subscriptions § Filters and Actions exist on Subscriptions Service Bus Topics & Subscriptions Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 24

Slide 24 text

24 A different approach Serverless in Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 25

Slide 25 text

25 What is Serverless, anyway? Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 26

Slide 26 text

26 § Serverless Compute → Azure Functions § Serverless Database → Azure Cosmos DB § Serverless Storage → Azure Storage § Serverless Realtime → Azure SignalR Service § Serverless Events → Azure Event Grid § Serverless Messaging → Azure Service Bus § Serverless Workflows → Azure Logic Apps Azure Durable Functions § Serverless IoT → Azure IoT Hub § Serverless Analytics → Azure Application Insights § Serverless Containers → Azure Container Instances Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Serverless in Azure Auf ins Blaue

Slide 27

Slide 27 text

27 Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick There are NO servers! https://twitter.com/jeffhollan/status/1030244102082682880

Slide 28

Slide 28 text

28 § Azure Functions are code being triggered by an event § Basic principles enable powerful use cases § Events § Triggers § Bindings § Two ways of operation § Cost-optimized, automatic scale (aka Consumption Plan) § Always-on § Runtime built on .NET Core § Available for e.g. self-hosting § Supports several languages Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Serverless Compute: Azure Functions - Functions-as-a-Service Auf ins Blaue

Slide 29

Slide 29 text

29 § Incoming event triggers function § Input bindings enable easy access to data from various data sources § Output bindings offer easy access to outbound data sinks Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Functions Triggers & Bindings Auf ins Blaue Your code logic Runtime Azure Function HTTP Trigger Storage Input Binding Push Notification Output Binding Database Output Binding Email Output Binding Example

Slide 30

Slide 30 text

30 § Azure Cloud services for Java developers & architects – by a non-Java guy § Storage & Databases § Compute § PaaS § CaaS § FaaS § Communication & Messaging § Special guest: Event-driven Serverless Architectures Auf ins Blaue Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Summary

Slide 31

Slide 31 text

Auf ins Blaue: Azure Cloud Services für Java-Entwickler – ein persönlicher Überblick Christian Weyer @christianweyer [email protected]

Slide 32

Slide 32 text

32 § https://azure.microsoft.com/en-us/pricing/ § https://azure.microsoft.com/en-us/pricing/calculator/ Pricing Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue

Slide 33

Slide 33 text

33 § OK – you asked for it J § https://docs.microsoft.com/en-us/azure/architecture/aws- professional/services § Microsofts „Azure & AWS Cloud Service Map“ § https://aka.ms/awsazureguide AWS & Azure Azure Cloud Services für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue