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

Auf ins Blaue: Azure Cloud Services für Java-En...

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

Ein Blick über den Tellerrand kann ja nicht schaden: was hat Microsofts Azure Cloud für Java-Entwickler und -Architekten zu bieten? Freilich ist die blaue Wolke ähnlich mächtig, breit an Services und tief an Features wie die Marktbegleiter AWS oder GPC. In dieser Session möchte daher Christian Weyer – der seit 2008 mit Azure arbeitet – einen nicht ganz unvoreingenommenen Überblick über die zentralen Services geben, die für Java-, .NET- aber auch andere Entwickler zur Verfügung stehen. Angefangen bei Container-as-a-Services mit Docker- und Kubernetes als Basis, über klassische Platform-as-a-Service-Angebote für Web Applications, Datenbanken oder Messaging, bis hin zu ultracoolen Serverless-Architekturen – illustriert mit praktischen Beispielen. Und dies von jemandem, der so gut wie keine Ahnung von Java hat.

Christian Weyer

November 08, 2018
Tweet

More Decks by Christian Weyer

Other Decks in Programming

Transcript

  1. Auf ins Blaue: Azure Cloud Services für Java-Entwickler – ein

    persönlicher Überblick Christian Weyer @christianweyer CTO
  2. 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
  3. 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
  4. 4 The other Cloud Azure Azure Cloud Services für Java-Entwickler

    - ein persönlicher Überblick Auf ins Blaue
  5. 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
  6. 8 Storage & Databases Data in Azure Azure Cloud Services

    für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 14 Compute Code in Azure Azure Cloud Services für Java-Entwickler

    - ein persönlicher Überblick Auf ins Blaue
  13. 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
  14. 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
  15. 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
  16. 18 Communication Connecting things in Azure Azure Cloud Services für

    Java-Entwickler - ein persönlicher Überblick Auf ins Blaue
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 24 A different approach Serverless in Azure Azure Cloud Services

    für Java-Entwickler - ein persönlicher Überblick Auf ins Blaue
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. Auf ins Blaue: Azure Cloud Services für Java-Entwickler – ein

    persönlicher Überblick Christian Weyer @christianweyer [email protected]
  29. 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