4. The story of one project
Very simple GTD web application
.NET technological stack based
VPS hosted
Nothing fancy, seriously
5. •Prepare release branch and merge all required changes there
•Update version in uppercut.config
•Commit changes to SCM
•
Run build.bat
•
FTP package to deployment server
•RDP to deployment server
•Unpackage .zip content to temp folder
•Manually backup staging database
•Stop Stage Web site in IIS manager
•
Run migration scripts for staging database
•
Run deployment scripts for staging environment
•
Run Stage Web site in IIS manager
•
Test manually that on staging server, that build works fine
•If something missed (note it is 60% of all cases) go to 1
•Manually backup production database
•Stop Production Web site in IIS manager
•Run migration scripts for production database
•
Run deployment scripts for production environment
•
Run Production Web site in IIS manager
•Test manually that on production server, that build works fine
Delivery Script ...
6. If it FAILS in a MIDDLE
— REPEAT
Lucky day: 0.5 h
Bad day: 2 h
7. Read those figures as:
My customers suffer for 2 hours once in
2 weeks, just becase I do update
8. And by the way...
It's just takes too much developers time
It's boring
Sooner or later you start to hate
deployments
9. For bussiness people and
managers
“Time-to-Market” factor is very low
Feedback cycle is very long
Customer dissatisfaction is very high
16. Integration is for:
fetching latest sources
build all product configuration items
run unit tests
run functional tests
generate documentation
package all artifacts
Deployment is for:
update test servers
17. 1. Build and deploy locally with one click
2. Define SCM model based
3. Run it continuosly
Recipe of Success:
18.
Build and tests execution
Binaries versioning
SCM labeling
Database migration
Web application deployment
Step 1 - Build and Deploy
19.
Build and tests execution
Binaries versioning
SCM labeling
Database migration
Web application deployment
Step 1 - Build and Deploy
Solved by Chuck Norris tools
21. UppercuT
Easy to use
Configurable by XML
Supports config for different environment
RoundhousE
Easy to use
Supports MS SQL, MySQL, Postgress
Migration by SQL Scripts
DropkicK
Deployment script as C# code
Support for services and sites
Different plans
28.
Availability of Build Server
SCM build triggering
Automatically run deployment script
Roll out application to production
Step 3 - Run it continuously
29.
Fork of famous Hudson project
Open source
Java based
Easy start, easy go
Tons of available plugins
Say 'Hello' to Jenkins
39. Results:
Going live time improved 45x
Site down time reduced 300x
No more iterations, Kanban
Staging is updating with every push
Setup and forget