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 Kenny Pflug 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.

Avatar for Thorsten Hans

Thorsten Hans

June 26, 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 Kein Hands-On für Teilnehmer 1
  2. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Kenny Pflug https://thinktecture.com/kenny-pflug Software

    Architect @feO2x Thorsten Hans https://thinktecture.com/thorsten-hans Cloud-Native Consultant @thorstenhans
  3. 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
  4. § Distributed Systems with ASP.NET Core § .NET internals §

    Cloud-native [email protected] @feO2x https://www.thinktecture.com Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Kenny Pflug Consultant @ Thinktecture AG 4
  5. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis The agenda for today

    5 Intro / Story Block I: 9:00 – 10:30 Architecture / Technology / Code Block II: 11:00 – 12:30 Architecture / Technology / Code Block III: 13:30 – 15:00 Automation / Code / Recap Closing Q ‘n’ A Block IV: 15:30 – 17:00
  6. ”… 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 13 Myth Busting & Definitions
  7. Myth Busting & Definitions Cloud-Native Software Yes, it is all

    about Linux. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 14
  8. 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 15 Myth Busting & Definitions
  9. § Strategic enterprise systems that need to constantly evolve business

    capabilities/features § Application that requires a high release velocity - with high confidence § System where individual features must release without a full redeployment of the entire system § Application developed by teams with expertise in different technology stacks § Application with components that must scale independently § ℹ Smaller, less impactful LOB applications might fare well with a simple monolithic architecture hosted in a Cloud PaaS environment Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Candidates for Cloud-Native 17 Myth Busting & Definitions
  10. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 20 Availability Scalability Resiliency

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  11. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 21 Availability Scalability Resiliency

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  12. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 22 Availability Scalability Resiliency

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  13. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 23 Availability Scalability Resiliency

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  14. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 24 Availability Scalability Resiliency

    Configurability Observability Cloud-Native Applications Cloud-Native Attributes
  15. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 25 Availability Scalability Resiliency

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

    there is a lot of infrastructure- related stuff ! Cloud-Native Landscape
  17. "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 31 Cloud-Native & Cloud
  18. From Build vs. Buy to Run vs. Rent Cloud-Native-Workshop Moderne

    End-to-End-Architekturen in der Praxis 32 Cloud-Native & Cloud
  19. 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 34 Cloud-Native & Cloud
  20. § 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 36 Managed Kubernetes Hosting options
  21. § 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 37 Hosting options
  22. 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/ 42 Techniques & Practices
  23. Observability by Example Individual Health Checks Cloud-Native-Workshop Moderne End-to-End-Architekturen in

    der Praxis https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks 43 Techniques & Practices
  24. Configuration by Example Integrate with the network environment Cloud-Native-Workshop Moderne

    End-to-End-Architekturen in der Praxis https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer 44 Techniques & Practices
  25. Redefined Responsibilities E.g.: Application devs do not configure HTTPS in

    the application Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 45 Techniques & Practices
  26. Observability by Example Logging simplified Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/ 46 Techniques & Practices
  27. Observability by Example Distributed Tracing with OpenTelemetry Cloud-Native-Workshop Moderne End-to-End-Architekturen

    in der Praxis https://opentelemetry.io/docs/instrumentation/net/getting-started/ 47 Techniques & Practices
  28. § Execution independence / Hosting-agnostic § Different programming / tech

    stacks § Running anywhere § Resiliency § Location transparency § Error handling, retries § Decoupling § Robustness § Async business processes § Observability § Seeing everything end-to-end § Tracing, logging, metrics 💡 Nice to have help here § Proven patterns § Support by libraries, SDK, runtime Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native applications - Some tedious parts 51 Patterns & Implementations
  29. § Portable, event-driven runtime for building distributed applications § Open-source,

    community-driven, vendor-neutral § Prevents developers reinventing the wheel, esp. complex wheels § Making developers lives easier with consistent approach § Productivity tool, when having different § Generations of software types (greenfield and brownfield) § Languages & frameworks § Team formations ➡ Dapr as a common lingua franca Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Dapr: Distributed Application Runtime - for Cloud-Native 52 Patterns & Implementations
  30. Cloud-Native-Workshop On-Premises oder in der Cloud – mit Dapr 58

    Publish & Subscribe: Decoupling Patterns & Implementations
  31. Automation in Cloud-Native The key to success! Automate EVERYTHING Cloud-Native-Workshop

    Moderne End-to-End-Architekturen in der Praxis 61 Automation
  32. “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 62 Automation
  33. “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 63 Automation
  34. Inner-Loop Automate everything you need to do while developing locally

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

    and automatically Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 67 Automation
  36. § Was Sie gesehen haben § Pragmatische Sicht auf Cloud-Native

    § Was? Warum? Wo? Wie? § 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 gesehen haben § Einführung in Docker, Kubernetes oder Azure § Deep Dives in Docker, Kubernetes oder Azure § Windows 🙈 § Klick-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 Summary 72
  37. https://www.thinktecture.com/ueber-uns/karriere/ Dankeschön! Kenny Pflug https://thinktecture.com/kenny-pflug 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 73