DEPLOYMENT TAKEN SERIOUSLY WITH OCTOPUS
DEPLOY AND TEAMCITY
(and PowerShell)
Trondheim/Trondheim Developer Conference
Tomas Jansson
28/10/2013
AGENDA
This is me
Why?
The Goal
The Tools
Demo
Summary
THIS IS ME
Tomas JanssonManager & Group Lead .NETBEKK Oslo
@[email protected]/mastojblog.tomasjansson.com
WHY CONTINUOUS DEPLOYMENT?
Shorter time between releases smaller impact
New features faster you can save or make money faster
Bug impact
Money
Automated deploy more time for development
Time
WHERE SHOULD I START?
Visualize what is needed for you to make a complete deployment
Ex:
Build
(5 min)
Test
(5 min)
Provision server
(1 hr)
Deploy
(20 min)
Then ask the following question:
• How often do I do each step during a day/week/month?
My guess is; build, test, deploy and last provision of server
Klikk - eller drag and drop - for å sette inn bildeThe Goa
l
Repetitive
One artifact
Automated
THE GOAL
You and me
VCS Build server
Deployment manager
Artifact repository
Test
QA
Prod
1
2
3
56
4
7a
7b
7c
THE GOAL
You and me
Git TeamCity
Octopus Deploy
NuGet feed
Test
QA
Prod
Tools
TEAMCITY
Continuous integration engine
JetBrains
Free for small teams
OCTOPUS DEPLOY
Automated deployment for .NET (Windows)
• Deployment dashboard
• Secure
• Promotion between environments
• Based on NuGet
• PowerShell
• Deploy to Azure
NUGET & OCTOPUS DEPLOY
OCTOPUS DEPLOY PROCESS
Pre deploy
Deploy
Post deploy
• PreDeploy.ps1
• Check environment
• Configure environment
• Deploy.ps1
• Octopus does IIS setup
• Run transformations of config files
• PostDeploy.ps1
• Delete files
• Clean up
PowerShell
Demo
http://www.mrwallpaper.com/view/despicable-me-hitman-minion-1920x1080/
SUMMARY
• Continuous deployment doesn’t have to be hard
• The right tools will help you a long way (TeamCity and Octopus deploy)
• Learn PowerShell, it will make your life easier
RESOURCES
Blog post about the setup: http://tinyurl.com/PowerOctoTeam
Octopus Deploy: http://www.octopusdeploy.com
TeamCity: http://www.jetbrains.com/teamcity/
GitHub project: https://github.com/mastoj/OctoWebSetup
NuGet download: https://nuget.org/packages/OctoWebSetup/
Questions?
Thank you!
@TomasJansson