$30 off During Our Annual Pro Sale. View Details »

Continuous Deployment to Build Trust

Continuous Deployment to Build Trust

neraath

May 17, 2013
Tweet

More Decks by neraath

Other Decks in Programming

Transcript

  1. Continuous
    Deployment to
    Build Trust
    CHRIS WELDON
    SENIOR CONSULTANT
    IMPROVING ENTERPRISES

    View Slide

  2. Chris Weldon
     Senior Consultant
     Microsoft MVP
     Slings Code in C# and PHP
     Systems Administrator devops
    [email protected]
     @neraath

    View Slide

  3. And now for
    something
    completely
    different

    View Slide

  4. As a conference presenter,
    I would like a web site with
    upcoming conferences,
    so I can stay in-the-know on the
    conference circuit.

    View Slide

  5. As a conference presenter,
    I would like to see a list of
    upcoming conferences,
    so that I know what to submit
    presentations for.

    View Slide

  6. Our Journey
    Current
    Continuous
    Deployments

    View Slide

  7. In Business

    View Slide

  8. We Develop
    Software

    View Slide

  9. When developing software…

    View Slide

  10. We often try as a team…

    View Slide

  11. But are often racing the clock…

    View Slide

  12. So we rush Apps
    to Production.

    View Slide

  13. This cycle repeats and we make
    Frequent Changes to Production.

    View Slide

  14. And Our Apps Repeatedly Break

    View Slide

  15. When stuff breaks…
    The business gets mad!

    View Slide

  16. They start to see us as
    “rogues”

    View Slide

  17. And institute gates to
    stop this “bad” activity

    View Slide

  18. Gates are typically
    nothing more than

    View Slide

  19. Why?

    View Slide

  20. It’s about Trust.

    View Slide

  21. How do we rebuild trust?

    View Slide

  22. Back to basics.

    View Slide

  23. We write software
    to support the
    business.

    View Slide

  24. Or software is the business.

    View Slide

  25. We need to adapt
    to changes in business
    needs.

    View Slide

  26. We need to (rapidly) fix bugs.

    View Slide

  27. We properly
    test first.

    View Slide

  28. In order to
    maintain stability…

    View Slide

  29. …we should have slow, continuous
    evolution of features.

    View Slide

  30. So how do we
    support these
    goals?

    View Slide

  31. Strive for technical
    excellence!

    View Slide

  32. Remember
    to test!

    View Slide

  33. We should constantly integrate all
    changes back into mainline.

    View Slide

  34. requent Deployments
    Amount of
    Change
    Inf
    F

    View Slide

  35. Automate
    Deployments

    View Slide

  36. Our Journey
    Current
    Continuous
    Deployments
    Automation

    View Slide

  37. Technical Excellence

    View Slide

  38. Let’s talk about your databases…

    View Slide

  39. As a conference organizer,
    I would like conferences I create
    to persist beyond my session
    so that other users can see
    upcoming conferences.

    View Slide

  40. Is your DBA’s idea of SQL
    Management pitching him a SQL
    script to run?

    View Slide

  41. That’s not
    automation.

    View Slide

  42. Solution: Migrations
     Entity Framework Code-First Migrations
     Migrator.NET
     RoundhousE
     And many more…

    View Slide

  43. Migrations Demo
    Demo

    View Slide

  44. Configuration Management

    View Slide

  45. Scenario: Multiple web applications
     CritterMatch.com
     Developer Workstations
     Integration/QA
     Staging
     Production
     CritterMatch Business Services
     Developer Workstations
     Integration/QA
     Production – Client A
     Production – Client B

    View Slide

  46. Configuration Management
     Configurations likely to change:
     Database Connection Strings
     Web Service Connection Endpoints
     Authorized Users?
     Requirements Management
     Different views or behaviors
     Dependency Injection?
     Often times a configuration change, too.

    View Slide

  47. Configuration Management
    Strategies

    View Slide

  48. Logging and Monitoring Strategies

    View Slide

  49. Better Know a Framework

    View Slide

  50. Deployment
    Techniques

    View Slide

  51. Continuous Deployment = Release
    to Production After Every Commit?

    View Slide

  52. We don’t want to
    be rogues…

    View Slide

  53. Production Push/Pull

    View Slide

  54. CI Push

    View Slide

  55. But how do we
    establish trust?

    View Slide

  56. Our Journey
    Current
    Continuous
    Deployments
    Automation
    Testability

    View Slide

  57. Unit Tests?

    View Slide

  58. What about your UI?

    View Slide

  59. What about
    dependency or
    component
    failure?

    View Slide

  60. View Slide

  61. Smoke Tests!

    View Slide

  62. Behavioral/Acceptance Tests

    View Slide

  63. Still having trust
    issues?

    View Slide

  64. Our Journey
    Current
    Continuous
    Deployments
    Automation
    Testability
    Manageable

    View Slide

  65. Gated deployments

    View Slide

  66. Rollback Techniques

    View Slide

  67. Our Journey
    Current
    Continuous
    Deployments
    Automation
    Testability
    Manageable

    View Slide

  68. Recap

    View Slide

  69. Q&A

    View Slide

  70. Ratings, Please!
    http://spkr8.com/neraath

    View Slide