This document discusses automating the deployment process through continuous integration and continuous delivery. It recommends using source control like TFS or Git and configuring a build server to automate building, testing, and deploying applications. Specific steps covered include setting up a TFS build server, configuring build definitions for continuous integration, and using task runners like Grunt or Gulp to build single-page applications. The overall goal is to automate the deployment process across multiple environments to make it less error-prone and time-consuming.
3. Naïve deployment approach
Xcopy/Publish web application
Run database scripts
Run scripts to install/update window
services
Independent deploy
Repeat for each server and environment
6. Application Architecture
Multiple Database servers
back-up
Environment Run update script
specif ic
conf iguration
Rollback Install service if needed
using netstat
Back-up current version
Environment specif ic
configuration
Xcopy/FTP/publish
by Radu Pascal & Romulus Crisan
7. Is this ok ?
It’s ok, but:
It can take lots of time
Error prone
No easy way to see deployed version
Rollbacks can be painful
Lack of confidence
Multiple that by the number env.
16. Developing with
Visual Studio Online
Team
Foundation
Service
Developer
Visual Studio
by Radu Pascal & Romulus Crisan
Build
Server
Visual Studio Online
17. Team
Foundation
Service
Developer
Visual Studio
by Radu Pascal & Romulus Crisan
Build
Server
Visual Studio Online
Build
Server
On-Premises
Adding On-Premises
Build Server
18. Instal TFS Build Server
Add a VSO user with enough rights to
build
Download TFS/TFS Express
Follow the Wizard
19. Visual Studio Online
Rights for Build
Server User
by Radu Pascal & Romulus Crisan
20. by Radu Pascal & Romulus Crisan
Conf igure Team
Foundation Build
Service
21. by Radu Pascal & Romulus Crisan
Add your Visual
Studio Online
Account
22. Sign into the
repository with a
user with enough
rights..
by Radu Pascal & Romulus Crisan
23. Finish setting The Build Server
- Setup .Net build environment or..
- Install Visual Studio (Express)
- Install any SDKs
- Setup any licenses
25. Create a New Build
Definition
by Radu Pascal & Romulus Crisan
26. Create a New Build
Definition
by Radu Pascal & Romulus Crisan
27. Create a New Build
Definition
by Radu Pascal & Romulus Crisan
28. Create a New Build
Definition
by Radu Pascal & Romulus Crisan
29. Create a New Build
Definition
by Radu Pascal & Romulus Crisan
30. Build Definitions
Gated – verify that code is compilable, and
UTs are green
Continuous Integration – above plus
generate deliverables
Scheduled (Nightly) – above plus
Automation Testing, and Automated
Deploys
31. Other Build Servers?
Team City
Cruise Control
Jenkins
(don’t forget to create a MSBuild script)
Start by asking how many developers are in the room?
How many have done manual deployments?
Who thinks it’s a pain in the a**?
Who is doing automated deployments?
This is the first chapter and is supposed to be an introduction (Radu):
Present the PITA and the scope of this presentation
what we want to achieve today with this presentation
Manual deployments inhibit the developers to deploy often
Is Error prone (especially configs)
Developers must know how to do that, not only DevOps
Review the title to reflect all bullet points??
how hard is to do deployments without automation - General Challenges
Explain the difference between the two (put the bullet points explaining each, in the notes)
What we are presenting is part of a Continuous Delivery approach.
Talk that we need a way to version our code, for collaboration or plain old, ups, my machine died.
Talk about why we chose Visual Studio Online
Easy access from anywhere
Free up to 5 users
Familiar with TFS (but hey, you can use GIT if you want)
Offers a good integration with Visual Studio, can link tasks or defects to code commits (can even browse code online if you want to)
Easy to integrate with a TFS Build Agent
Talk about why we chose Visual Studio Online
Easy access from anywhere
Free up to 5 users
Familiar with TFS (but hey, you can use GIT if you want)
Offers a good integration with Visual Studio, can link tasks or defects to code commits (can even browse code online if you want to)
Easy to integrate with a TFS Build Agent
Talk about why we chose Visual Studio Online
Easy access from anywhere
Free up to 5 users
Familiar with TFS (but hey, you can use GIT if you want)
Offers a good integration with Visual Studio, can link tasks or defects to code commits (can even browse code online if you want to)
Easy to integrate with a TFS Build Agent
Talk about why we chose Visual Studio Online
Easy access from anywhere
Free up to 5 users
Familiar with TFS (but hey, you can use GIT if you want)
Offers a good integration with Visual Studio, can link tasks or defects to code commits (can even browse code online if you want to)
Easy to integrate with a TFS Build Agent
Ok.. What else do we need before getting our first build on the
For that we need a Build Controller with a Build Agent installed on an On-Premises computer.
The reasons for doing that:
Custom stuff needs to be installed in order to support the build.
Don’t want to pay for a premium account.
OK.. Now it’s time to setup a build definition in visual studio, and do our first build using the Build Server we’ve setup.
[Slide for Offline]
[Slide for Offline]
[Slide for Offline]
[Slide for Offline]
[Slide for Offline]
Ok.. What else do we need before getting our first build on the
Talk about the concept of task runner and present shortly the biggest libraries (Grunt and Gulp) and highlight some of the differences and why we choose Gulp.
Explain how gulp is working since is based on Node.js. Point a bit on Node
What benefits we have by using Gulp out of the box. It comes with a lot of build libraries for pre-compile, concat, uglify
Point the challenge for the dev env. Since you uglify.
After this slide show the gulp script from the solution, do a walkthrough and explain what it does. Run it for dev.
Show how gulp is integrated with the entire build