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

BASTA 2023 - Cloud Native Workshop

Thorsten Hans
September 25, 2023

BASTA 2023 - Cloud Native Workshop

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 -Entwicklern 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

September 25, 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 Consultant @thorstenhans
  3. Consultant @ Thinktecture AG #Cloud-Native #Kubernetes #Azure #WebAssembly 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 https://www.thinktecture.com/wissen/ Thorsten Hans https://thinktecture.com/thorsten-hans 73