$30 off During Our Annual Pro Sale. View Details »

From Cloud-Hosted to Cloud-Native

From Cloud-Hosted to Cloud-Native

Originally presented at QCon London 2023.

----

You’ve committed to the journey of running in the cloud. However, you realize it’s not quite as simple as moving or writing a new application on a cloud offering. Between a diverse service catalog, greater developer autonomy, rapid provisioning, surprise billing, and changing security requirements, you might find that hosting applications on the cloud does not make the most of the cloud.

In this session, Rosemary will outline the patterns and practices that help you move from cloud-hosted to cloud-native architecture and maximize the benefit and use of the cloud. From essential application and infrastructure considerations to dynamically observing cost and managing security, you can use these learnings to approach a cloud-native architecture.

Rosemary Wang

June 08, 2023
Tweet

More Decks by Rosemary Wang

Other Decks in Technology

Transcript

  1. From Cloud-Hosted to
    Cloud-Native
    QCon London ‘23
    1
    @joatmon08

    View Slide

  2. 2

    How It Started
    📲
    @joatmon08

    View Slide

  3. cloud-native
    build and run scalable applications in
    modern, dynamic environments such
    as public, private, and hybrid clouds.
    github.com/cncf/toc/blob/main/DEFINITION.md
    3
    @joatmon08

    View Slide

  4. 4
    How It’s Going
    📲 ☁
    @joatmon08

    View Slide

  5. cloud hosted
    build and run scalable applications in
    modern, dynamic environments such
    as public, private, and hybrid clouds.
    github.com/cncf/toc/blob/main/DEFINITION.md
    5
    @joatmon08

    View Slide

  6. Rosemary Wang
    @joatmon08
    joatmon08.github.io
    Developer Advocate | HashiCorp
    Author | Infrastructure as Code, Patterns & Practices
    6

    View Slide

  7. cloud-native considerations
    ● adaptability
    ● observability
    ● immutability
    ● elasticity
    ● changeability
    7
    @joatmon08
    *balance delivery and
    future-proofing

    View Slide

  8. adaptability
    adjust between environments
    8
    @joatmon08

    View Slide

  9. 9

    @joatmon08

    View Slide

  10. Adapt by abstraction.
    10
    @joatmon08

    View Slide

  11. 11
    Version?
    Images?
    Customization?
    Persistence?

    @joatmon08

    View Slide

  12. Implement “just
    enough” abstraction
    to mitigate effort.
    12
    @joatmon08

    View Slide

  13. ● Decouple artifact dependencies
    ● Decouple configuration and secrets
    ● Use dependency injection
    ● Write abstract (end-to-end) tests
    ● Update to stable (-1) version
    13
    @joatmon08

    View Slide

  14. as a last resort,
    refactor the abstraction
    14
    @joatmon08

    View Slide

  15. observability
    navigate cloud cover
    15
    @joatmon08

    View Slide

  16. 16
    syslog
    @joatmon08

    View Slide

  17. Set (some) standards.
    17
    @joatmon08

    View Slide

  18. 18
    syslog
    @joatmon08

    View Slide

  19. Meet resources where
    they are at.
    19
    @joatmon08

    View Slide

  20. ● Map dependencies
    ● Tag and add metadata
    ● Enable audit and access logs
    ● Aggregate telemetry
    ● Standardize and index telemetry
    ● Assess push versus pull
    20
    @joatmon08

    View Slide

  21. as a last resort,
    rebuild the monitoring system
    21
    @joatmon08

    View Slide

  22. immutability
    keeps up with dynamic environments
    22
    @joatmon08

    View Slide

  23. 23
    Update Java

    login deploy
    @joatmon08

    View Slide

  24. Roll out new
    resources for most
    changes.
    24
    @joatmon08

    View Slide

  25. 25
    Update Java

    login
    @joatmon08

    View Slide

  26. Some changes must
    be mutable.
    26
    @joatmon08

    View Slide

  27. ● Automate infrastructure as code
    ● Decouple state and configuration
    ● Reload / restart for changes
    ● Optimize provisioning
    ● Distribute data
    27
    @joatmon08

    View Slide

  28. as a last resort,
    refactor for immutability
    28
    @joatmon08

    View Slide

  29. elasticity
    make the most of resources
    29
    @joatmon08

    View Slide

  30. 30

    @joatmon08

    View Slide

  31. Elasticity is about the
    cost of time.
    31
    @joatmon08

    View Slide

  32. 32
    Workload Density
    Horizontal Scaling
    Resource Efficiency
    Vertical Scaling
    @joatmon08

    View Slide

  33. Cloud-native does not
    always mean
    horizontal scaling.
    33
    @joatmon08

    View Slide

  34. ● Evaluate idle versus active resources
    ● Minimize the “traffic trombone”
    ● Optimize warm-up and runtime
    ● Assess volume versus frequency
    34
    @joatmon08

    View Slide

  35. as a last resort,
    rebuild to mitigate cost
    35
    @joatmon08

    View Slide

  36. changeability
    use the latest technologies
    36
    @joatmon08

    View Slide

  37. 37

    @joatmon08

    View Slide

  38. The latest often
    involve paradigm
    shifts.
    38
    @joatmon08

    View Slide

  39. 39

    @joatmon08

    View Slide

  40. Intermediate steps
    exist for change.
    40
    @joatmon08

    View Slide

  41. ● Assess benefit
    ● Review previous considerations
    ● Choose an intermediate step
    ● Refactor application / infrastructure
    41
    @joatmon08

    View Slide

  42. as a last resort,
    build a greenfield environment
    42
    @joatmon08

    View Slide

  43. cloud-native
    build and run scalable applications in
    modern, dynamic environments such
    as public, private, and hybrid clouds.
    github.com/cncf/toc/blob/main/DEFINITION.md
    43
    @joatmon08

    View Slide

  44. cloud-native considerations
    ● adaptability
    ● observability
    ● immutability
    ● elasticity
    ● changeability
    44
    @joatmon08

    View Slide

  45. Thank you!
    Rosemary Wang
    @joatmon08
    joatmon08.github.io
    45

    View Slide