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

CD - Making it work with Windows and .NET

Chris
February 23, 2016

CD - Making it work with Windows and .NET

Co-Presented with Matthew Skelton (http://twitter.com/matthewpskelton).

Video: https://vimeo.com/157086224/

The technologies and approaches for Continuous Delivery are essentially identical across different operating systems, but some things need special treatment for Windows and .NET. When Jez Humble and Dave Farley published their groundbreaking book 'Continuous Delivery' in 2010, many of the tools described were either nonexistent on the Windows platform or did not support the rich automation capabilities they do now.

This talk aims to encourage many more teams working with Windows and .NET to adopt Continuous Delivery by sharing real-world success stories of organisations using Windows and .NET for Continuous Delivery; the speakers share their first-hand experience in different organisations and also explore some case studies from the new O'Reilly eBook 'Continuous Delivery with Windows and .NET'.

Given at London CD Meetup 23rd February 2016:
http://www.meetup.com/London-Continuous-Delivery/events/226590567/

Chris

February 23, 2016
Tweet

More Decks by Chris

Other Decks in Programming

Transcript

  1. CDwithWindows.net
    Continuous Delivery
    making it work with Windows and .NET
    Chris O’Dell and Matthew Skelton

    View Slide

  2. CDwithWindows.net
    why a special focus for .NET?
    some case studies
    recommendations
    (download the book!)

    View Slide

  3. CDwithWindows.net
    Continuous Delivery
    with Windows and .NET
    Chris O’Dell and Matthew Skelton
    O’Reilly, February 2016
    FREE via CDwithWindows.net

    View Slide

  4. CDwithWindows.net
    Chris O’Dell
    .NET wunderkind
    @ChrisAnnODell
    who
    Matthew Skelton
    grouchy build monkey
    @matthewpskelton

    View Slide

  5. CDwithWindows.net
    Why a special focus for .NET?

    View Slide

  6. CDwithWindows.net
    Windows/.NET around 2010
    ● No native Package Management
    ● Very limited automation
    ● Point and click configuration
    ● Monolithic configuration (SCCM etc.)

    View Slide

  7. CDwithWindows.net

    View Slide

  8. CDwithWindows.net
    Windows/.NET in 2016
    ● PowerShell APIs for all MS products
    ● NuGet, Chocolatey, OneGet, …
    ● 1st-class Git experience on Windows
    ● Native Windows/.NET support in Chef,
    Puppet, Ansible + DSC

    View Slide

  9. CDwithWindows.net

    View Slide

  10. CDwithWindows.net
    Some case studies

    View Slide

  11. CDwithWindows.net

    View Slide

  12. CDwithWindows.net

    View Slide

  13. CDwithWindows.net

    View Slide

  14. CDwithWindows.net

    View Slide

  15. CDwithWindows.net

    View Slide

  16. CDwithWindows.net
    Soundbites from
    ● Focus on flow
    ● Avoid complex branching strategies
    ● Aim to push work out to consumers asap
    ● Favour fast recovery

    View Slide

  17. CDwithWindows.net
    CDwithWindows.net

    View Slide

  18. CDwithWindows.net

    View Slide

  19. CDwithWindows.net

    View Slide

  20. CDwithWindows.net

    View Slide

  21. CDwithWindows.net

    View Slide

  22. CDwithWindows.net

    View Slide

  23. CDwithWindows.net

    View Slide

  24. CDwithWindows.net
    Takeaways from
    ● Collect metrics from your live systems
    ● Make them effective for issue resolution
    ● Too much unstructured data can be blinding
    ● Help your future selves pinpoint issues quickly and
    easily
    ● Continually review and revise effectiveness of
    existing dashboards

    View Slide

  25. CDwithWindows.net

    View Slide

  26. CDwithWindows.net
    Thanks: Owain Perry

    View Slide

  27. CDwithWindows.net
    Parting gifts from
    ● Git on Windows works very well
    ● Chef on Windows works very well
    ● GoCD on Windows works very well
    ● Github + TeamCity + GoCD == awesomeness
    ● At web scale, SaaS logging tools cost $$$, so
    invest in internal ELK at the right time

    View Slide

  28. CDwithWindows.net

    View Slide

  29. CDwithWindows.net

    View Slide

  30. CDwithWindows.net

    View Slide

  31. CDwithWindows.net
    Discoveries from
    ● Installation experience is a feature
    ● Chocolatey is still a bit ropey for client-facing
    systems (use MSIs)
    ● Split the codebase along domain boundaries
    ● Detect configuration drift
    ● Add metrics and logging somehow

    View Slide

  32. CDwithWindows.net
    Recommendations

    View Slide

  33. CDwithWindows.net
    Recommendations
    ● Focus on continual flow of changes
    ● Collect effective metrics from live
    systems
    ● Branch code with caution!

    View Slide

  34. CDwithWindows.net

    View Slide

  35. CDwithWindows.net
    Recommendations
    ● Use Git (not Svn / TFVC)
    ● Immutable infra with Windows 40GB
    VMs is difficult (impossible?)

    View Slide

  36. CDwithWindows.net

    View Slide

  37. CDwithWindows.net
    Recommendations
    ● Use NuGet for internal dependencies
    ● Use a proper artifact repository:
    Artifactory, Nexus, …
    ● Solution (.sln) / Project (.csproj)
    structure affects buildability - restructure

    View Slide

  38. CDwithWindows.net

    View Slide

  39. CDwithWindows.net
    Recommendations
    ● Automate DB changes: Redgate /
    Fluent / Flyway …
    ● DB ownership gets tricky: Dev vs DBA
    ● Patch mgt: test in upstream envs

    View Slide

  40. CDwithWindows.net

    View Slide

  41. CDwithWindows.net
    Recommendations
    ● Devolved AD administration with
    automated domain join/leave
    ● Detect config drift: UpGuard / ...
    ● Make friends with Linux for best tooling!

    View Slide

  42. CDwithWindows.net

    View Slide

  43. CDwithWindows.net
    Continuous
    Delivery with
    Windows and .NET
    is completely
    possible in 2016

    View Slide

  44. CDwithWindows.net
    Continuous Delivery
    with Windows and .NET
    Chris O’Dell and Matthew Skelton
    O’Reilly, February 2016
    FREE via CDwithWindows.net

    View Slide

  45. CDwithWindows.net
    thanks
    Dave Farley for the Foreword
    O’Reilly Editors:
    Brian Anderson and Kristen Brown
    Case Studies:
    ● Andy Lole at Carnect
    ● Paul Shannon at 7digital
    ● Steve Elliott at LateRooms.com
    ● Peter Mounce at JUST EAT
    ● Owain Perry at JustGiving
    ● John Esser and Russ Barnet at
    Ancestry.com

    View Slide