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

Design Patterns for Efficient DevOps Processes

Design Patterns for Efficient DevOps Processes

Avatar for Rebecca Fitzhugh

Rebecca Fitzhugh

November 16, 2017
Tweet

More Decks by Rebecca Fitzhugh

Other Decks in Technology

Transcript

  1. Rebecca Fitzhugh •  @rebeccafitzhugh •  technicloud.com •  github.com/rfitzhugh •  vBrownBag

    •  vSphere Virtual Machine Management •  Learning VMware vSphere •  VCDX #243
  2. Process versus Service • Proc-ess, noun: a series of actions or

    steps taken in order to achieve a particular end. • Serv-ice, noun: a System supplying a [business] need.
  3. Who should be part of a VSM? • Service Stakeholders and

    Customers • Executors of a Process Tasks • Management ...but not all at the same time.
  4. Functional / Unit Testing •  Test each part thoroughly • 

    Unit •  Test how it all comes together •  Functional
  5. Browser/ Device Support Parallel execution Scalable Reports & Metrics Maintainable

    Run locally & remotely Easy to use OS & DB support Language / tool restrictions Different Environments Support features of product under test Tool support Test Automation Framework Design Criteria
  6. Test Pyramid UI Web Service View Integration Component Unit Business

    facing tests Technolog y facing tests Manual/ Exploratory
  7. Cynefin Framework Every release engineering strategy must: •  Be complexity-informed

    •  Account for the entirety of the system (systems thinking) •  Address human factors
  8. Design Pattern for Release Engineering •  Simplicity in process ->

    automate as much as possible, ensure oversight, gates •  Setting proper expectations -> day 2 ops, feedback loop, ITIL service transition •  Time to release -> canary, blue/green, feature flags and hiding
  9. Anti-Patterns for Release Engineering •  If your team is not

    involved in some sort of continuous integration, be worried. •  If your team is not working on a continuous delivery pipeline, be worried.
  10. DevOps Difference Change management tends to be a barrier. Change

    and release management become federated and integrated processes. •  Make everything a standard change (trust but verify), automated gates
  11. Check out code and build Unit testing Quality control Deploy

    to test environment Fetch latest builds Integration testing Package and archiving Fetch release ready builds Deploy to pre- prod Acceptance testing Deploy to production Change Advisory Board (CAB) Pipeline with CAB Feedback Loop
  12. More Efficient Change Management Make Change Management a priority Establish

    different modes of change to balance speed, quality, and risk Integrate change into DevOps pipeline Automate capture of change records with artifacts Improve collaboration and build auditable history Streamline process ITIL, DevOps, business, etc. Speed change processing and increase adoption Single source of truth for ALL changes Increase visibility for risk and compliance management