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
- Robot friends

4298a3f5e864fa84f25b90f48288c0d4?s=128

Holly Cummins

May 19, 2022
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. Holly Cummins Red Hat @holly_cummins why you can’t buy cloud

    native
  2. @holly_cummins #CodeCamp #RedHat

  3. @holly_cummins #CodeCamp #RedHat

  4. @holly_cummins #CodeCamp #RedHat let’s install it!

  5. @holly_cummins #CodeCamp #RedHat let’s install it! where do I download

    it?
  6. @holly_cummins #CodeCamp #RedHat

  7. @holly_cummins #CodeCamp #RedHat yes, irony Buy Quarkus! Quarkus helps you

    be cloud native!
  8. what are we even trying to buy?

  9. what are we even trying to buy?

  10. Kubernetes what are we even trying to buy?

  11. Kubernetes what are we even trying to buy? Micro services

  12. Kubernetes what are we even trying to buy? Micro services

    Born on the Cloud
  13. Kubernetes what are we even trying to buy? Micro services

    Born on the Cloud DevOps but make it 2021
  14. Kubernetes what are we even trying to buy? Micro services

    Born on the Cloud 12-factor DevOps but make it 2021
  15. Kubernetes what are we even trying to buy? Micro services

    Born on the Cloud 12-factor Just Cloud DevOps but make it 2021
  16. 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
  17. 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
  18. 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
  19. None
  20. @holly_cummins #RedHat microservices will make me look so good software

    is fashions
  21. @holly_cummins #RedHat surely no one would …

  22. @holly_cummins #RedHat surely no one would …

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

  24. @holly_cummins #RedHat cv-driven development

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

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

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

    ooh, which ones shall I have?
  28. @holly_cummins #RedHat it’s not just a landscape it’s a catalog

    ooh, which ones shall I have? they’re all so shiny
  29. @holly_cummins #RedHat what problem are we trying to solve?

  30. @holly_cummins #RedHat “the problem I am solving is there are

    no microservices on my CV”
  31. @holly_cummins #RedHat my problem is there aren’t enough containers yet?

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

  33. None
  34. None
  35. None
  36. Warning May contain Coupling Cloud native spaghetti Distributed monolith !

  37. @holly_cummins #RedHat

  38. @holly_cummins #RedHat distributed monolith

  39. @holly_cummins #RedHat distributed monolith worst of both worlds: no compile-time

    checking … or guaranteed function execution
  40. @holly_cummins #RedHat microservices are not the goal

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

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

    means they are a means
  43. None
  44. “the cloud native-ness comes from these network connections”

  45. “the cloud native-ness comes from these network connections” (no, it

    doesn’t!)
  46. the pain comes from these network connections

  47. remember the distributed computing fallacies? the pain comes from these

    network connections
  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. the pain comes from these network connections
  49. 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
  50. @holly_cummins #CodeCamp #RedHat 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
  51. @holly_cummins #CodeCamp #RedHat “every time we change one microservice, another

    breaks” true story
  52. @holly_cummins #CodeCamp #RedHat distributed != decoupled

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

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

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

  56. @holly_cummins #RedHat “we made our pipeline enforce releasing all our

    microservices at the same time.” true story
  57. @holly_cummins #RedHat can you even deploy at all?

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

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

  60. @holly_cummins #CodeCamp #RedHat deferred wiring a deploy is not a

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

  62. @holly_cummins #CodeCamp #RedHat feature flags a deploy is not a

    release
  63. @holly_cummins #CodeCamp #RedHat A/B testing canary deploys a deploy is

    not a release
  64. @holly_cummins #CodeCamp #RedHat “we have a CI/CD”

  65. @holly_cummins #CodeCamp #RedHat by the way, you also can’t buy

    devops
  66. @holly_cummins #CodeCamp #RedHat and you can’t buy a devop

  67. @holly_cummins #CodeCamp #RedHat CI/CD is something you do not a

    tool you buy
  68. @holly_cummins #CodeCamp #RedHat “i’ll merge my branch into our CI

    next week”
  69. @holly_cummins #CodeCamp #RedHat “CI/CD … CI/CD … CI/CD … we

    release every six months … CI/CD …. ”
  70. @holly_cummins #CodeCamp #RedHat continuous. I do not think that word

    means what you think it means.
  71. @holly_cummins #RedHat “we’re going too slowly. we need to get

    rid of COBOL and make microservices!” true story
  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
  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…”
  74. @holly_cummins #RedHat releases are like brushing your teeth: if it

    hurts do it more often
  75. @holly_cummins #RedHat “we can’t ship until we have more confidence

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

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

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

    be tested spaghetti
  79. @holly_cummins #RedHat “we can’t release because we don’t seem to

    be able to actually change things”
  80. @holly_cummins #RedHat the enterprise hairball why change is hard:

  81. @holly_cummins #RedHat our layer (“business logic”)

  82. @holly_cummins #RedHat our layer (“business logic”)

  83. @holly_cummins #RedHat front-end layer our layer (“business logic”)

  84. @holly_cummins #RedHat database layer front-end layer our layer (“business logic”)

  85. @holly_cummins #RedHat integration layer (“panicked sandwich”) database layer front-end layer

    our layer (“business logic”)
  86. @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
  87. @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
  88. @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
  89. @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
  90. @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?
  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 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?
  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 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?
  93. @holly_cummins #CodeCamp #RedHat a new approach to ops

  94. @holly_cummins #CodeCamp #RedHat SRE

  95. @holly_cummins #CodeCamp #RedHat a new approach to risk

  96. @holly_cummins #CodeCamp #RedHat de-risk through automation, not paperwork

  97. @holly_cummins #CodeCamp #RedHat

  98. @holly_cummins #CodeCamp #RedHat old-style governance isn’t going to work

  99. @holly_cummins #CodeCamp #RedHat “this provisioning software is broken”

  100. @holly_cummins #CodeCamp #RedHat what we sold “this provisioning software is

    broken” 10 minute provision-time
  101. @holly_cummins #CodeCamp #RedHat what we sold “this provisioning software is

    broken” 10 minute provision-time 3 month provision- time what the client thought they’d got
  102. @holly_cummins #CodeCamp #RedHat 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
  103. @holly_cummins #RedHat one thing you can buy

  104. @holly_cummins #RedHat one thing you can buy

  105. @holly_cummins #RedHat one thing you can buy

  106. @holly_cummins #CodeCamp #RedHat you may not want all the cloud

    you bought
  107. @holly_cummins #CodeCamp #RedHat you may not want all the cloud

    you bought
  108. @holly_cummins #RedHat Hey boss, I created a Kubernetes cluster. true

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

    forgot it for 2 months. true story, unfortunately me
  110. @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
  111. @holly_cummins #RedHat

  112. @holly_cummins #RedHat

  113. @holly_cummins #RedHat $11,448.30

  114. @holly_cummins #RedHat uh… why are our cloud bills so large?

    what is all this stuff? mystery money pit
  115. @holly_cummins #RedHat

  116. @holly_cummins #RedHat

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

  118. @holly_cummins #CodeCamp #RedHat FinOps

  119. @holly_cummins #RedHat getting it right

  120. @holly_cummins #RedHat tangibile-ness

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

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

  123. @holly_cummins #RedHat cncf-listed products cloud native architecture cloud native operations

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

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

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

    cloud native business drivers culture tangibile-ness
  127. ® thank you @holly_cummins