Successfully reported this slideshow.
Your SlideShare is downloading. ×

Where we’re going, we don’t need servers!

Ad

WHERE WE’RE GOING, WE DON’T NEED SERVERS!
SAM NEWMAN
https://www.flickr.com/photos/mindfrieze/4297260599/i

Ad

@samnewman
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS

Ad

@samnewman
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 139 Ad
1 of 139 Ad

Where we’re going, we don’t need servers!

Download to read offline

Microservices and Serverless continue to be two of the most hyped terms in our industry. As I’ve explored previously, some of that hype may be justified, but you need to take some time to cut to the heart of what makes them important if you want to get the most out of them. I remain convinced that Serverless technology offers the potential to make teams significantly more productive, but I still find people confused as to what serverless actually is, and whether or not things like Cloud Functions mean we no longer need to worry about microservices, and if we can pretend that servers no longer exist.

In this talk, I’ll try to show just why serverless technology is so powerful, and I’ll also show how it fits in with microservices. As I will show, Microservices and Serverless goes together very well indeed - and that perhaps, just perhaps, you can stop worrying about servers.

Microservices and Serverless continue to be two of the most hyped terms in our industry. As I’ve explored previously, some of that hype may be justified, but you need to take some time to cut to the heart of what makes them important if you want to get the most out of them. I remain convinced that Serverless technology offers the potential to make teams significantly more productive, but I still find people confused as to what serverless actually is, and whether or not things like Cloud Functions mean we no longer need to worry about microservices, and if we can pretend that servers no longer exist.

In this talk, I’ll try to show just why serverless technology is so powerful, and I’ll also show how it fits in with microservices. As I will show, Microservices and Serverless goes together very well indeed - and that perhaps, just perhaps, you can stop worrying about servers.

Advertisement
Advertisement

More Related Content

Similar to Where we’re going, we don’t need servers! (20)

Advertisement

