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 Jansson
Manager & Group Lead .NET
BEKK Oslo
@TomasJansson
tomas.jansson@bekk.no
github.com/mastoj
blog.tomasjansson.com
WHY CONTINUOUS DEPLOYMENT?

Bug impact

Money

Time

Shorter time between releases
 smaller impact

New features faster  you
can save or make money
faster

Automated deploy  more
time for development
WHERE SHOULD I START?

Visualize what is needed for you to make a complete deployment
Ex:
Build

Test

(5 min)

(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
Repetitive

The
Goal
Automated

One
artifact
THE GOAL

Test

7a
QA
7b
Deployment
manager

You and me

7c

Prod

6
1

5

VCS

2

Build server
3

4

Artifact repository
THE GOAL

Test

QA

You and me

Git

Octopus Deploy

Prod

TeamCity

NuGet feed
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
•

Octopus does IIS setup

•

Run transformations of
config files

Check environment

•

Configure environment

•

PostDeploy.ps1

•

Delete files

•

Clean up

Deploy.ps1

•

PreDeploy.ps1

Deploy

Post
deploy
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

Deployment taken seriously with Octopus Deploy and TeamCity

Editor's Notes

  • #2 Present thetopic Deployment
  • #3 Trenger en ny profilbilde
  • #4 Minimizeimpactofbugs long lead time thebugswill have more affect and youneed to take more seriousdecisionaboutwhat to doMinimize time for fix automated (fast) deploy makes it easier to release a fix fasterMore time for whatyouaresupposed to do