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

DevOpsDays Cuba 2016: How the practices of DevOps are evolving from servers to services.

DevOpsDays Cuba 2016: How the practices of DevOps are evolving from servers to services.

Author: Patrick Debois
Summary:

DevOpsDays Cuba

October 20, 2016
Tweet

More Decks by DevOpsDays Cuba

Other Decks in Technology

Transcript

  1. HOW THE PRACTICES OF
    DEVOPS ARE EVOLVING
    from servers to services
    @patrickdebois
    - Small Town Heroes

    View full-size slide

  2. Things I did (I’m proud of)

    View full-size slide

  3. OPS
    DEV
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
    4 areas of improvement

    View full-size slide

  4. OPS
    DEV
    Area 1: Extend delivery
    to production
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

    View full-size slide

  5. OPS
    DEV
    Area 2: Extend operations
    feedback to project
    Area 1: Extend delivery
    to production
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

    View full-size slide

  6. OPS
    DEV
    Area 2: Extend operations
    feedback to project
    Area 1: Extend delivery
    to production
    Area 3: Embed Project
    knowledge into Operations
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

    View full-size slide

  7. OPS
    DEV
    Area 4: Embed Operations
    knowledge into Project
    Area 2: Extend operations
    feedback to project
    Area 1: Extend delivery
    to production
    Area 3: Embed Project
    knowledge into Operations
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

    View full-size slide

  8. OPS
    DEV
    http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
    Technical Loop
    Business Loop
    Business Loop

    View full-size slide

  9. LIVE RESULTS
    INTERACTION
    MODERATION
    STUDIO CONTROL
    PART OF THE SHOW

    View full-size slide

  10. Focus on the Business

    View full-size slide

  11. “Backend” services
    “IT support” services
    Our “Office” services “Community” services
    “Frontend”
    services

    View full-size slide

  12. “Mobile” services
    SNS/Push Cognito

    View full-size slide

  13. (almost)
    NO SERVERS

    View full-size slide

  14. A bit further down the rabbit hole …

    View full-size slide

  15. Github
    service not available

    View full-size slide

  16. undocumented changes

    View full-size slide

  17. inconsistent behaviour

    View full-size slide

  18. different behaviour
    under load

    View full-size slide

  19. (almost)
    NO MAINTENANCE
    Less
    Maintenance

    View full-size slide

  20. increased risk
    when not available
    More speed

    View full-size slide

  21. With increased risk

    View full-size slide

  22. Functions As a Service (FAAS)
    aka
    “serverless”

    View full-size slide

  23. Case1
    Generate “personalised” image
    Browser -> Pre-signed S3 -> Lambda -> SQS -> Redis

    View full-size slide

  24. Case2
    Animated gif/movie/meme editor
    API GW -> Lambda -> Img magic movie -> s3

    View full-size slide

  25. You are an Agent

    View full-size slide

  26. You make promises to others in the system

    View full-size slide

  27. Your promises should be verifiable

    View full-size slide

  28. A promise does not guarantee an outcome

    View full-size slide

  29. Conditions should be part of your promise

    View full-size slide

  30. It needs to be clearly documented
    otherwise it’s not a promise

    View full-size slide

  31. It needs to be mutually agreed (not obligation)
    otherwise it’s not a promise

    View full-size slide

  32. You might depend on other agents to keep your promises

    View full-size slide

  33. Other agents make promises to you

    View full-size slide

  34. Their promises need to be verifiable
    clearly documented & mutually agreed (not obligation)

    View full-size slide

  35. But you can not make promises on behalf of other agents
    (bottom up vs top down)

    View full-size slide

  36. Promises can be conflicting in a system

    View full-size slide

  37. but the conflict can only be from internal promises
    (as we can not be responsible for others promises)

    View full-size slide

  38. To keep a promise you should have a choice
    Push vs Pull

    View full-size slide

  39. Single Leaves
    = SPOF
    To create choice you need to eliminate the single leaves (SPOF)

    View full-size slide

  40. All problems in computer science
    can be solved by
    another level of abstraction

    View full-size slide

  41. … except for the problem of
    too many layers of indirection …
    David Wheeler (inventor of subroutine)

    View full-size slide

  42. Every promise binding is the basis for relationship
    (Dunbar)

    View full-size slide

  43. Agents with a similar goal can be grouped
    into a Super Agent

    View full-size slide

  44. Single Leaves
    = SPOF
    You need multiple Super Agents to have a choice again

    View full-size slide

  45. Forks
    v1
    v2
    v3
    v1
    v2
    v3
    To keep promises agent can introduce
    different world views (versions)

    View full-size slide

  46. Slows down
    A super agent might get slow
    internal communication speed is key
    Opportunity
    for personalised
    service providers

    View full-size slide

  47. Scaling Promises
    keeping your promise while changing your size (is hard)

    View full-size slide

  48. container re-use
    non-deterministic

    View full-size slide

  49. limits not clear
    under stress

    View full-size slide

  50. services
    devops

    View full-size slide

  51. “I introduced devops
    and all I got was a remote API”

    View full-size slide

  52. It’s devops Jim but not as we know it

    View full-size slide

  53. emerging practices

    View full-size slide

  54. communicate
    the status
    of your promise
    and monitor others

    View full-size slide

  55. monitor your
    services
    and expose your own
    metrics (API)

    View full-size slide

  56. expose insights to
    other agents
    (API)

    View full-size slide

  57. show that you care
    about
    other agents

    View full-size slide

  58. expose your logs

    View full-size slide

  59. be clear on what
    happens when it fails

    View full-size slide

  60. backup external data
    (give an API please)

    View full-size slide

  61. provide & seek
    fast feedback
    on your promise change
    status

    View full-size slide

  62. be clear on your
    dependencies and expect the same
    of other services

    View full-size slide

  63. be proactive
    to make others keep their
    promises

    View full-size slide

  64. give insights on
    changing promises

    View full-size slide

  65. blog to
    communicate
    your service
    skill level

    View full-size slide

  66. talk at conferences to
    indicate
    your willingness
    to share

    View full-size slide

  67. make it convenient
    for other agents to use

    View full-size slide

  68. provide feedback to
    other agents

    View full-size slide

  69. show that you listen to
    those that depend on you

    View full-size slide

  70. show that your
    participation by improving
    the field

    View full-size slide

  71. show that your
    engineers
    are not afraid of talking to
    people

    View full-size slide

  72. let other agents
    influence your changing
    promises

    View full-size slide

  73. “The collaboration
    between dev & ops is now
    extended to external 3rd parties”

    View full-size slide

  74. “make clear promises
    to other agents”

    View full-size slide

  75. “And verify the status of
    other agents promises”

    View full-size slide

  76. “To keep your promise
    to the business”

    View full-size slide

  77. External Services are the next silo
    think
    “Supply Chain”

    View full-size slide

  78. https://vimeo.com/101735252
    DevOpsDays Minneapolis 2014
    Jeff Sussna, Promising Digital Service Quality

    View full-size slide

  79. [email protected]
    www.smalltownheroes.be
    @patrickdebois

    View full-size slide