• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
File -> new project to deploy in 10 minutes with TeamCity and Octopus Deploy
 

File -> new project to deploy in 10 minutes with TeamCity and Octopus Deploy

on

  • 1,182 views

Introduction to Octopus Deploy and TeamCity and why you should use it.

Introduction to Octopus Deploy and TeamCity and why you should use it.

Statistics

Views

Total Views
1,182
Views on SlideShare
1,099
Embed Views
83

Actions

Likes
1
Downloads
3
Comments
0

7 Embeds 83

http://eventifier2013.agilealliance.org 29
https://twitter.com 24
http://ec2-54-243-189-159.compute-1.amazonaws.com 12
http://www.eventifier.com 7
http://www.eventifier.co 5
http://eventifier.co 5
http://eventifier.in 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Present thetopic Deployment
  • Trenger en ny profilbilde
  • 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
  • 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
  • I haven’tevenmentioned risk here,whichalsoshould be takenintoaccount
  • Things I have deployed: .NET web applications, Web services, EPiServer, SharePoint, Database migrations, Windows Services

File -> new project to deploy in 10 minutes with TeamCity and Octopus Deploy File -> new project to deploy in 10 minutes with TeamCity and Octopus Deploy Presentation Transcript

  • FILE -> NEW PROJECT TO DEPLOY IN 10 MINUTES WITH TEAMCITY AND OCTOPUS DEPLOY (and PowerShell) London/NDC London Tomas Jansson 06/12/2013
  • Tomas Jansson Manager & .NET Group Lead BEKK Oslo Norwegian .NET User Group @TomasJansson tomas.jansson@bekk.no github.com/mastoj blog.tomasjansson.com
  • My story
  • What I didn’t see I didn’t know http://www.thewallpapers.org/photo/23036/Meadow-And-Trees.jpg
  • One day I did the deploy http://1.bp.blogspot.com/-AuV-3M279Yw/TvFwqK2SJFI/AAAAAAAAPss/avHyNeySJwU/s1600/recipes+002.JPG
  • But the result! http://th05.deviantart.net/fs34/PRE/f/2008/294/9/5/Messy_kid_by_Hollie32.jpg
  • Tomas angry http://subcultureforthecultured.com/wp-content/uploads/2012/05/hulk1.jpg
  • The result! http://img.directindustry.com/images_di/photo-g/blister-packaging-machines-60364-2546945.jpg
  • WHAT I WANT YOU TO EXPERIENCE TODAY Some tips and tricks for Teamcity Experience Octopusdeploy Get to appreciate PowerShell
  • WHY CONTINUOUS DEPLOYMENT? Bug impact Features Time Shorter time between releases  smaller impact New features faster  happier customers and improved learning Automated deploy  more time for development and happier developers
  • WHY CONTINUOUS DEPLOYMENT? Bug impact Money Time Shorter time between releases  smaller impact New features faster  happier customers and improved learning Automated deploy  more time for development
  • WHERE SHOULD I START? Visualize what is needed for you to make a complete deployment Build Test (5 min) (5 min) Provision server (1 hr) Deploy (20 min) Then ask the following questions: • How often do I do each step during a day/week/month? • Which step can I improve? My guess is; build, test, deploy and last provision of server
  • WHAT CAN I DO? Build Test Deploy Smaller solutions Minimize DB-test/test setup Clear artifacts Decouple projects Minimize network traffic Automated deploy Optimize code Repetitive Parallel testing
  • Repetitive The Goal Automated One artifact
  • CONCEPTUAL SETUP Dev Test Developers Deployment manager Prod VCS Build server Artifact repository
  • THE GOAL
  • Tools http://api.ning.com/files/wi*oWNYzff-TE0NdSZQIetMjtPWOTyiTLnYIS91gI2PE-zRWP1h2dBj79yb-nK0AghzWRpShzOmdbE9LsAnGLqa1M*u8zGMs/Swiss_Giant.jpg
  • TEAMCITY Continuous integration engine JetBrains Free for small teams
  • KEY FEATURES: TEAMCITY Templating Build template Project X Project X Project X Build Project X Dependencies Deploy template Project X Project X Project X Deploy Project X You can start using conventions for build and deploy Build Project X Deploy Project X
  • OCTOPUS DEPLOY Automated deployment for .NET (Windows) • Created by Paul Stovell (@paulstovell) • Targeting .NET • Currently in v 2.0 public beta
  • NUGET & OCTOPUS DEPLOY
  • NUGET & OCTOPUS DEPLOY Pull deploy from v 2.0!
  • Octopus deploy is eating their own dog food since v 2.0. Web application is using the public REST API. http://petcountrysupplies.co.uk/Dog%20Shop%20images/Dog%20Food/Dog%20Food.jpg
  • OCTOPUS DEPLOY PROCESS • • Pre deploy • Run transformations of config files • Octopus does IIS setup Check environment • Configure environment • Copy files needed for deploy • PostDeploy.ps1 • Delete files • Clean up Deploy.ps1 • PreDeploy.ps1 PowerShell is the key to great success! Deploy Post deploy
  • OCTOPUS CONCEPTS Environments Roles An environment contains one or many machines Defines where to deploy Adding a machine is done in one place instead of in every project Multiple machines can have the same role in one environment  deploy to multiple machines at once
  • OCTOPUS CONCEPTS Project groups Project A collection of projects Definition of what to deploy Map environment to project groups One project can multiple deploy steps Great if you have multiple customers A step can: • Deploy a NuGet package • Run a PowerShell script • Send an email • Require manual intervention • Deploy to Windows Azure • Upload files by FTP Variables can be configured per environment, role, machine and/or step
  • OCTOPUS CONCEPTS Release package Deploy A definition of a release An actual deploy of a release Has a version number Contains specific packages (version can differ from release version)
  • PowerShell
  • GETTINGS STARTED WITH PROGRAMMING IIS IN POWERSHELL > Import-Module WebAdministration > $iisAppPoolsPath = "IIS:AppPoolsMyAppPool" > New-Item $iisAppPoolsPath Name ---MyAppPool State ----Started Applications ------------ > $iisSitesPath = "IIS:SitesMySite" > New-Item $iisSitesPath -bindings @{protocol="http";bindingInformation="*:8321:*"} -physicalPath "c:tmp" Name ---MySite ID -5 State ----Stopped Physical Path ------------c:tmp Bindings -------http *:8321:* > Set-ItemProperty $iisSitesPath -name applicationPool -value "MyAppPool" > Start-Website "MySite"
  • BETA Demo! http://www.mrwallpaper.com/wallpapers/despicable-me-hitman-minion-1920x1080.jpg
  • 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/ OctoWebSetup GitHub project: https://github.com/mastoj/OctoWebSetup OctoWebSetup NuGet download: https://nuget.org/packages/OctoWebSetup/ Octopusdeploy automation script: https://gist.github.com/mastoj/7746853
  • Questions?
  • Thank you! @TomasJansson