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

Cloud-Native: Definition, Praktiken & Patterns

Cloud-Native: Definition, Praktiken & Patterns

Cloud-Native bedeutet nicht zwangsläufig Kubernetes oder gar Public-Cloud. Vielmehr definiert Cloud-Native eine Reihe von Attributen, die es beim Design und der Implementierung von verteilten Anwendungen zu beherzigen gilt. In diesem Vortrag räumen Christian Weyer und Thorsten Hans auf pragmatische Art und Weise mit den Begrifflichkeiten auf und diskutieren Praktiken, wie man moderne Cloud-Native Anwendungen entwerfen und umsetzen kann. Zudem zeigen sie praxiserprobte und bewährte Architektur-Patterns, mit denen essenzielle Themen wie Robustheit, Skalierbarkeit, Überwachbarkeit, und Konfigurierbarkeit ganzheitlich adressiert werden können. Egal ob lokal, im privaten Rechenzentrum oder in der öffentlichen Cloud:  als .NET-Entwickler ist es an der Zeit, sich Cloud-Native anzuschauen.

Christian Weyer

October 13, 2022
Tweet

More Decks by Christian Weyer

Other Decks in Programming

Transcript

  1. Cloud-Native:
    Definition, Praktiken & Patterns
    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
    Definition, Praktiken & Patterns
    Cloud-Native
    [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
    Definition, Praktiken & Patterns
    Christian Weyer
    Co-Founder & CTO @ Thinktecture AG
    3

    View full-size slide

  4. Cloud-Native
    Definition, Praktiken & Patterns
    Talking Points
    Attributes
    Techniques & Practices
    for .NET
    Patterns
    Running Applications Automation
    Myth Busting & Definitions
    4

    View full-size slide

  5. Cloud-Native
    Definition, Praktiken & Patterns
    5
    Myth Busting & Definitions
    Aka “WTF?”

    View full-size slide

  6. Cloud-Native
    What is it NOT
    Cloud-Native
    Definition, Praktiken & Patterns
    Myth Busting & Definitions
    6

    View full-size slide

  7. Cloud-Native
    Definition, Praktiken & Patterns
    Myth Busting & Definitions
    7

    View full-size slide

  8. Cloud-Native
    What is it
    Cloud-Native
    Definition, Praktiken & Patterns
    Myth Busting & Definitions
    8

    View full-size slide

  9. ”… 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
    Definition, Praktiken & Patterns
    Cloud-Native Software
    Myth Busting & Definitions
    9

    View full-size slide

  10. Cloud-Native
    Definition, Praktiken & Patterns
    10
    D E M O
    Myth Busting & Definitions

    View full-size slide

  11. Cloud-Native
    Definition, Praktiken & Patterns
    11
    Myth Busting & Definitions

    View full-size slide

  12. Yes, it is all about Linux.
    Windows is more expensive and
    resource-intensive.
    Cloud-Native
    Definition, Praktiken & Patterns
    Cloud-Native Software
    Myth Busting & Definitions
    12

    View full-size slide

  13. Cloud-Native & Cloud
    What’s in a name?
    Cloud-Native
    Definition, Praktiken & Patterns
    Myth Busting & Definitions
    13

    View full-size slide

  14. "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
    Definition, Praktiken & Patterns
    Cloud-Native & Cloud
    Myth Busting & Definitions
    14

    View full-size slide

  15. Cloud-Native Landscape
    Complex matters
    Cloud-Native
    Definition, Praktiken & Patterns
    Myth Busting & Definitions
    15

    View full-size slide

  16. Cloud-Native
    Definition, Praktiken & Patterns
    https://landscape.cncf.io/
    Myth Busting & Definitions
    16

    View full-size slide

  17. Cloud Agnostism
    Fully cloud-agnostic

    Re-implementing stuff that’s already there
    Cloud-Native
    Definition, Praktiken & Patterns
    Cloud-Native & Cloud
    Myth Busting & Definitions
    17

    View full-size slide

  18. From
    Build vs. Buy
    to
    Run vs. Rent
    Cloud-Native
    Definition, Praktiken & Patterns
    Cloud-Native & Cloud
    Myth Busting & Definitions
    18

    View full-size slide

  19. Cloud-Native Attributes
    What & why
    Cloud-Native
    Definition, Praktiken & Patterns
    19

    View full-size slide

  20. Cloud-Native
    Definition, Praktiken & Patterns
    Availability
    Scalability
    Resilience
    Configurability
    Observability
    Cloud-Native
    Applications
    Cloud-Native Attributes
    20

    View full-size slide

  21. Cloud-Native
    Definition, Praktiken & Patterns
    21
    Techniques & Practices
    Play nicely as a .NET developer

    View full-size slide

  22. “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
    Definition, Praktiken & Patterns
    Main Metaphor for Cloud-Native Code
    Techniques & Practices
    22

    View full-size slide

  23. Containerization
    Create & use Docker Images
    Cloud-Native
    Definition, Praktiken & Patterns
    Techniques & Practices
    23

    View full-size slide

  24. Configurability & Observability in .NET
    IConfiguration
    ILogger
    OpenTelemetry
    Health Checks
    Cloud-Native
    Definition, Praktiken & Patterns
    Techniques & Practices
    24

    View full-size slide

  25. Cloud-Native
    Definition, Praktiken & Patterns
    25
    D E M O
    Techniques & Practices

    View full-size slide

  26. Cloud-Native
    Definition, Praktiken & Patterns
    26
    Cloud-Native Patterns
    Proven, applied & enforced

    View full-size slide

  27. Cloud-Native
    Definition, Praktiken & Patterns
    Infrastructure, FTW!
    Statelessness
    Service-to-Service
    Instrumentation
    Loose (runtime)
    coupling
    (many more)
    Cloud-Native
    Patterns
    Patterns
    27

    View full-size slide

  28. § Asynchronous message passing for
    decoupling services
    § Different message exchange patterns
    at your hand
    § RabbitMQ as popular on-prem broker-based system
    § Azure Service Bus as very mature & robust Cloud offering
    § Care for resiliency when communicating
    § Retries & error handling
    Cloud-Native
    Definition, Praktiken & Patterns
    Messaging, Queuing, Pub-Sub
    28
    X
    P
    S
    S
    Patterns

    View full-size slide

  29. Cloud-Native
    Definition, Praktiken & Patterns
    29
    Myth Busting & Definitions

    View full-size slide

  30. Cloud-Native
    Definition, Praktiken & Patterns
    30
    D E M
    Patterns

    View full-size slide

  31. Cloud-Native
    Definition, Praktiken & Patterns
    31
    Running Applications
    Locally, on-prem & Cloud

    View full-size slide

  32. § We can choose and mix from the continuum
    Cloud-Native
    Definition, Praktiken & Patterns
    Cloud Compute Continuum
    PaaS
    IaaS
    On-Premises Serverless
    Managed
    Kubernetes
    Running applications
    32

    View full-size slide

  33. Cloud-Native
    Definition, Praktiken & Patterns
    Hosting Options Comparison
    Running applications
    33

    View full-size slide

  34. Cloud-Native
    Definition, Praktiken & Patterns
    34
    Automation
    All-the-things!

    View full-size slide

  35. Automation in Cloud-Native
    Is the key to success!
    Automate EVERYTHING
    Cloud-Native
    Definition, Praktiken & Patterns
    Automation
    35

    View full-size slide

  36. Cloud-Native
    Definition, Praktiken & Patterns
    Automation Layers
    Inner-Loop Infrastructure CI & CD
    Automation
    36

    View full-size slide

  37. Cloud-Native
    Definition, Praktiken & Patterns
    37
    D E M
    Automation

    View full-size slide

  38. Cloud-Native
    Definition, Praktiken & Patterns
    38
    Conclusion

    View full-size slide

  39. Cloud-Native
    Definition, Praktiken & Patterns
    Recap
    39
    Cloud-Native != Cloud
    Running distributed
    applications anywhere
    Ecosystem is overwhelming
    Everything beyond writing
    application code can be very
    overwhelming
    Patterns & practices ease
    development & operation
    Constantly changing
    applications & environments

    View full-size slide

  40. 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
    Thorsten Hans
    https://thinktecture.com/thorsten-hans
    40

    View full-size slide