O slideshow foi denunciado.

Patrick Debois - From Serverless to Servicefull

3

Compartilhar

Carregando em…3
×
26 de 95
26 de 95

Patrick Debois - From Serverless to Servicefull

3

Compartilhar

Baixar para ler offline

Presented at ServerlessConf NYC 2016.

It's great that we don't need to manage servers anymore and can just use a service. Let them worry about the availability. Endless capacity ftw.

Reality is that we are just entering another abstraction layer and the same problems need to be solved:
- what if the server goes down vs what if the service goes down
- how many servers do I need vs how many req/sec do I need ask Amazon to provision
- how do monitor my servers vs how do I monitor my service vs how do I monitor my functions
- how to control who gets access to my servers vs who can access my services

- how do I keep track of my server versions/dependencies vs how do I keep track of my functions versions/dependencies

A lot of the *-ilities revolve around trust. Trust in the system. And not just the technical side, also including the people side.
The promise of an API is not enough, it's the promise of a ecosystem of services.
It's only a small step from running a function on AWS Lambda vs using an external service.
Why run the function at all if someone is better at it? Because we have more 'control'?

In the presentation I will provide examples of real projects we did at Small Town Heroes (http://www.smalltownheroes.be) where we are leveraging the power of serverless. And how we try to expand our internal devops collaboration beyond the api boundaries to focus on the full stack service and not merely the components.

Winter is coming

Presented at ServerlessConf NYC 2016.

It's great that we don't need to manage servers anymore and can just use a service. Let them worry about the availability. Endless capacity ftw.

Reality is that we are just entering another abstraction layer and the same problems need to be solved:
- what if the server goes down vs what if the service goes down
- how many servers do I need vs how many req/sec do I need ask Amazon to provision
- how do monitor my servers vs how do I monitor my service vs how do I monitor my functions
- how to control who gets access to my servers vs who can access my services

- how do I keep track of my server versions/dependencies vs how do I keep track of my functions versions/dependencies

A lot of the *-ilities revolve around trust. Trust in the system. And not just the technical side, also including the people side.
The promise of an API is not enough, it's the promise of a ecosystem of services.
It's only a small step from running a function on AWS Lambda vs using an external service.
Why run the function at all if someone is better at it? Because we have more 'control'?

In the presentation I will provide examples of real projects we did at Small Town Heroes (http://www.smalltownheroes.be) where we are leveraging the power of serverless. And how we try to expand our internal devops collaboration beyond the api boundaries to focus on the full stack service and not merely the components.

Winter is coming

Mais Conteúdo rRelacionado

Livros relacionados

Gratuito durante 30 dias do Scribd

Ver tudo

Patrick Debois - From Serverless to Servicefull

  1. 1. FROM SERVERLESS TO SERVICEFULL HOW THE MINDSET OF DEVOPS IS EVOLVING @patrickdebois - Small Town Heroes
  2. 2. Things I did (I’m proud of)
  3. 3. LIVE RESULTSINTERACTION MODERATION STUDIO CONTROLPART OF THE SHOW
  4. 4. (almost) SERVERLESS
  5. 5. “Backend” services ELB
  6. 6. “IT support” services
  7. 7. Our “Office” services
  8. 8. “Community” services
  9. 9. “Frontend” services
  10. 10. “Mobile” services SNS/Push Cognito
  11. 11. (almost) SERVICEFULL
  12. 12. A bit further down the rabbit hole …
  13. 13. Github
  14. 14. undocumented changes to service
  15. 15. limits and unavailable
  16. 16. autoscaling is too slow for peak traffic
  17. 17. service got disabled because of too many bounces
  18. 18. inconsistent behaviour
  19. 19. (almost) NO MAINTENANCE
  20. 20. increased risk when not available
  21. 21. Case1 Generate “personalised” image Browser -> Pre-signed S3 -> Lambda -> SQS -> Redis
  22. 22. Case2 Peak load testing like a real browser SQS -> Lambda -> S3 results
  23. 23. Case3 Generate “personalised” text animated gif API GW -> Lambda -> S3 image
  24. 24. Case4 Animated gif/movie/meme editor API GW -> Lambda -> Img magic movie -> s3
  25. 25. You are an Agent
  26. 26. You make promises to others in the system
  27. 27. Your promises should be verifiable
  28. 28. A promise does not guarantee an outcome
  29. 29. Conditions should be part of your promise
  30. 30. It needs to be clearly documented otherwise it’s not a promise
  31. 31. the language of a promise must be shared
  32. 32. It needs to be mutually agreed (not obligation) otherwise it’s not a promise
  33. 33. You might depend on other agents to keep your promises
  34. 34. Other agents make promises to you
  35. 35. Their promises need to be verifiable clearly documented & mutually agreed (not obligation)
  36. 36. But you can not make promises on behalf of other agents (bottom up vs top down)
  37. 37. Promises can be conflicting in a system
  38. 38. but the conflict can only be from internal promises (as we can not be responsible for others promises)
  39. 39. To keep a promise you should have a choice Push vs Pull
  40. 40. Single Leaves = SPOF To create choice you need to eliminate the single leaves (SPOF)
  41. 41. “Abstraction is selective ignorance” http://en.wikipedia.org/wiki/Andrew_Koenig_(programmer)
  42. 42. All problems in computer science can be solved by another level of abstraction
  43. 43. … except for the problem of too many layers of indirection … David Wheeler (inventor of subroutine)
  44. 44. Every promise binding is the basis for relationship (Dunbar)
  45. 45. Agents with a similar goal can be grouped into a Super Agent
  46. 46. Services
  47. 47. Single Leaves = SPOF You need multiple Super Agents to have a choice again
  48. 48. Forksv1 v2 v3 v1 v2 v3 To keep promises agent can introduce different world views (versions)
  49. 49. Slows down A super agent might get slow internal communication speed is key
  50. 50. Scaling Promises keeping your promise while changing your size (is hard)
  51. 51. container re-use non-deterministic
  52. 52. limits not clear under stress
  53. 53. scale is not always infinite
  54. 54. services devops
  55. 55. Holy Cow!
  56. 56. “I introduced devops and all I got was a remote API”
  57. 57. It’s devops Jim but not as we know it
  58. 58. emerging practices
  59. 59. communicate the status of your promise and monitor others
  60. 60. monitor your services and expose your own metrics (API)
  61. 61. expose insights to other agents (API)
  62. 62. show that you care about other agents
  63. 63. expose your logs
  64. 64. be clear on what happens when it fails
  65. 65. backup external data (give an API please)
  66. 66. provide & seek fast feedback on your promise change status
  67. 67. be clear on your dependencies and expect the same of other services
  68. 68. be proactive to make others keep their promises
  69. 69. give insights on changing promises
  70. 70. blog to communicate your service skill level
  71. 71. talk at conferences to indicate your willingness to share
  72. 72. make it convenient for other agents to use
  73. 73. provide feedback to other agents
  74. 74. show that you listen to those that depend on you
  75. 75. show that your participation by improving the field
  76. 76. show that your engineers are not afraid of talking to people
  77. 77. be responsive to requests
  78. 78. let other agents influence your changing promises
  79. 79. External Services are the next silo
  80. 80. “The collaboration between dev & ops is now extended to external 3rd parties”
  81. 81. “make clear promises to other agents”
  82. 82. “And verify the status of other agents promises”
  83. 83. “To keep your promise to the business”
  84. 84. Questions?
  85. 85. https://vimeo.com/101735252 DevOpsDays Minneapolis 2014 Jeff Sussna, Promising Digital Service Quality

×