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

CD - Making it work with Windows and .NET

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:


February 23, 2016

More Decks by Chris

Other Decks in Programming


  1. CDwithWindows.net Continuous Delivery making it work with Windows and .NET

    Chris O’Dell and Matthew Skelton
  2. CDwithWindows.net why a special focus for .NET? some case studies

    recommendations (download the book!)
  3. CDwithWindows.net Continuous Delivery with Windows and .NET Chris O’Dell and

    Matthew Skelton O’Reilly, February 2016 FREE via CDwithWindows.net
  4. CDwithWindows.net Chris O’Dell .NET wunderkind @ChrisAnnODell who Matthew Skelton grouchy

    build monkey @matthewpskelton
  5. CDwithWindows.net Why a special focus for .NET?

  6. CDwithWindows.net Windows/.NET around 2010 • No native Package Management •

    Very limited automation • Point and click configuration • Monolithic configuration (SCCM etc.)
  7. CDwithWindows.net

  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
  9. CDwithWindows.net

  10. CDwithWindows.net Some case studies

  11. CDwithWindows.net

  12. CDwithWindows.net

  13. CDwithWindows.net

  14. CDwithWindows.net

  15. CDwithWindows.net

  16. CDwithWindows.net Soundbites from • Focus on flow • Avoid complex

    branching strategies • Aim to push work out to consumers asap • Favour fast recovery
  17. CDwithWindows.net CDwithWindows.net

  18. CDwithWindows.net

  19. CDwithWindows.net

  20. CDwithWindows.net

  21. CDwithWindows.net

  22. CDwithWindows.net

  23. CDwithWindows.net

  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
  25. CDwithWindows.net

  26. CDwithWindows.net Thanks: Owain Perry

  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
  28. CDwithWindows.net

  29. CDwithWindows.net

  30. CDwithWindows.net

  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
  32. CDwithWindows.net Recommendations

  33. CDwithWindows.net Recommendations • Focus on continual flow of changes •

    Collect effective metrics from live systems • Branch code with caution!
  34. CDwithWindows.net

  35. CDwithWindows.net Recommendations • Use Git (not Svn / TFVC) •

    Immutable infra with Windows 40GB VMs is difficult (impossible?)
  36. CDwithWindows.net

  37. CDwithWindows.net Recommendations • Use NuGet for internal dependencies • Use

    a proper artifact repository: Artifactory, Nexus, … • Solution (.sln) / Project (.csproj) structure affects buildability - restructure
  38. CDwithWindows.net

  39. CDwithWindows.net Recommendations • Automate DB changes: Redgate / Fluent /

    Flyway … • DB ownership gets tricky: Dev vs DBA • Patch mgt: test in upstream envs
  40. CDwithWindows.net

  41. CDwithWindows.net Recommendations • Devolved AD administration with automated domain join/leave

    • Detect config drift: UpGuard / ... • Make friends with Linux for best tooling!
  42. CDwithWindows.net

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

    in 2016
  44. CDwithWindows.net Continuous Delivery with Windows and .NET Chris O’Dell and

    Matthew Skelton O’Reilly, February 2016 FREE via CDwithWindows.net
  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