octopus deploy and how to stop deploying like an idiot

50
@damovisa | #dddmelb With thanks to our sponsors

Upload: damovisa

Post on 13-Dec-2014

267 views

Category:

Software


3 download

DESCRIPTION

Ever had your site go down because Jim accidentally copied over the web.config? Ever broken out into a cold sweat because forgot the where clause in a production update script? Well stop deploying like an idiot. Deploying applications has traditionally been one of the most dangerous parts of software development. It's often very hands-on, relying on the right people doing the right thing at the right time, and is therefore extremely prone to failure. In this talk, we'll briefly look at why it's important to automate your entire deployment process as soon as possible. We'll then look at some of the ways teams try to manage their deployments and reduce the danger. Finally, I'll show you why Octopus Deploy is the best way to do it. We'll look at some real-world Octopus implementations, including very complex environments, in-depth testing, and automated rollbacks. [Presentation from DDD Melbourne 2014 - http://www.dddmelbourne.com]

TRANSCRIPT

  • 1. @damovisa | #dddmelb With thanks to our sponsors

2. @damovisa | #dddmelb Damian Brady SSW #dddmelb | @SSW_TV @damovisa Octopus Deploy and how to stop deploying like an idiot 3. @damovisa | #dddmelb Meet Frank 4. @damovisa | #dddmelb Frank does deployments 5. @damovisa | #dddmelb Wow. Such Document. 6. @damovisa | #dddmelb Franks Checklist 7. @damovisa | #dddmelb Frank is good 8. @damovisa | #dddmelb Usually 9. @damovisa | #dddmelb Not Franks fault 10. @damovisa | #dddmelb Ugh. Brian. 11. @damovisa | #dddmelb Good old Frank 12. @damovisa | #dddmelb Franks an idiot. 13. @damovisa | #dddmelb Its just a script 14. @damovisa | #dddmelb Frank is not automated 15. @damovisa | #dddmelb Meet Octopus Deploy 16. @damovisa | #dddmelb Octopus is Franks replacement 17. @damovisa | #dddmelb do you know PowerShell? 18. @damovisa | #dddmelb What is Octopus? Key concepts How does it work? Getting started Where do I sign!? Agenda 19. @damovisa | #dddmelb MVP in VS ALM, MSTS, MCSD, MBA, OMGWTFBBQ SSW Solution Architect and QLD State Manager Co-author of Professional TFS 2013 I love: TFS Scrum ASP.NET MVC HTML5/CSS/JS Damian Brady 20. @damovisa | #dddmelb Introduction to Octopus 21. @damovisa | #dddmelb Repeatable Automated Deployment Tool For Windows and Azure Accessible by browser, a REST API, or command line What is Octopus? 22. @damovisa | #dddmelb Build Tool For Linux/OSX/mobile/tablet/walkman/whatever An 8-tentacled sea creature A quintopus What isnt Octopus 23. @damovisa | #dddmelb How does it work? 24. @damovisa | #dddmelb Packaging Versioning Feeds Under the covers 25. @damovisa | #dddmelb Head (Octopus Server) Tentacles (Services on clients) PKI and X.509 to secure communication (SQUID) Process steps are run on the tentacles Parts of an Octopus 26. @damovisa | #dddmelb Octopus Server Web Server App Server Database Server 27. @damovisa | #dddmelb Octopus Server Web Server App Server Database Server 28. @damovisa | #dddmelb Octopus Server Web Server App Server Database Server 29. @damovisa | #dddmelb Key Concepts 30. @damovisa | #dddmelb Project Environment Role Process Steps Variables Library Concepts 31. @damovisa | #dddmelb Project = a thing youre deploying 32. @damovisa | #dddmelb Environment = a collection of servers 33. @damovisa | #dddmelb Role = a defined purpose for a server 34. @damovisa | #dddmelb Process = the steps required for deployment 35. @damovisa | #dddmelb Same process for every environment* Everything is built on PowerShell Clever processes are possible Facts. 36. @damovisa | #dddmelb Getting Started 37. @damovisa | #dddmelb 1. Install Octopus Server 2. Install Tentacles 3. Configure Octopus (Environments, Projects, Steps) 4. Add OctoPack to your project 5. Add to your Build Process Getting Started 38. @damovisa | #dddmelb http://www.octopusdeploy.com/downloads Octopus Server Octopus Tentacles Introduce them Install Octopus 39. @damovisa | #dddmelb Set up a Nuget Feed Create an Environment Add machines and give them roles Create a Project Add process steps Configuration 40. @damovisa | #dddmelb A Nuget package that makes Nuget packages Those packages represent a version of your software Add OctoPack 41. @damovisa | #dddmelb TeamCity? install the plugin TFS? use the build template Something else? theres a solution: http://docs.octopusdeploy.com/display/OD/API+and+Integration Add to your build msbuild MySolution.sln /t:Build /p:RunOctoPack=true 42. @damovisa | #dddmelb Build and create a nuget package Publish the package to a feed Trigger an Octopus release 43. @damovisa | #dddmelb Set up CI into a dev/test environment Run tests as part of your process Promote automatically to a point Manually promote for production Use http://library.octopusdeploy.com Massive enterprise with layers of bureaucracy and TFS? Look at Release Manager for Visual Studio Advice 44. @damovisa | #dddmelb Where do I sign!? 45. @damovisa | #dddmelb 5 projects, 10 users, 5 tentacles = FREE Pricing 46. @damovisa | #dddmelb http://docs.octopusdeploy.com http://www.octopusdeploy.com/support http://www.octopusdeploy.com/partners http://octopusdeploy.uservoice.com Need help? 47. @damovisa | #dddmelb Linux deployments Passing variables between steps More flexible per-environment steps Parallel steps Better rollback support Coming soon 48. @damovisa | #dddmelb 49. @damovisa | #dddmelb Thank you! Damian Brady www.damianbrady.com.au | @damovisa | [email protected] www.ssw.com.au Sydney | Melbourne | Brisbane | Adelaide 50. @damovisa | #dddmelb