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

Cloud-Native für .NET-Entwickler: Moderne End-t...

Cloud-Native für .NET-Entwickler: Moderne End-to-End-Architekturen

Ob Modernisierung oder Neuimplementierung: heutzutage soll es Cloud-native sein! Doch was bedeutet Cloud-native eigentlich, und was bedeutet es nicht? Müssen es wirklich immer und überall zustandslose Microservices sein? In diesem Ganztages-Workshop zeigen Christian Weyer und Thorsten Hans anhand von verteilten Anwendungsarchitekturen und bewährten Patterns, wie Sie Cloud-native Anwendungen erstellen können. Durch praxisorientierte Beispiele werden .NET-Architekten und -Entwickler die unterschiedlichen Herausforderungen aufgezeigt und pragmatische Lösungswege diskutiert. Egal ob Sie als Ziel die lokale Infrastruktur, ein privates Rechenzentrum oder eine public Cloud wie Azure haben: bereiten Sie sich und Ihr Team darauf vor, Anwendungen anhand essenzieller Cloud-native Attribute wie Konfigurierbarkeit, Überwachbarkeit, Robustheit, und Skalierbarkeit zu designen.

Thorsten Hans

April 28, 2023
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. § Was SIE ERWARTET § Pragmatische Sicht auf Cloud-Native §

    Was? Warum? Wie? Wo? § Methodiken, Praktiken & Patterns § Verteilte Anwendungen mit Dapr § Automatisierung auf allen Ebenen § End-to-End Beispielanwendung § .NET-Code (und ein bisschen Go) § Lokal und in der Cloud § Terminal & CLIs § Was SIE NICHT ERWARTET § Einführung in Docker, Kubernetes oder Azure § Deep Dives in Docker, Kubernetes oder Azure § Windows 🙈 § Klicki-Bunti in Visual Studio 😇 § Businessaspekte, wie Business Domain Modeling oder SaaS § Cloud-Native Security Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 1
  2. Cloud-Native Consultant @ Thinktecture AG #Cloud-Native #Kubernetes #Azure #Terraform Thorsten

    Hans Moderne End-to-End-Architekturen in der Praxis Cloud-Native-Workshop [email protected] thinktecture.com thorsten-hans.com @ThorstenHans
  3. § Distributed Systems with ASP.NET Core § .NET internals §

    Cloud-native & serverless architectures [email protected] @feO2x https://www.thinktecture.com Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Kenny Pflug Consultant @ Thinktecture AG 3
  4. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Four Blocks – approx.

    break down Intro Story … a bit booring stuff … Please bear with us! Architecture Technology Code Architecture Technology Code Architecture Technology Code Recap & Final Q&A 4
  5. ”… is highly distributed, must operate in a constantly changing

    environment, and is itself constantly changing.” Cornelia Davis, Author of Cloud Native Patterns: Designing change-tolerant software Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native Software 12 Myth Busting & Definitions
  6. Myth Busting & Definitions Cloud-Native Software Yes, it is all

    about Linux. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 13
  7. Disadvantages of Windows Containers • Bigger in size • longer

    push/pull times • Require more storage (affects Kubernetes & PaaS) • Higher resource consumption • Windows Containers & Hosts need more CPU & memory • Direct impact on infrastructure budged • Host & container OS must have same version (strict policy) • https://kubernetes.io/docs/concepts/windows/intro/#windows-os-version-support • Meaning you may end up with way more infrastructure Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native Software 14 Myth Busting & Definitions
  8. From 3-Tier to Cloud Native 16 ASP.NET Core Backend Web

    Frontend Databa se Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  9. From 3-Tier to Cloud Native 17 ASP.NET Core Backend Web

    Frontend Databa se ASP.NET Core Backend ASP.NET Core Backend Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  10. From 3-Tier to Cloud Native 18 ASP.NET Core Backend Web

    Frontend Databa se ASP.NET Core Backend ASP.NET Core Backend Containerization & Configuration Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  11. From 3-Tier to Cloud Native 19 ASP.NET Core Backend Web

    Frontend Databa se ASP.NET Core Backend ASP.NET Core Backend Load Balancer Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  12. From 3-Tier to Cloud Native 20 ASP.NET Core Backend Web

    Frontend Databa se ASP.NET Core Backend ASP.NET Core Backend Load Balancer Databa se Databa se Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  13. From 3-Tier to Cloud Native 21 ASP.NET Core Backend Web

    Frontend Databa se ASP.NET Core Backend ASP.NET Core Backend Load Balancer Databa se Databa se Database Clustering Run or Rent? Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  14. From 3-Tier to Cloud Native 22 ASP.NET Core Backend Web

    Frontend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  15. From 3-Tier to Cloud Native 23 ASP.NET Core Backend Web

    Frontend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer Ausfallsicherheit, Zero Downtime Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  16. From 3-Tier to Cloud Native 24 ASP.NET Core Backend Web

    Frontend Databa se Cluster ASP.NET Core Backend Load Balancer Ausfallsicherheit, Zero Downtime Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  17. From 3-Tier to Cloud Native 25 ASP.NET Core Backend Web

    Frontend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer Ausfallsicherheit, Zero Downtime Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  18. From 3-Tier to Cloud Native 26 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  19. From 3-Tier to Cloud Native 27 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  20. From 3-Tier to Cloud Native 28 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Publish-Subcribe or Queueing for Runtime Decoupling Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  21. From 3-Tier to Cloud Native 29 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  22. From 3-Tier to Cloud Native 30 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Declarative Communication Resiliency and Tracing Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  23. From 3-Tier to Cloud Native 31 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Gateway Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  24. From 3-Tier to Cloud Native 32 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Gateway Auth Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  25. From 3-Tier to Cloud Native 33 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Gateway Auth JSON Web Tokens (JWT) Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis
  26. From 3-Tier to Cloud Native 34 Web Frontend ASP.NET Core

    Backend Databa se Cluster ASP.NET Core Backend ASP.NET Core Backend Load Balancer ASP.NET Core Backend Databa se Cluster ASP.NET Core Backend Load Balancer Message Broker Sidecar Sidecar Sidecar Sidecar Sidecar Gateway Auth Cluster-wide Services Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Service A Service B
  27. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 35 Availability Scalability Resilience

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  28. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Our Brainstorming… 37 …

    there is a lot of infrastructure- related stuff ! Cloud-Native Landscape
  29. "Cloud is about where we're computing. Cloud-Native is about how.”

    Cornelia Davis, Author of Cloud Native Patterns: Designing change-tolerant software Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 41 Cloud-Native & Cloud
  30. From Build vs. Buy to Run vs. Rent Cloud-Native-Workshop Moderne

    End-to-End-Architekturen in der Praxis 42 Cloud-Native & Cloud
  31. Cloud Agnostism Going fully cloud-agnostic leads to re-implementing stuff that’s

    already there Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 44 Cloud-Native & Cloud
  32. Docker Desktop for Windows: https://docs.docker.com/desktop/install/windows-install/ Docker Desktop for Mac OS

    X: https://docs.docker.com/desktop/install/mac-install/ Docker on Linux: https://docs.docker.com/desktop/install/linux-install/ Cloud-Native Sample: git clone https://github.com/thinktecture-labs/cloud-native-sample/ Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 46
  33. Configurability by Example with IConfiguration Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis .NET by Example https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/ 47 Techniques & Practices
  34. Observability by Example Integrating OpenTelemetry Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks 49 Techniques & Practices
  35. Cloud-Native-Workshop On-Premises oder in der Cloud – mit Dapr 55

    Publish & Subscribe: Decoupling Patterns & Implementations
  36. § We can choose and mix from the continuum Cloud-Native-Workshop

    Moderne End-to-End-Architekturen in der Praxis Cloud Compute Continuum PaaS IaaS On-Premises Serverless 62 Managed Kubernetes Hosting options
  37. § Cloud-Native is not “just using” Kubernetes § Kubernetes is

    a powerful platform (orchestrator) to build and run cloud-native applications § Leverage Kubernetes patterns and capabilities to address certain cloud-native “ilities” § Kubernetes is a driver to become cloud-agnostic Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native & Kubernetes 63 Hosting options
  38. Automation in Cloud-Native The key to success! Automate EVERYTHING Cloud-Native-Workshop

    Moderne End-to-End-Architekturen in der Praxis 65 Automation
  39. “Everything that can be automated, should be automated.” Kevin Hoffman

    & Dan Nemeth, Author of Cloud Native Patterns: Designing change-tolerant software Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 66 Automation
  40. “Anything you do more than once per day is a

    candidate for automation.” Kevin Hoffman & Dan Nemeth, Author of Cloud Native Patterns: Designing change-tolerant software Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 67 Automation
  41. Inner-Loop Automate everything you need to do while developing locally

    Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 69 Automation
  42. Continuous Integration Build, Test, and Package every application component independently

    and automatically Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 71 Automation
  43. https://www.thinktecture.com/ueber-uns/karriere/ Dankeschön! Christian Weyer https://thinktecture.com/christian-weyer Demos aus der Session: https://github.com/thinktecture-labs/

    cloud-native-sample Cloud-Native @ Thinktecture: https://www.thinktecture.com/technologien/ cloud-native/ https://www.thinktecture.com/wissen/ Thorsten Hans https://thinktecture.com/thorsten-hans 77