Where we’re going, we don’t need servers!

  1. 1. WHERE WE’RE GOING, WE DON’T NEED SERVERS! SAM NEWMAN https://www.flickr.com/photos/mindfrieze/4297260599/i
  2. 2. @samnewman Sam Newman Building Microservices DESIGNING FINE-GRAINED SYSTEMS
  3. 3. @samnewman Sam Newman Building Microservices DESIGNING FINE-GRAINED SYSTEMS
  4. 4. @samnewman Part 1: Cloud And Private Infrastructure
  5. 5. @samnewman Part 1: Cloud And Private Infrastructure Part 2: Serverless
  6. 6. @samnewman Part 1: Cloud And Private Infrastructure Part 2: Serverless Part 3: And Microservices
  7. 7. @samnewman Part 1: Cloud And Private Infrastructure https://www.flickr.com/photos/99095055@N04/15240217372/
  8. 8. @samnewman We are in love with our machines
  9. 9. @samnewman https://www.idc.com/getdoc.jsp?containerId=prUS45899920
  10. 10. @samnewman https://www.idc.com/getdoc.jsp?containerId=prUS45899920 65% of all IT spend is on premise as of 2020
  11. 11. @samnewman https://www.idc.com/getdoc.jsp?containerId=prUS45899920 65% of all IT spend is on premise as of 2020 On-premise spend {
  12. 12. @samnewman https://www.idc.com/getdoc.jsp?containerId=prUS45899920 65% of all IT spend is on premise as of 2020 Little change to public cloud since 2018, despite forecasts On-premise spend {
  13. 13. @samnewman According to IDC, over the next five years:
  14. 14. @samnewman “Spending on private cloud infrastructure will grow at a (compound annual growth rate) of 9.2%.” According to IDC, over the next five years:
  15. 15. @samnewman “Spending on private cloud infrastructure will grow at a (compound annual growth rate) of 9.2%.” According to IDC, over the next five years: Compared to the growth of public cloud over the same period being forecast as growing at 6%
  16. 16. @samnewman So public cloud is growing, but not as fast as private cloud
  17. 17. @samnewmanhttps://www.youtube.com/watch?v=dKjCWfuvYxQ
  18. 18. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure
  19. 19. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure Virtualised Infrastructure Early 2000
  20. 20. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure Virtualised Infrastructure Early 2000 Awesome!
  21. 21. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure Virtualised Infrastructure Early 2000 OpenStack 2010s Awesome!
  22. 22. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure Virtualised Infrastructure Early 2000 OpenStack 2010s Awesome! Erm…
  23. 23. @samnewman A BRIEF (AND INCOMPLETE) HISTORY OF INFRA Physical Infrastructure Virtualised Infrastructure Early 2000 OpenStack 2010s Kubernetes-based platforms 2018+ Awesome! Erm…
  24. 24. @samnewman
  25. 25. @samnewman Underlying Hardware
  26. 26. @samnewman Underlying Hardware Operating System
  27. 27. @samnewman Underlying Hardware Operating System Hypervisor
  28. 28. @samnewman Underlying Hardware Operating System Hypervisor VM OS
  29. 29. @samnewman Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes
  30. 30. @samnewman Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS
  31. 31. @samnewman Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your App
  32. 32. @samnewman Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your App Needs patching and management
  33. 33. @samnewman You probably aren’t as good at running a data centre as Google, Amazon or Microsoft
  34. 34. @samnewman BETTER ON THE CLOUD? Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your App VM OS VM OS K8 K8 Container OS Your Pod
  35. 35. @samnewman BETTER ON THE CLOUD? Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your App VM OS VM OS K8 K8 Container OS Your Pod Cloud IAAS
  36. 36. @samnewman BETTER ON THE CLOUD? Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your App VM OS VM OS K8 K8 Container OS Your Pod Cloud Container Platform
  37. 37. @samnewmanhttps://www.flickr.com/photos/torkildr/3462607995/ Part 2: Serverless
  38. 38. @samnewman #serverless
  39. 39. @samnewman A service offering that abstracts away the notion of underlying machines
  40. 40. @samnewman KEY PROPERTIES OF SERVERLESS
  41. 41. @samnewman KEY PROPERTIES OF SERVERLESS No server management
  42. 42. @samnewman KEY PROPERTIES OF SERVERLESS No server management Autoscale based on use
  43. 43. @samnewman KEY PROPERTIES OF SERVERLESS No server management Autoscale based on use Implicit high availability
  44. 44. @samnewman KEY PROPERTIES OF SERVERLESS No server management Autoscale based on use Implicit high availability Pay as you go
  45. 45. @samnewman EXAMPLE SERVERLESS PRODUCTS Function As A Service (FAAS)
  46. 46. @samnewman EXAMPLE SERVERLESS PRODUCTS Function As A Service (FAAS) Messaging Solutions
  47. 47. @samnewman EXAMPLE SERVERLESS PRODUCTS Function As A Service (FAAS) Messaging Solutions Databases
  48. 48. @samnewman EXAMPLE SERVERLESS PRODUCTS Function As A Service (FAAS) Messaging Solutions Databases Storage
  49. 49. @samnewman EXAMPLE SERVERLESS PRODUCTS Function As A Service (FAAS) Messaging Solutions Databases Storage
  50. 50. @samnewman BETTER WITH FAAS? Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your Function Container OS Your App
  51. 51. @samnewman BETTER WITH FAAS? Underlying Hardware Operating System Hypervisor VM OS Container Management/Kubernetes Container OS Your Function Container OS Your App Cloud FAAS
  52. 52. Physical Infra Setup
  53. 53. Physical Infra Setup Compute Network Storage Virtualised Infra
  54. 54. Physical Infra Setup CoAAS Managed DBs Managed Services Compute Network Storage Virtualised Infra
  55. 55. Physical Infra Setup CoAAS Managed DBs Managed Services Compute Network Storage Virtualised Infra FAAS BAAS Messaging Serverless
  56. 56. Physical Infra Setup Platform As A Service CoAAS Managed DBs Managed Services Compute Network Storage Virtualised Infra FAAS BAAS Messaging Serverless
  57. 57. Physical Infra Setup Platform As A Service CoAAS Managed DBs Managed Services Less Infra 
 Overhead Compute Network Storage Virtualised Infra FAAS BAAS Messaging Serverless
  58. 58. Physical Infra Setup Platform As A Service CoAAS Managed DBs Managed Services Less Infra 
 Overhead Greater Control Compute Network Storage Virtualised Infra FAAS BAAS Messaging Serverless
  59. 59. @samnewman FAAS In A Nutshell
  60. 60. @samnewman FAAS IN A NUTSHELL FAAS Platform
  61. 61. @samnewman FAAS IN A NUTSHELL FAAS Platform Function Launched Automatically
  62. 62. @samnewman FAAS IN A NUTSHELL FAAS Platform Function Triggered By: Launched Automatically
  63. 63. @samnewman FAAS IN A NUTSHELL FAAS Platform API Call Function Triggered By: Launched Automatically
  64. 64. @samnewman FAAS IN A NUTSHELL FAAS Platform API Call Message Function Triggered By: Launched Automatically
  65. 65. @samnewman FAAS IN A NUTSHELL FAAS Platform API Call Message File Function Triggered By: Launched Automatically
  66. 66. @samnewman FAAS IN A NUTSHELL FAAS Platform API Call Message Time-based File Function Triggered By: Launched Automatically
  67. 67. @samnewman Function FAAS IN A NUTSHELL FAAS Platform API Call Message Time-based File Function Triggered By: Launched Automatically Scales up on demand
  68. 68. @samnewman Function FAAS IN A NUTSHELL FAAS Platform API Call Message Time-based File Function Triggered By: Launched Automatically Function Scales up on demand
  69. 69. @samnewman Function FAAS IN A NUTSHELL FAAS Platform API Call Message Time-based File Function Triggered By: Launched Automatically Function Function Scales up on demand
  70. 70. @samnewman Function FAAS IN A NUTSHELL FAAS Platform API Call Message Time-based File Function Triggered By: Launched Automatically Function Function Scales up on demand Pay as you go
  71. 71. @samnewman FAAS LIMITATIONS
  72. 72. @samnewman FAAS LIMITATIONS Time limited
  73. 73. @samnewman FAAS LIMITATIONS Time limited Runtime restrictions
  74. 74. @samnewman FAAS LIMITATIONS Time limited Runtime restrictions Stateless
  75. 75. @samnewman FAAS LIMITATIONS Time limited Runtime restrictions Stateless Limited ability to control scale-up
  76. 76. @samnewman FAAS LIMITATIONS Time limited Runtime restrictions Stateless Limited ability to control scale-up Often have to rely on platform observability
  77. 77. @samnewman FAAS is the best abstraction we’ve come up with for developer-friendly deployment of code since Heroku
  78. 78. @samnewman Less infrastructure management
  79. 79. @samnewman Less infrastructure management More focus on delivering value
  80. 80. @samnewman #serverless + Kubernetes?
  81. 81. @samnewman https://www.openfaas.com/
  82. 82. @samnewman https://knative.dev/
  83. 83. @samnewman Part 3: Microservices and Serverless https://www.flickr.com/photos/mustangjoe/20437315996/
  84. 84. @samnewman ANATOMY OF A MICROSERVICE Shipping
  85. 85. @samnewman ANATOMY OF A MICROSERVICE Shipping Shipping Shipping
  86. 86. @samnewman ANATOMY OF A MICROSERVICE Shipping Shipping Shipping Multiple Instances
  87. 87. @samnewman ANATOMY OF A MICROSERVICE Shipping Shipping Shipping Multiple Instances
  88. 88. @samnewman ANATOMY OF A MICROSERVICE Shipping Shipping Shipping Multiple Instances
  89. 89. @samnewman ANATOMY OF A MICROSERVICE Shipping Shipping Shipping Multiple Instances Distribute across failure planes
  90. 90. @samnewman AZ-3AZ-2AZ-1 ANATOMY OF A MICROSERVICE Shipping Shipping Shipping Multiple Instances Distribute across failure planes
  91. 91. @samnewman In general, a microservice instance is assumed to be permanently running waiting for something to happen
  92. 92. @samnewman In general, a microservice instance is assumed to be permanently running waiting for something to happen They can be deployed on to physical machines, VMs, or containers
  93. 93. @samnewman Shipping
  94. 94. @samnewman Shipping Function
  95. 95. @samnewman Shipping Function Function
  96. 96. @samnewman Shipping Function Function Function
  97. 97. @samnewman Shipping Function Function Function Function Function Function FunctionFunction Function Function Function Function Function Function Function Function Function Function Function Function Function
  98. 98. @samnewman Think of a function less as a code concept, more as a deployment concept
  99. 99. @samnewman A GOOD STARTING POINT Shipping
  100. 100. @samnewman A GOOD STARTING POINT Shipping Shipping <<function>>
  101. 101. @samnewman A GOOD STARTING POINT Shipping Shipping <<function>> Helps gain familiarity with the FAAS concepts and tooling
  102. 102. @samnewman A GOOD STARTING POINT Shipping Shipping <<function>> Helps gain familiarity with the FAAS concepts and tooling Single deployable
  103. 103. @samnewman A GOOD STARTING POINT Shipping Shipping <<function>> Helps gain familiarity with the FAAS concepts and tooling Single deployable Drastically reduced infra work
  104. 104. @samnewman Going finer-grained?
  105. 105. @samnewman AGGREGATES
  106. 106. @samnewman AGGREGATES “A cluster of associated objects that are treated as a unit for the purpose of data changes” - Eric Evans, Domain-Driven Design
  107. 107. @samnewman AGGREGATES “A cluster of associated objects that are treated as a unit for the purpose of data changes” - Eric Evans, Domain-Driven Design We want to manage an aggregate as a single “entity” in terms of state changes
  108. 108. @samnewman AGGREGATES “A cluster of associated objects that are treated as a unit for the purpose of data changes” - Eric Evans, Domain-Driven Design We want to manage an aggregate as a single “entity” in terms of state changes We want all operations which manage the state to behave in a consistent fashion
  109. 109. @samnewman AGGREGATE MANAGEMENT AS A FUNCTION Shipping
  110. 110. @samnewman AGGREGATE MANAGEMENT AS A FUNCTION Shipping Identify aggregates within your microservice
  111. 111. @samnewman AGGREGATE MANAGEMENT AS A FUNCTION Shipping Route Delivery Consignment Identify aggregates within your microservice
  112. 112. @samnewman AGGREGATE MANAGEMENT AS A FUNCTION Shipping Route Delivery Consignment Identify aggregates within your microservice One function can manage all operations of the aggregate
  113. 113. @samnewman AGGREGATE MANAGEMENT AS A FUNCTION Shipping Route Delivery Consignment Identify aggregates within your microservice One function can manage all operations of the aggregate Hide this detail from consumers
  114. 114. @samnewman MORE SERVERLESS?
  115. 115. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>>
  116. 116. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>>
  117. 117. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>> Serverless DB
  118. 118. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>> Serverless DB Autoscaling
  119. 119. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>> Serverless DB Autoscaling Implicit High Availability
  120. 120. @samnewman MORE SERVERLESS? Shipping <<function>> Shipping <<function>> Shipping <<function>> Serverless DB Autoscaling Implicit High Availability Pay for what you use
  121. 121. @samnewman Extreme Caution! Serverless databases can be different to what you are used to
  122. 122. @samnewman https://aws.amazon.com/rds/aurora/
  123. 123. @samnewman MESSAGING
  124. 124. @samnewman MESSAGING
  125. 125. @samnewman MESSAGING
  126. 126. @samnewman MESSAGING
  127. 127. @samnewman MESSAGING Both AWS and Azure have lots of great options
  128. 128. @samnewman MESSAGING Both AWS and Azure have lots of great options Again, behaviour can be different to what you’re used to
  129. 129. @samnewman MESSAGING Both AWS and Azure have lots of great options Again, behaviour can be different to what you’re used to For Kubernetes fans? Well…
  130. 130. @samnewman In summary…
  131. 131. @samnewman Pick the highest level abstraction you are happy with
  132. 132. Physical Infra Setup Platform As A Service CoAAS Managed DBs LessInfraOverhead MoreLowLevelAccess GreaterControl Compute Network Storage Virtualised Infra FAAS BAAS Messaging Serverless
  133. 133. @samnewman Offload work to someone who can do it better than you
  134. 134. @samnewman You won’t know until you try
  135. 135. @samnewman THE SERVERLESS FRAMEWORK https://www.serverless.com/open-source/
  136. 136. @samnewman THANKS!
  137. 137. @samnewman THANKS! https://samnewman.io/
  138. 138. @samnewman THANKS! https://www.gotoacademy.nl/collections/virtual-sam-newman-designing-microservices
  139. 139. @samnewman THANKS! https://www.gotoacademy.nl/collections/virtual-sam-newman-designing-microservices

×