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

Improving Customer Experience through Infrastru...

Brandon Burton
September 30, 2016

Improving Customer Experience through Infrastructure Automation

As many of us know, automation is one of the cornerstones of cultivating a "DevOps culture." We've seen how automation helps improve the lives of operations and development folks. But, a "DevOps culture" is also about seeing the business as a whole and how to make "operations" work be seen as critical and important part of the business value chain. We should be thinking about how to directly link our infrastructure automation initiatives back to large goals and objectives that improve the customer experience.

This talk will share some of the key automation objectives the build infrastructure engineering group at Travis CI is doing, the process and challenges we've encountered we figure out how to incorporate the larger focus into work planning, and what's being done to measure the actual customer impact of our new infrastructure automation changes.

Brandon Burton

September 30, 2016
Tweet

More Decks by Brandon Burton

Other Decks in Technology

Transcript

  1. two ways we are trying to apply this: build env

    maintenance build execution start times
  2. packer builds running under travis templates are open source users

    can open issues we open issues on behalf of users what we're doing
  3. packer runs chef (bake the image) our chef repo is

    open source users (already) contribute fixes and updates to our chef cookbooks what we're doing
  4. added serverspec testing tests pass? packer publishes artifact build passes?

    register artifact for opt-in testing group: edge what we're doing
  5. still to be done? more integration testing better unit testing

    make it easier for external contributions to chef cookbooks packer templates get OS X under Packer and Chef and not ./doit5.sh commit to release schedule for updates, e.g. stable: quarterly rc: month edge: if CI passes
  6. more frequent updates, faster build times more confidence that updates

    won't break their builds, builds trust users are able to more directly impact future changes what could it mean for users?
  7. improved reliability growth of trust better consistency more user engagement

    faster builds! how would we described this in terms of user impact?
  8. constraint: (today) VM creation is part of the build lifecycle

    users have to wait on it right boot times can be slow and can be highly variable in the GCE and vSphere
  9. building an auto-scaler? YES! WHY? existing metrics experience using other

    auto-scaling products experience making our own services to extend cloud APIs
  10. auto-scaler needs ̣ maintains pool of ready VMs based on

    VM image usage metrics ̣ can take time windows into account for headroom calculations ̣ v1 should be simple and naive ̣ support multiple compute environments ̣ EC2, GCE, vSphere, etc ̣ mature life-cycle hook support
  11. bespoke auto-scaler benefits? ̣ cloud agnostic ̣reduces user impact for

    types of failures ̣ enables user contributions
  12. we want every customer build starts with 20-30s of their

    `git push` described with user impact?
  13. faster build times improves feedback loop for users inspire customers

    to test more existing code and new code described with user impact?
  14. we've seen success in adapting to existing plans we've seen

    success in making future plans this way we try to improve incrementally we are ok with having a long way to go still in conclusion