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

Why You Can't Buy Cloud Native

Why You Can't Buy Cloud Native

The virtual shelves are filled to bursting with cloud native technologies; containers, runtimes, CI pipelines, observability tools. The more an organisation buys, the more cloud native it is, right? And the more network communication an app involves, the more cloud native it is, right? Well, not so much. It turns out cloud native is about how you deliver software, not the tools you use. This talk explains these often-overlooked elements for cloud native success:

- Figuring out what problem we’re trying to solve
- Releasing
- Testing, but not the way you’re used to

Holly Cummins

July 19, 2022
Tweet

More Decks by Holly Cummins

Other Decks in Technology

Transcript





  1. Holly Cummins


    Red Hat


    @holly_cummins
    #JBCNConf
    why you can’t buy


    cloud native

    View full-size slide

  2. @holly_cummins
    #JBCNConf

    View full-size slide

  3. @holly_cummins
    #JBCNConf

    View full-size slide

  4. @holly_cummins
    #JBCNConf
    let’s install it!

    View full-size slide

  5. @holly_cummins
    #JBCNConf
    let’s install it!
    where do I download it?

    View full-size slide

  6. @holly_cummins
    #JBCNConf

    View full-size slide

  7. @holly_cummins
    #JBCNConf
    yes, there is
    some irony
    Buy Quarkus!
    Quarkus helps you be
    cloud native!

    View full-size slide

  8. @holly_cummins
    #JBCNConf
    quarkus makes your cloud cloudier

    View full-size slide

  9. @holly_cummins
    #JBCNConf
    quarkus makes your cloud cloudier

    View full-size slide

  10. @holly_cummins
    #JBCNConf
    did I mention quarkus
    saves cloud costs?

    View full-size slide

  11. @holly_cummins
    #JBCNConf
    did I mention quarkus also
    makes developers happier?

    View full-size slide

  12. what are we
    even trying to
    buy?

    View full-size slide

  13. what are we
    even trying to
    buy?

    View full-size slide

  14. Kubernetes


    what are we
    even trying to
    buy?

    View full-size slide

  15. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services

    View full-size slide

  16. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud

    View full-size slide

  17. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    DevOps


    but make it 2021


    View full-size slide

  18. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    12-factor


    DevOps


    but make it 2021


    View full-size slide

  19. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    12-factor


    Just


    Cloud


    DevOps


    but make it 2021


    View full-size slide

  20. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    12-factor


    Just


    Cloud


    DevOps


    but make it 2021


    Modern


    and Nice


    View full-size slide

  21. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    12-factor


    Just


    Cloud


    idempotent


    DevOps


    but make it 2021


    Modern


    and Nice


    View full-size slide

  22. Kubernetes


    what are we
    even trying to
    buy?
    Micro


    services
    Born


    on the Cloud
    12-factor


    Just


    Cloud


    idempotent


    DevOps


    but make it 2021


    legacy app
    but on the
    cloud
    Modern


    and Nice


    View full-size slide

  23. @holly_cummins
    #RedHat
    microservices will
    make me look so
    good
    software is fashions

    View full-size slide

  24. @holly_cummins
    #RedHat
    surely no one would …

    View full-size slide

  25. @holly_cummins
    #RedHat
    surely no one would …

    View full-size slide

  26. @holly_cummins
    #RedHat
    surely no one would … oh.

    View full-size slide

  27. @holly_cummins
    #RedHat
    cv-driven
    development

    View full-size slide

  28. @holly_cummins #RedHat
    there’s a whole
    landscape to explore

    View full-size slide

  29. @holly_cummins #RedHat
    it’s not just a landscape


    it’s a catalog

    View full-size slide

  30. @holly_cummins #RedHat
    it’s not just a landscape


    it’s a catalog
    ooh, which ones
    shall I have?

    View full-size slide

  31. @holly_cummins #RedHat
    it’s not just a landscape


    it’s a catalog
    ooh, which ones
    shall I have?
    they’re all so
    shiny

    View full-size slide

  32. @holly_cummins
    #RedHat
    what problem are we
    trying to solve?

    View full-size slide

  33. @holly_cummins
    #RedHat
    “the problem I am solving is there
    are no microservices on my CV”

    View full-size slide

  34. @holly_cummins #RedHat
    my problem is
    there aren’t
    enough containers
    yet?

    View full-size slide

  35. @holly_cummins #RedHat
    my problem is
    there aren’t
    enough containers
    yet?

    View full-size slide

  36. Warning


    May contain


    Coupling


    Cloud native spaghetti


    Distributed monolith
    !

    View full-size slide

  37. @holly_cummins
    #RedHat

    View full-size slide

  38. @holly_cummins
    #RedHat
    distributed monolith

    View full-size slide

  39. @holly_cummins
    #RedHat
    distributed monolith
    worst of both worlds:


    no compile-time checking


    … or guaranteed function execution

    View full-size slide

  40. @holly_cummins
    #RedHat
    microservices are
    not the goal

    View full-size slide

  41. @holly_cummins
    #RedHat
    microservices are
    not the goal
    they are the means

    View full-size slide

  42. @holly_cummins
    #RedHat
    microservices are
    not the goal
    they are the means
    they are a means

    View full-size slide

  43. “the cloud native-ness comes from these network connections”

    View full-size slide

  44. “the cloud native-ness comes from these network connections”
    (no, it doesn’t!)

    View full-size slide

  45. the pain comes from these network connections

    View full-size slide

  46. remember the distributed computing fallacies?
    the pain comes from these network connections

    View full-size slide

  47. remember the distributed computing fallacies?
    1. The network is reliable;
    2. Latency is zero;
    3. Bandwidth is infinite;
    4. The network is secure;
    5. Topology doesn't change;
    6. There is one administrator;
    7. Transport cost is zero;
    8. The network is homogeneous.
    the pain comes from these network connections

    View full-size slide

  48. remember the distributed computing fallacies?
    1. The network is reliable;
    2. Latency is zero;
    3. Bandwidth is infinite;
    4. The network is secure;
    5. Topology doesn't change;
    6. There is one administrator;
    7. Transport cost is zero;
    8. The network is homogeneous.
    9. Distributed means decoupled!
    the pain comes from these network connections

    View full-size slide

  49. @holly_cummins
    #JBCNConf
    reasons not to do microservices


    • small team


    • not planning to release independently


    • don’t want complexity of a service mesh
    - or worse yet, rolling your own


    • domain model doesn’t split nicely

    View full-size slide

  50. @holly_cummins
    #JBCNConf
    “every time we change one
    microservice, another breaks”
    true story

    View full-size slide

  51. @holly_cummins
    #JBCNConf
    distributed != decoupled

    View full-size slide

  52. @holly_cummins #RedHat
    how do you know if
    you’re decoupled?

    View full-size slide

  53. can you deploy
    independently? v5.1.4
    v5.1.4
    v5.1.4
    v5.1.4

    View full-size slide

  54. can you deploy
    independently? v6.2.8
    v65.7
    v5.1.4
    v1.0.5

    View full-size slide

  55. @holly_cummins
    #RedHat
    “we made our pipeline enforce releasing
    all our microservices at the same time.”
    true story

    View full-size slide

  56. @holly_cummins
    #RedHat
    can you even
    deploy at all?

    View full-size slide

  57. @holly_cummins
    #RedHat
    can you even
    release at all?

    View full-size slide

  58. can you
    release often? v1.0
    v1.0
    v1.0
    v1.0

    View full-size slide

  59. @holly_cummins
    #JBCNConf
    deferred wiring
    a deploy is not a release

    View full-size slide

  60. can you
    release often? v1.0
    v2.0
    v1.0
    v1.0

    View full-size slide

  61. @holly_cummins
    #JBCNConf
    feature flags
    a deploy is not a release

    View full-size slide

  62. @holly_cummins
    #JBCNConf
    A/B testing


    canary deploys
    a deploy is not a release

    View full-size slide

  63. @holly_cummins
    #JBCNConf
    “we have a CI/CD”

    View full-size slide

  64. @holly_cummins
    #JBCNConf
    by the way, you also
    can’t buy devops

    View full-size slide

  65. @holly_cummins
    #JBCNConf
    (Matt was not serious, before anyone takes this out of context and decides he’s an awful person and they should hate him.)

    View full-size slide

  66. @holly_cummins
    #JBCNConf
    if you only want a small amount of devops …

    you can’t buy a devop

    View full-size slide

  67. @holly_cummins
    #JBCNConf
    CI/CD is something you do


    not a tool you buy

    View full-size slide

  68. @holly_cummins
    #JBCNConf
    “i’ll merge my branch
    into our CI next week”

    View full-size slide

  69. @holly_cummins
    #JBCNConf
    “CI/CD … CI/CD … CI/CD …


    we release every six months …


    CI/CD …. ”

    View full-size slide

  70. @holly_cummins
    #JBCNConf
    continuous.


    I do not think that word means
    what you think it means.

    View full-size slide

  71. @holly_cummins
    #RedHat
    “we’re going too slowly.


    we need to get rid of COBOL
    and make microservices!”
    true story

    View full-size slide

  72. @holly_cummins
    #RedHat
    “we’re going too slowly.


    we need to get rid of COBOL
    and make microservices!”
    “… but our release board
    only meets twice a year.”
    true story

    View full-size slide

  73. @holly_cummins
    #RedHat
    “we can’t actually release a
    microservice without the
    release board and all the other
    microservices need to be
    released at the same time and the
    manual QA cycle and the release
    checklist and the incantations and the
    death march and the sacrificing a goat and
    the spreadsheet and the moon being in the right
    phase and…”

    View full-size slide

  74. @holly_cummins
    #RedHat
    releases are like brushing your teeth:


    if it hurts do it more often

    View full-size slide

  75. @holly_cummins #RedHat
    “we can’t ship until we
    have more confidence
    in the quality”

    View full-size slide

  76. @holly_cummins #RedHat
    “our tests aren’t automated”

    View full-size slide

  77. @holly_cummins #RedHat
    “we don’t know if
    our system works”

    View full-size slide

  78. @holly_cummins #RedHat
    if you’re going to be spaghetti, at
    least be tested spaghetti


    View full-size slide

  79. @holly_cummins #RedHat

    View full-size slide

  80. @holly_cummins #RedHat
    … and use contract tests

    View full-size slide

  81. @holly_cummins #RedHat
    … and use contract tests
    seriously, use contract tests

    View full-size slide

  82. @holly_cummins
    #RedHat
    “we can’t release because
    we don’t seem to be able to
    actually change things”

    View full-size slide

  83. @holly_cummins #RedHat
    the enterprise hairball
    why change is hard:

    View full-size slide

  84. @holly_cummins #RedHat
    our layer


    (“business logic”)

    View full-size slide

  85. @holly_cummins #RedHat
    our layer


    (“business logic”)

    View full-size slide

  86. @holly_cummins #RedHat
    database layer


    our layer


    (“business logic”)

    View full-size slide

  87. @holly_cummins #RedHat
    database layer


    front-end layer


    our layer


    (“business logic”)

    View full-size slide

  88. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)

    View full-size slide

  89. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    we
    can’t make progress
    because we need a
    change to the
    database

    View full-size slide

  90. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    we
    can’t make progress
    because we need a
    change to the
    database

    View full-size slide

  91. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    oh wait …


    every change needs a
    front-end change too
    we
    can’t make progress
    because we need a
    change to the
    database

    View full-size slide

  92. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    oh wait …


    every change needs a
    front-end change too
    we
    can’t make progress
    because we need a
    change to the
    database

    View full-size slide

  93. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    oh wait …


    every change needs a
    front-end change too
    uh…
    we can’t release our
    cool new stuff because we’re
    dependent on a change in
    the integration layer
    we
    can’t make progress
    because we need a
    change to the
    database

    View full-size slide

  94. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    oh wait …


    every change needs a
    front-end change too
    uh…
    we can’t release our
    cool new stuff because we’re
    dependent on a change in
    the integration layer
    we
    can’t make progress
    because we need a
    change to the
    database
    what are that ^&!
    *(&!! integration team even
    doing with their time?

    View full-size slide

  95. @holly_cummins #RedHat
    integration layer


    (“panicked sandwich”)
    database layer


    front-end layer


    our layer


    (“business logic”)
    oh wait …


    every change needs a
    front-end change too
    uh…
    we can’t release our
    cool new stuff because we’re
    dependent on a change in
    the integration layer
    we
    can’t make progress
    because we need a
    change to the
    database
    what are that ^&!
    *(&!! integration team even
    doing with their time?

    View full-size slide

  96. @holly_cummins
    #JBCNConf
    a new approach to ops

    View full-size slide

  97. @holly_cummins
    #JBCNConf
    SRE

    View full-size slide

  98. @holly_cummins
    #JBCNConf
    a new approach to risk

    View full-size slide

  99. @holly_cummins
    #JBCNConf
    de-risk through
    automation, not paperwork

    View full-size slide

  100. @holly_cummins
    #JBCNConf

    View full-size slide

  101. @holly_cummins
    #JBCNConf
    old-style governance
    isn’t going to work

    View full-size slide

  102. @holly_cummins
    #JBCNConf
    “this provisioning
    software is broken”

    View full-size slide

  103. @holly_cummins
    #JBCNConf
    what we sold
    “this provisioning
    software is broken”
    10 minute
    provision-time

    View full-size slide

  104. @holly_cummins
    #JBCNConf
    what we sold
    “this provisioning
    software is broken”
    10 minute
    provision-time
    3 month
    provision-
    time
    what the
    client
    thought
    they’d got

    View full-size slide

  105. @holly_cummins
    #JBCNConf
    what we sold
    “this provisioning
    software is broken”
    10 minute
    provision-time
    3 month
    provision-
    time
    what the
    client
    thought
    they’d got
    the reason
    84-step


    pre-approval process

    View full-size slide

  106. @holly_cummins #RedHat
    one thing you can buy

    View full-size slide

  107. @holly_cummins #RedHat
    one thing you can buy

    View full-size slide

  108. @holly_cummins #RedHat
    one thing you can buy

    View full-size slide

  109. @holly_cummins
    #JBCNConf
    you may not want all
    the cloud you bought

    View full-size slide

  110. @holly_cummins
    #JBCNConf
    you may not want all
    the cloud you bought

    View full-size slide

  111. @holly_cummins #RedHat
    Hey boss, I created a
    Kubernetes cluster.
    true story, unfortunately
    me

    View full-size slide

  112. @holly_cummins #RedHat
    Hey boss, I created a
    Kubernetes cluster.
    I forgot it for 2
    months.
    true story, unfortunately
    me

    View full-size slide

  113. @holly_cummins #RedHat
    Hey boss, I created a
    Kubernetes cluster.
    I forgot it for 2
    months.
    … and it’s £1000 a
    month.
    true story, unfortunately
    me

    View full-size slide

  114. @holly_cummins #RedHat

    View full-size slide

  115. @holly_cummins #RedHat

    View full-size slide

  116. @holly_cummins #RedHat
    $11,448.30

    View full-size slide

  117. @holly_cummins #RedHat
    uh…
    why are our cloud
    bills so large? what is all
    this stuff?
    mystery money pit

    View full-size slide

  118. @holly_cummins #RedHat

    View full-size slide

  119. @holly_cummins #RedHat

    View full-size slide

  120. @holly_cummins #RedHat
    cost is now an
    engineering concern

    View full-size slide

  121. @holly_cummins
    #JBCNConf
    FinOps

    View full-size slide

  122. @holly_cummins #RedHat
    getting it
    right

    View full-size slide

  123. @holly_cummins #RedHat
    tangibile-ness

    View full-size slide

  124. @holly_cummins #RedHat
    cncf-listed products
    tangibile-ness

    View full-size slide

  125. @holly_cummins #RedHat
    cncf-listed products
    cloud native architecture
    tangibile-ness

    View full-size slide

  126. @holly_cummins #RedHat
    cncf-listed products
    cloud native architecture
    cloud native operations
    tangibile-ness

    View full-size slide

  127. @holly_cummins #RedHat
    cncf-listed products
    cloud native architecture
    cloud native operations
    cloud native business drivers
    tangibile-ness

    View full-size slide

  128. @holly_cummins #RedHat
    cncf-listed products
    cloud native architecture
    cloud native operations
    cloud native business drivers
    tangibile-ness

    View full-size slide

  129. @holly_cummins #RedHat
    cncf-listed products
    cloud native architecture
    cloud native operations
    cloud native business drivers
    culture
    tangibile-ness

    View full-size slide

  130. ®
    thank you


    @holly_cummins

    View full-size slide