Successfully reported this slideshow.

.Net Continuous Delivery - Sydney CD meetup - September 2014

4

Share

Upcoming SlideShare
Domain's Robot Army
Domain's Robot Army
Loading in …3
×
1 of 31
1 of 31

.Net Continuous Delivery - Sydney CD meetup - September 2014

4

Share

Continuous Delivery for .Net on AWS with Octopus Deploy @ Domain.com.au
Initially presented at Sydney's Continuous Delivery Meetup on the 17th of September 2014

Continuous Delivery for .Net on AWS with Octopus Deploy @ Domain.com.au
Initially presented at Sydney's Continuous Delivery Meetup on the 17th of September 2014

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

.Net Continuous Delivery - Sydney CD meetup - September 2014

  1. 1. .Net Continuous Delivery Presented by Jason Brown & Fabien Ruffin
  2. 2. Background • Transition to Agile • Growing team • Migration from monolithic application to microservices
  3. 3. What we will cover •Build process •Infrastructure automation •Deployment automation
  4. 4. Process Overview
  5. 5. Build
  6. 6. Build - Overview • Local build • Self-contained • Runs tests • Quick and easy updates • Fast builds • Deploy on commit
  7. 7. Build - Solution • 1 script to run the full process • PowerShell + psake • NUnit runner • OpenCover • NuGet.exe • Build script and tools packaged as NuGet packages • Bamboo triggers deployments
  8. 8. Infrastructure
  9. 9. The Infrastructure Challenges • Scalable • Available • Reliable • Secure • Robust • Performant • Deployable • Manageable • Plentiful • Cheap
  10. 10. ...so we built a robot army
  11. 11. ...actually, a HEADLESS robot army
  12. 12. The Cluster Standup Process • CloudFormation templates • Standard AWS AMIs • EC2 Server with 3-stage DSC • base.ps1 - army config • cluster.ps1 - platoon config • cluster-deploy.ps1 - app code • One-touch process. • ~10 minutes to provision • < 10 minutes to autoscale
  13. 13. Deployments
  14. 14. Deployment • Custom NuGet Gallery (for multiple private feeds) • Octopus Deploy • MS Entity Framework database migrations
  15. 15. Typical Deployment Flow UAT Staging Production
  16. 16. Domain’s Deployment Flow Git Branch Bamboo Branch NuGet Package Id Octopus environment develop develop develop-{app name} UAT release release release-{app name} Staging master master master-{app name} Production
  17. 17. Why Octopus? • Different focus • Remote deployments • Automatic parallelization • Configuration management • Deployment can be messy
  18. 18. Deployment Notifications
  19. 19. Octopus - Deployment
  20. 20. No-Downtime Deployment Web Server (IIS 7+ only) Live Site/API New Site/API Swap bindings
  21. 21. Octopus - Notifications
  22. 22. Octopus - Configuration Management
  23. 23. Monitoring & Alerting
  24. 24. Limitations & Next Steps • 1 web application per cluster only • Integration and UI/functional test still manually triggered • Windows-only deployments • Database auto-deployment only for Entity Framework • CloudFormation doesn’t support all options for all services
  25. 25. Outcome •No-Ops releases managed by testers •150 production releases in the last month •A bug found in the morning is usually patched a few hours later •Quick builds and deployment allowed a dozen deployments in half a day to address performance issues

×