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

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

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  5. BLOCK I
    Introduction
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    5

    View full-size slide

  6. D E M O
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    6

    View full-size slide

  7. Myth Busting & Definitions
    Aka “WTF?”
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    7

    View full-size slide

  8. Cloud-Native
    What is it NOT
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    8
    Myth Busting & Definitions

    View full-size slide

  9. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    9
    Myth Busting & Definitions

    View full-size slide

  10. Cloud-Native
    What is it
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    10
    Myth Busting & Definitions

    View full-size slide

  11. ”… 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

    View full-size slide

  12. 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

    View full-size slide

  13. Myth Busting & Definitions
    Cloud-Native
    Candidate Applications
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    13

    View full-size slide

  14. § 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

    View full-size slide

  15. Cloud-Native
    & Microservices
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    15
    Myth Busting & Definitions

    View full-size slide

  16. Cloud-Native Attributes
    What & why
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    16

    View full-size slide

  17. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    17
    Availability
    Scalability
    Resilience
    Configurability
    Observability
    Cloud-Native
    Applications
    Cloud-Native Attributes

    View full-size slide

  18. Cloud-Native Landscape
    Complex affairs
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    18

    View full-size slide

  19. 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

    View full-size slide

  20. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    20
    https://landscape.cncf.io/
    Cloud-Native Landscape

    View full-size slide

  21. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    21
    https://twitter.com/GeertBaeke/status/1577704842541285379
    Cloud-Native Landscape

    View full-size slide

  22. Cloud-Native & Cloud
    What’s in a name?
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    22

    View full-size slide

  23. "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

    View full-size slide

  24. From
    Build vs. Buy
    to
    Run vs. Rent
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    24
    Cloud-Native & Cloud

    View full-size slide

  25. Cloud Agnosticism
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    25
    Cloud-agnostic Cloud vendor-coupled
    More complex Complex
    Cloud-Native & Cloud

    View full-size slide

  26. 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

    View full-size slide

  27. Hosting Options
    Running Cloud-Native applications
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    27

    View full-size slide

  28. § 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

    View full-size slide

  29. § 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

    View full-size slide

  30. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    Comparison
    30
    Hosting options

    View full-size slide

  31. BLOCK II
    Applying proven techniques
    to .NET applications
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    31

    View full-size slide

  32. “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

    View full-size slide

  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/
    33
    Techniques & Practices

    View full-size slide

  34. 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

    View full-size slide

  35. 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

    View full-size slide

  36. 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

    View full-size slide

  37. 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

    View full-size slide

  38. 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

    View full-size slide

  39. 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

    View full-size slide

  40. Containerization
    Create & use Docker Images
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    40
    Techniques & Practices

    View full-size slide

  41. BLOCK III
    Cloud-Native Patterns &
    Implementations
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    41

    View full-size slide

  42. § 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

    View full-size slide

  43. § 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

    View full-size slide

  44. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    Dapr Building Blocks
    44
    Patterns & Implementations

    View full-size slide

  45. • “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

    View full-size slide

  46. 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

    View full-size slide

  47. 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

    View full-size slide

  48. 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"}

    View full-size slide

  49. 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

    View full-size slide

  50. BLOCK IV
    Automation in Cloud-Native
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    50

    View full-size slide

  51. Automation in Cloud-Native
    The key to success!
    Automate EVERYTHING
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    51
    Automation

    View full-size slide

  52. “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

    View full-size slide

  53. “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

    View full-size slide

  54. Inner-Loop
    Automate everything you need to
    do while developing locally
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    54
    Automation

    View full-size slide

  55. Infrastructure
    Automate your cloud-infrastructure
    by applying Infrastructure-as-Code
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    55
    Automation

    View full-size slide

  56. 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

    View full-size slide

  57. Deployment
    Deploy every component
    independently and automatically
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    57
    Automation

    View full-size slide

  58. Deployment
    Embrace either
    Continuous Deployment or GitOps
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    58
    Automation

    View full-size slide

  59. Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    Continuous-all-the-things
    59
    https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
    Automation

    View full-size slide

  60. Recap
    Cloud-Native-Workshop
    Moderne End-to-End-Architekturen in der Praxis
    60

    View full-size slide

  61. § 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

    View full-size slide

  62. 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

    View full-size slide