Upload
wenhua-wang
View
2.577
Download
4
Embed Size (px)
DESCRIPTION
In my slides, I presented my experience in setting up a deployment automation framework with selenium. The deployment automation framework dramatically dramatically reduced my deployment workload. I hope my deployment automation setup experience help you in your own/customized automation framework setup with selenium and other open source tools.
Citation preview
Deployment Automation Practice
in Agile Software Development
Wenhua Wang
Software Quality Assurance Engineer
Marin Software Company
Email: [email protected], [email protected]
Outline
• Introduction to the deployment work
• Deployment work in agile software development
• Is it valuable to do the deployment automation work?
• Deployment work automation
• Deployment working environment and procedure
• Deployment automation implementation
• Q & A
Deployment work in agile software development
Deployment work is tedious
• Marin has 30+ developers.
No one wants to take it.
• A senior QA engineer left,
because of this tedious work.
Outline
• Introduction to the deployment work
• Deployment work in agile software development
• Is it valuable to do the deployment automation work?
• Deployment work automation
• Deployment working environment and procedure
• Deployment automation implementation
• Q & A
Working environment
• 12 distributed, heterogeneous, and specialized servers.
• 26 steps are required
Working procedure
1. Grab the current tracking number (Example: Appendix 1).
• branches-iteration-0019-front_end-47279 @ 20110913-04:44:58
branches-iteration-0019-mscm-47280 @ 20110902-04:54:56
2. Log into SVN server.
• Input URL, user name and password
3. Got revision log page.
4. Search all the revisions after 47280 and copy them (Example: Appendix 2).
5. Log into email server.
• Input URL, user name and password
6. Compose deployment notification email (Example: Appendix 3).
• Receivers: QA, DEV, PRODUCT
• Title: what build, what time, where to deploy
• Content: new revisions
************wait for the deployment time*************
Working procedure
7. Log into the deployment server.
• Host name, username, password
8. Download latest compiled files from build server.
• Java Bridge, Spring Server, ACDC, Front End, ……
9. Stop services in the enterprise testing environment.
10. Deploy compiled files to enterprise testing environment.
• Java Bridge, Spring Server, ACDC, Front End, ……
11. Go to database schema management server
12. Update data cloud schema.
13. Exit database schema management server.
14. Start services in the enterprise testing environment.
15. Log into admin server.
• Host name, username, password
Working procedure
16. Switch to enterprise log server.
• Host name, username, password
17. Go to log file server to check environment status.
• /var/splunk/logs/dbs02/acdc/acdc-log.log
• /var/splunk/logs/aps04/mscm/springserver-log.log
• /var/splunk/logs/wps01/javabridge-log.log
• /var/ftp/logs/ftpserver-log.log
18. ~ 26. : repeat 9~17 for the Pro testing environment.
Outline
• Introduction to the deployment work
• Deployment work in agile software development
• Is it valuable to do the deployment automation work?
• Deployment work automation
• Deployment working environment and procedure
• Deployment automation implementation
• Q & A
Automate deployment work
• Techniques: Linux shell scripts, Selenium, and
Hudson.
• Automated steps 8 ~ 26 with Linux shell scripts.
• Pushing build script
• Status checking script
• Next: used selenium to automate the rest 9 steps.
Automate deployment work
1. Grab the current version number.
• branches-iteration-0019-front_end-47279 @ 20110913-04:44:58
branches-iteration-0019-mscm-47280 @ 20110902-04:54:56
2. Log into SVN server.
• Input URL, user name and password
3. Got revision log page.
4. Search all the revisions after 47280 and copy them
5. Log into email server.
• Input URL, user name and password
6. Compose deployment notification email.
• Receivers: QA, DEV, PRODUCT
• Title: what build, what time, where to deploy
• Content: new revisions
************wait for the deployment time*************
Automate deployment work
7. Log into the deployment server.
• Host name, username, password
8. Run pushing scripts for deployment work.
• Deploy a new build for enterprise and environment.
• Deploy a new build for pro environment.
9. Run status checking scripts.
Automate deployment work
Automate deployment work
Outline
• Introduction to the deployment work
• Deployment work in agile software development
• Is it valuable to do the deployment automation work?
• Automating whole deployment process
• Deployment working environment and procedure
• Deployment automation implementation
• Q & A
Appendix 1
Appendix 2
Appendix 3
Appendix 4
Thanks !