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

Building Trust with Continuous Delivery

Building Trust with Continuous Delivery

By: Chris Weldon

Improving

May 29, 2013
Tweet

More Decks by Improving

Other Decks in Technology

Transcript

  1. Chris Weldon u  Senior Consultant u  Microsoft MVP u  Slings

    Code in C# and PHP u  Systems Administrator devops u  [email protected] u  @neraath
  2. As a conference presenter, I would like a web site

    with upcoming conferences, so I can stay in-the-know on the conference circuit.
  3. As a conference presenter, I would like to see a

    list of upcoming conferences, so that I know what to submit presentations for.
  4. As a conference organizer, I would like conferences I create

    to persist beyond my session so that other users can see upcoming conferences.
  5. As a systems administrator, I would like enable caching of

    conferences from the database so that we can minimize the impact of querying the database.
  6. Scenario: Multiple web applications u  CritterMatch Core Business Libraries (CMCBL)

    u  CritterMatch.com depends on: u  log4net v1.0.6 u  Entity Framework v4 u  ASP.Net Web API v1.0.0 u  CMCBL v1.0.0 u  CritterMatch Business Services depends on: u  log4net v1.2.1 u  Entity Framework v5 u  ASP.Net Web API v1.2.2 u  CMCBL v1.1.0
  7. Scenario: Multiple web applications u  CritterMatch.com u  Developer Workstations u 

    Integration/QA u  Staging u  Production u  CritterMatch Business Services u  Developer Workstations u  Integration/QA u  Production – Client A u  Production – Client B
  8. Configuration Management u  Configurations likely to change: u  Database Connection

    Strings u  Web Service Connection Endpoints u  Authorized Users? u  Requirements Management u  Different views or behaviors u  Dependency Injection? u  Often times a configuration change, too.
  9. Monitor all teh things! u PIC: Dashboard rather than text u CPU,

    Memory, Disk I/O, Network I/O u Active Users, Requests per Second, Database Queries per Second u # of 200, 300, 400, 500-level requests per second u Heuristics
  10. Making Logging Useful to Ops & Engineering u  Ops needs

    to know: u  Network connection problems u  Load problems u  Service/dependency outages u  Consider surfacing events to event log for ops, leaving log files to devs u  Engineering needs to know: u  Everything that ops needs to know u  Performance
  11. Debug is never for production u  Not constantly, that is.

    u  If you are trying to debug the production database query, you’re doing it wrong. u  If you are trying to figure out the object model being sent to the view, you’re doing it wrong. u  If you are trying to debug the workflow of your application, you’re doing it wrong. u  The highest level of constant production logging should be INFO. u  Info serves for interactions between customers and your site. u  Info surfaces information customers have requested, but never the interactions of your code.
  12. Exception Management u  Don’t always surface exceptions to your Event

    Log if Ops is monitoring u  Boy Who Cried Wolf u  Be meticulous about which exceptions are surfaced out of your application u  Exceptions are expensive
  13. devops u  The collaboration, communication, and integration between developers and

    operations to reduce the friction of getting software releases into production.
  14. Q&A