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

DevOpsDays Cuba 2016: Workshop: Devops Modelling (Theory, Practice and Caveats)

DevOpsDays Cuba 2016: Workshop: Devops Modelling (Theory, Practice and Caveats)

Author: Patrick Debois
Summary:

DevOpsDays Cuba

October 18, 2016
Tweet

More Decks by DevOpsDays Cuba

Other Decks in Technology

Transcript

  1. Modelling
    Devops
    http://farm6.staticflickr.com/5291/5540608712_a041894564_z.jpg
    @patrickdebois
    http://jedi.be/blog

    View full-size slide

  2. This presentation
    ๏Devops ‘Models’ in the wild
    ๏Seeing the system
    ๏‘Monitoring Stream Mapping Technique’
    ๏Observations
    ๏Focus on Flow
    ๏Identifying 4 areas of improvement
    ๏Example practices

    View full-size slide

  3. models to explain devops

    View full-size slide

  4. Paul Peisner

    View full-size slide

  5. https://twitter.com/dysinger
    Myopic
    Devops

    View full-size slide

  6. http://dev2ops.org/2012/09/use-devops-to-turn-it-into-a-strategic-weapon/
    Damon Edwards

    View full-size slide

  7. https://cacoo.com/diagrams/uapwdcN6SDfwClDY-351A0.png
    Mathias Marschall
    An emerging
    set of practices

    View full-size slide

  8. http://www.slideshare.net/dev2ops/you-cant-change-culture-but-you-can-change-behavior-and-behavior-
    becomes-culture
    Gene
    Kim

    View full-size slide

  9. 1. “Seeing”
    the System

    View full-size slide

  10. Value Stream Mapping

    View full-size slide

  11. “Monitoring”
    Stream Mapping
    aka Reverse Value Stream Mapping

    View full-size slide

  12. • Cross-Silo Group exercise
    • (both dev, test, ops ...)
    • Use a big wall
    • preferred near their officespace
    • preferred permanent
    • Whiteboard/Long Paper for drawing
    • Post-it with different colors
    Exercise Preparation

    View full-size slide

  13. Production
    Draw 4 quadrants
    Start upper right

    View full-size slide

  14. Production
    Put all
    production
    components on
    the board

    View full-size slide

  15. Production
    Each component =
    1 post-it

    View full-size slide

  16. Production
    Components (architecture)
    Put all
    production
    components on
    the board

    View full-size slide

  17. “I don’t know”
    can be a great
    conversation
    starter

    View full-size slide

  18. Production
    Components (architecture)
    External
    Add
    components outside
    your control your team
    depends outside your
    company (like cloud
    services)

    View full-size slide

  19. Production
    Components (architecture)
    External
    Add components
    outside your control
    your team depends on
    inside your company
    (like firewall, dns, mail,
    ldap)

    View full-size slide

  20. Production
    Components (architecture)
    Supportive
    Add the supportive
    components
    (backup, monitoring...)

    View full-size slide

  21. Production
    Components (architecture)
    Explain how these
    components interact
    (architecture)

    View full-size slide

  22. Production
    Components (architecture)
    Explain
    how you know they
    are working correctly
    “monitoring”

    View full-size slide

  23. Production
    EndUser
    Components (architecture)
    Add ‘core’ functionalities
    you’re providing to the
    end-user

    View full-size slide

  24. Production
    EndUser
    Components (architecture)
    Map the functionalities
    to your components
    (is your monitoring
    covering all components?)

    View full-size slide

  25. Production
    People (process)
    EndUser
    Components (architecture)
    Now repeat the process
    for people/groups
    involved in support

    View full-size slide

  26. Production
    People (process)
    EndUser
    Components (architecture)
    Add all groups/people
    involved for support

    View full-size slide

  27. Production
    People (process)
    EndUser
    Components (architecture)
    External
    Add all external
    groups/people involved
    for support

    View full-size slide

  28. Production
    People (process)
    EndUser
    Components (architecture)
    Supportive
    Add all supportive
    groups/people involved
    for support

    View full-size slide

  29. Production
    People (process)
    EndUser
    Components (architecture)
    Explain how these
    people interact
    (process)

    View full-size slide

  30. Production
    People (process)
    EndUser
    Components (architecture)
    How do you the process
    is working well?
    (KPI’s)

    View full-size slide

  31. Production
    People (process)
    EndUser
    Components (architecture)
    Relate the
    people/groups
    to each of the
    components
    (who get alerts)

    View full-size slide

  32. Production
    Components (architecture)
    People (process)
    EndUser
    Add the
    enduser support services
    you offer

    View full-size slide

  33. Production
    Components (architecture)
    People (process)
    EndUser
    Relate
    enduser support
    to the process and
    to the components
    to the functionalities

    View full-size slide

  34. “To fix something we
    know we have to
    go through
    development process”

    View full-size slide

  35. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Enter Project Mode

    View full-size slide

  36. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  37. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  38. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  39. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  40. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  41. Production
    Components (architecture)
    People (process)
    EndUser
    Business
    Repeat mapping
    for people/process
    initiate improvements in
    production

    View full-size slide

  42. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Repeat
    mapping for
    dev/test
    components

    View full-size slide

  43. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Repeat
    mapping for
    dev/test
    components

    View full-size slide

  44. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Repeat
    mapping for
    dev/test
    components

    View full-size slide

  45. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Repeat
    mapping for
    dev/test
    components

    View full-size slide

  46. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Repeat
    mapping for
    dev/test
    components

    View full-size slide

  47. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    “Seeing the devops system”

    View full-size slide

  48. a first step of
    evolving
    “common
    ground”

    View full-size slide

  49. Some Observations

    View full-size slide

  50. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    More mature
    people consider
    dev/test/qa as part
    of production

    View full-size slide

  51. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    More mature
    dev/test/qa/prod
    components
    are the same

    View full-size slide

  52. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    More mature
    = Less ????
    about end-user
    functionalities

    View full-size slide

  53. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    More mature
    = > monitoring/
    support for
    external/cloud
    services

    View full-size slide

  54. 2. Focus
    on Flow

    View full-size slide

  55. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business

    View full-size slide

  56. Remove friction
    http://philippe.kruchten.com/2013/11/24/friction/
    “Friction: the resistance that one surface or object encounters
    when moving over another.” [Merriam-Webster dict.]

    View full-size slide

  57. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Find your bottleneck(s) = friction

    View full-size slide

  58. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Technical Debt
    Social Debt

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  61. 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

  62. 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

  63. 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

  64. Tools
    Can you ‘technically’
    do it
    Process Should you do it
    People
    (culture)
    Will you do it
    “Layers per Area”
    Think ‘tags’ of things you do in an area
    Area X

    View full-size slide

  65. “Area Maturity Level”
    a way to quantify
    your progress
    http://groups.google.com/group/devops/browse_frm/thread/f3de603a4cea493e?scoring=d&

    View full-size slide

  66. Initial Unpredictable
    poorly controlled and reactive
    Managed Focused on project, often
    and reactive
    Defined Focused on organization and
    proactive
    Quantitatively Managed Measured and controlled
    Optimizing Focus on
    Improvement
    CMMI - Maturity Levels (Process centric)

    View full-size slide

  67. Intro Using Source Control ...
    Novice Builds Triggered by
    Commit ...
    Intermediate Automated Deployment
    to Testing ...
    Advanced Automated Functional
    Testing ...
    Insane Continuous Deployment
    to Prod ...
    Alternative Maturity Levels
    (cfr. Continuous Integration Model)
    http://blogs.urbancode.com/continuous-integration/continuous-integration-maturity-model/

    View full-size slide

  68. Name Area
    Provision dev/test and
    prod from the same src
    DEV delivery to Prod
    Embed Project
    knowledge
    Embed Operations
    knowledge
    feedback from Prod OPS
    Tools Intro
    Layer Level
    Practice: Use a configuration mangement system like chef/puppet to provision
    dev,test and prod from the same source
    Pattern: Automation, reuse of code
    Principles: By reusing the code it gets tested more && often
    more frequent/earlier feedback

    View full-size slide

  69. Production
    Components (architecture)
    People (process)
    Dev, Test, QA
    EndUser
    Business
    Different places where we can improve
    http://devopsdays.org/blog/2010/05/16/the-panel-experiment-and-ignite-devops/
    Andrew
    Schaefer

    View full-size slide

  70. Some example
    practices
    always understand the context before applying

    View full-size slide

  71. http://www.jedi.be/blog/2013/05/24/Infrastructure%20as%20Code/
    cfengine, puppet
    chef, ansible, salt, ...
    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
    Infrastructure as code
    Using same technology
    versioning/testing/...
    Executable
    ‘documentation’
    Common language

    View full-size slide

  72. 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.hashicorp.com/
    Reproduceable
    environments
    Dev/Test machines are
    using the same setup as
    Production
    When your app requires
    changes on the system
    you can try them and
    change them ourself
    Ops can propagate
    production changes to
    dev easily

    View full-size slide

  73. 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
    Monitoring & Metrics
    #monitoring{love,sucks}
    Enable devs to see the
    production usage/
    problems
    (graphite)
    Devs can add metrics in
    their code
    (Statsd)
    Make non-subjective
    decisions at the start of
    the project

    View full-size slide

  74. 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
    Developers
    wearing pagers
    Devs you have run
    operations learn and
    take it back to project
    Devs know the app
    better and can teach/
    train operations people
    Better Tests to prevent
    production problems/
    pain

    View full-size slide

  75. 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
    https://github.com/Netflix/SimianArmy
    Experience problems
    earlier in the pipeline
    (less costly)

    View full-size slide

  76. 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
    Visualize frequency of
    production errors and
    enable extraction of
    ‘context’

    View full-size slide

  77. 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
    https://speakerdeck.com/jnewland/chatops-at-github
    Shared view on the
    system events

    View full-size slide

  78. 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
    Objective view
    on problems
    (think retrospective)
    (Public)
    Post-Mortems

    View full-size slide

  79. 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
    Find bottlenecks in
    procedures/technology
    Game
    Days
    http://www.youtube.com/watch?v=LCZT_Q3z520&noredirect=1

    View full-size slide

  80. Training through simulation
    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
    SadOps
    http://github.com/railsmachine/sadops

    View full-size slide

  81. “You build it
    you run it”
    Amazon

    View full-size slide

  82. 3. Find Feedback loops

    View full-size slide

  83. Caveat: Differentiate
    Symptoms vs real cause

    View full-size slide

  84. Your bottleneck
    will move

    View full-size slide

  85. is it even in Dev & Ops ?
    MGMT FIN SALES
    HR
    Business Customer
    OPS
    DEV

    View full-size slide

  86. Devops is
    not just about tools
    or automation
    Understanding the system
    needs to be done together
    Takeways
    Everbody should care about
    the whole system

    View full-size slide

  87. 4. Look for
    Continuous
    Improvement

    View full-size slide

  88. Places to look for ideas

    View full-size slide

  89. Places to look for ideas (2)

    View full-size slide

  90. Places to look for ideas (3)

    View full-size slide