romulus crisan + radu pascal click'n'deploy
DESCRIPTION
CodeCampIasi25Oct2014TRANSCRIPT
Click’n’Deployby Radu Pascal & Romulus Crisan
What we want to achieve
Naive deployment approach
by Radu Pascal & Romulus Crisan
Manually change config filesXcopy/Publish web applicationRun database scriptsRun scripts to install/update window servicesIndependent deploy Repeat for each server and environment
Continuous Integration
andContinuous Deployment
Real life example
by Radu Pascal & Romulus Crisan
Application Architecture
Database back-up
Run update script
Rollback if needed
Back-up current version
Environment specific configuration
Xcopy/FTP/publish
Multiple servers
Environment specific configuration
Install service using netstat
Is this ok ?
by Radu Pascal & Romulus Crisan
It’s ok, but:It can take lots of timeError proneNo easy way to see deployed version Rollbacks can be painfulLack of confidenceMultiply that by the number env.
Our approach
by Radu Pascal & Romulus Crisan
Automate, Automate, Automate !!
Before we build..
Source control
by Radu Pascal & Romulus Crisan
TFSGitSVNVisual Studio Online (TFS in the cloud)GithubBitbucketLots and lots more…
by Radu Pascal & Romulus Crisan
by Radu Pascal & Romulus Crisan
by Radu Pascal & Romulus Crisan
by Radu Pascal & Romulus Crisan
Can we build now?
by Radu Pascal & Romulus Crisan
Developing with Visual Studio Online
Team Foundation Service
Developer
BuildServer
Visual Studio
Visual Studio Online
by Radu Pascal & Romulus Crisan
Team Foundation Service
Developer
BuildServer
Visual Studio
Visual Studio Online
BuildServer
On-Premises
Adding On-Premises Build Server
Instal TFS Build Server
by Radu Pascal & Romulus Crisan
Add a VSO user with enough rights to buildDownload TFS/TFS ExpressFollow the Wizard
by Radu Pascal & Romulus Crisan
Visual Studio Online Rights for Build Server User
by Radu Pascal & Romulus Crisan
Configure Team Foundation Build Service
by Radu Pascal & Romulus Crisan
Add your Visual Studio Online Account
by Radu Pascal & Romulus Crisan
Sign into the repository with a user with enough rights..
Finish setting The Build Server
by Radu Pascal & Romulus Crisan
- Setup .Net build environment or..- Install Visual Studio (Express)- Install any SDKs- Setup any licenses
Time to build..
by Radu Pascal & Romulus Crisan
Create a New Build Definition
by Radu Pascal & Romulus Crisan
Create a New Build Definition
by Radu Pascal & Romulus Crisan
Create a New Build Definition
by Radu Pascal & Romulus Crisan
Create a New Build Definition
by Radu Pascal & Romulus Crisan
Create a New Build Definition
Build Definitions
by Radu Pascal & Romulus Crisan
Gated – verify that code is compilable, and UTs are greenContinuous Integration – above plus generate deliverablesScheduled (Nightly) – above plus Automation Testing, and Automated Deploys
Other Build Servers?
by Radu Pascal & Romulus Crisan
Team CityCruise ControlJenkins
.. and don’t forget to create a MSBuild script
Ok, but how we build a
SPA?
Task runner
by Radu Pascal & Romulus Crisan
Grunt vs. GulpNode.js awesomenessPre-compile, concat, uglify, lint, tests Dev vs Prod
Our approach
by Radu Pascal & Romulus Crisan
Automate, Automate, Automate !!
Time to deploy..
Reasons
by Radu Pascal & Romulus Crisan
As simple as a few clicks..FastRemoves lots of human errorsReal time and history information
by Radu Pascal & Romulus Crisan
Octopus Deploy
by Radu Pascal & Romulus Crisan
Automated deployment for .NETAll your deployments, in one placeDeploy on-premises or to the cloud, securelyConfiguration and scriptingIntegrates with your build server
Environments
Environments
by Radu Pascal & Romulus Crisan
Machine TentaclesTypes Roles
by Radu Pascal & Romulus Crisan
Octopus and tentacles
With Tentacle
With Tentacle
Azure SQL Database
Application Servers
Octopus ServerWith Tentacle
Azure Website
Repository
Repository
by Radu Pascal & Romulus Crisan
Nuget packagesInternal and external repositoriesVersioning:
Semantic versioning (semver.org)Zero to nine (zero29)
Octopus Project
Recap
by Radu Pascal & Romulus Crisan
TFS BuildNode.js Task runnerOctopus Deploy
Thank you
radupascal.com&
romuluscrisan.com