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

Cloud-Native-Workshop: Moderne End-to-End-Archi...

Cloud-Native-Workshop: Moderne End-to-End-Architekturen in der Praxis

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 Ganztagesworkshop zeigen Christian Weyer und Thorsten Hans anhand verteilter Anwendungsarchitekturen und bewährter 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.

Christian Weyer

October 10, 2022
Tweet

More Decks by Christian Weyer

Other Decks in Programming

Transcript

  1. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Christian Weyer https://thinktecture.com/christian-weyer @christianweyer

    Co-Founder & CTO Thorsten Hans https://thinktecture.com/thorsten-hans @thorstenhans Consultant & Cloud-Native-Enthusiast
  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. § Cloud-native & serverless architectures § Pragmatic end-to-end solutions §

    Mobile & web-based application architectures § Independent Microsoft Regional Director § Microsoft MVP for Developer Technologies & Azure ASPInsider, AzureInsider § Google GDE for Web Technologies [email protected] @christianweyer https://www.thinktecture.com Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Christian Weyer Co-Founder & CTO @ 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 09.00 – 10.30 11.00 – 12.30 13.30 – 15.00 15.30 – 17.00 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 11 Myth Busting & Definitions
  6. Yes, it is all about Linux. Windows is more expensive

    and resource-intensive. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Cloud-Native Software 12 Myth Busting & Definitions
  7. § 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 14 Myth Busting & Definitions
  8. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 17 Availability Scalability Resilience

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

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

    End-to-End-Architekturen in der Praxis 24 Cloud-Native & Cloud
  12. 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 26 Cloud-Native & Cloud
  13. § 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 28 Managed Kubernetes Hosting options
  14. § 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 29 Hosting options
  15. “It’s simply that the application has to give up a

    lot of control, to the platform - and has to be cleanly integrable from the outside.” Thorsten Hans, Cloud-Native-Enthusiast Thinktecture Consultant Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Main Metaphor for Cloud-Native Code 32 Techniques & Practices
  16. 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/ 33 Techniques & Practices
  17. 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 34 Techniques & Practices
  18. 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 35 Techniques & Practices
  19. Redefined Responsibilities E.g.: Application devs do not configure HTTPS in

    the application Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 36 Techniques & Practices
  20. Observability by Example with ILogger Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/ 37 Techniques & Practices
  21. Observability by Example with OpenTelemetry Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis https://opentelemetry.io/docs/instrumentation/net/getting-started/ 38 Techniques & Practices
  22. Observability by Example with Prometheus Cloud-Native-Workshop Moderne End-to-End-Architekturen in der

    Praxis https://github.com/prometheus-net/prometheus-net 39 Techniques & Practices
  23. § 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 42 Patterns & Implementations
  24. § Portable, event-driven runtime for building distributed applications across Cloud

    and edge § Open-source, community-driven, vendor-neutral § Best practices building blocks § Consistent, portable, open APIs § Extensible & pluggable components § Adopting standards § Platform-agnostic for edge and Cloud § Any language and framework Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Dapr: Distributed Application Runtime - for Cloud-Native 43 Patterns & Implementations
  25. • “Not your concern!” • daprd will do this •

    Talk to sidecar • Use HTTP or gRPC • Use an SDK Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Sidecar pattern: separating concerns 45 My App Dapr API POST http://localhost:3500/v1.0/invoke/cart/method/neworder GET http://localhost:3500/v1.0/state/inventory/item67 POST http://localhost:3500/v1.0/publish/shipping/orders GET http://localhost:3500/v1.0/secrets/keyvault/password HTTP/gRPC Application Sidecar Patterns & Implementations
  26. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Dapr applications: utilizing platform

    features 46 Service A Observability Bindings & Triggers State Management Secret Management PubSub Messaging Virtual Actors Service Invocation Service B My App Patterns & Implementations
  27. Patterns & Implementations Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Dapr

    components 47 My App Observability Prometheus AppInsights Jaeger Zipkin Bindings & Triggers State Stores Secret Stores PubSub Brokers https://github.com/dapr/components-contrib
  28. Patterns & Implementations § At-least-once semantics for message delivery Cloud-Native-Workshop

    Moderne End-to-End-Architekturen in der Praxis Publish & subscribe 48 Service B My App Redis Cache Service A POST http://localhost:3500/v1.0/publish/orders/processed {"data":"Hello World"} POST http://10.0.0.2:8000/orders http://10.0.0.4:8000/factory/orders {"data":"Hello World"}
  29. Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis Output bindings 49 My

    App Twilio POST http://localhost:3500/v1.0/bindings/twilio {"data":"Hello World"} Hello World Patterns & Implementations
  30. Automation in Cloud-Native The key to success! Automate EVERYTHING Cloud-Native-Workshop

    Moderne End-to-End-Architekturen in der Praxis 51 Automation
  31. “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 52 Automation
  32. “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 53 Automation
  33. Inner-Loop Automate everything you need to do while developing locally

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

    and automatically Cloud-Native-Workshop Moderne End-to-End-Architekturen in der Praxis 56 Automation
  35. § 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
  36. 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 62