Upload
john-wilmes
View
315
Download
0
Tags:
Embed Size (px)
Citation preview
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 1
A Day in the Life with DevopsAutomation
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 2
These things will happen in our startup today:1. A product manager approves a candidate feature for implementation
2. A feature card is created in the backlog list for the current release
3. A developer implements the feature and checks in their code
4. The code is analyzed and the results are reported to QA
5. The developer iterates until the code meets analytical standards
6. The code is built, integrated and tested and the results are reported to QA
7. The code is deployed and the results are reported to the team
8. The deployed code and its environment are monitored for errors/availability
9. If problems occur, pagers are called, tracking issues are created, an issue card is created in the bug report list, and the team is notified
10. The developer investigates by correlating log details with problem records
11. The developer updates tracking issues and checks in revised code
12. Rinse and repeat
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 3
These things will be automated or mechanized:1. A product manager approves a candidate feature for implementation
2. A feature card is created in the backlog list for the current release
3. A developer implements the feature and checks in their code
4. The code is analyzed and the results are reported to QA
5. The developer iterates until the code meets QA standards
6. The code is built, integrated and tested and the results are reported to QA
7. The code is deployed and the results are reported to the team
8. The deployed code and its environment are monitored for errors/availability
9. If a problem occurs post-deployment, pagers are called, a tracking issue is created, an issue card is created in the bug report list, and team is notified
10. The developer investigates by correlating log details with problem records
11. The developer updates the tracking issue and checks in revised code
12. Rinse and repeat
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 4
What are we doing to support our devops?
Product Management
Project Management
Cloud Based Development
Configuration Management
Code Analysis
Continuous Integration
Continuous Deployment
Application Monitoring
Support Coordination
Issue Management
Log Analysis / Correlation
Team Communications
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 5
Who is helping us do those things?
Product Management
Project Management
Cloud Based Development
Configuration Management
Code Analysis
Continuous Integration
Continuous Deployment
Application Monitoring
Support Coordination
Issue Management
Log Analysis / Correlation
Team Communications
Evernote
Trello
AWS EC2
Github
Code Climate
Travis CI Pro
AWS Opsworks
New Relic
PagerDuty
Waffle
LogglySlack
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 6
A product manager approves a candidate feature for implementation in Evernote …
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 7
… and a feature card is auto-created in the Sprint Backlog list for current release on Trello
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 8
A developer implements the feature on EC2 and checks in their code on Github …
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 9
… the code is auto-analyzed on Code Climate and results auto-reported on Slack …
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 10
… the code is also built and tested by Travis and results are auto-reported to QA on Slack
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 11
The developer iterates check-in and analysis until code meets QA standards
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 12
The developer checks in their code (this time flagged for deployment) on Github
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 13
Travis recreates all dependencies, then builds and tests the code in a clean environment …
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 14
… notifying QA via Slack if it fails
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 15
Eventually Travis successfully builds, tests and deploys on Opsworks, notifying team via Slack
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 16
After a successful build, New Relic monitors the deployed application and its environment
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 17
If a monitoring threshold is crossed, New Relic calls PagerDuty and creates a Github issue
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 18
Issue card is auto-created in Bug Report list for current release on Trello, & Slack notifies team
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 19
The developer manages the Github issue with Waffle, resulting in further updates to Slack
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 20
And the cycle repeats …
Product Management
Project Management
Cloud Based Development
Configuration Management
Code Analysis
Continuous Integration
Continuous Deployment
Application Monitoring
Support Coordination
Issue Management
Log Analysis / Correlation
Team Communications
July 2014 Copyright © 2014 Svarog Technology Group. Reproduction and redistribution not permitted. 21
Observations from our work with devops and with automated / mechanized toolchains
• We could benefit from more integration e.g. team communications
• Automation and integration are easier with everything in the cloud
• Devops automation is a force multiplier• Automation of formerly repetitive tasks better use of team members’ time• Team members can multitask more easily and efficiently with fewer errors
• Automation is most important for the activities most often iterated• Such as analyze, build, test, integrate, deploy, monitor, alert, manage issues• Automation enables the team to iterate both more quickly and more often
• There is a synergy between devops and a microservice architecture (and other paradigms that promote small, relatively isolated features)• To be discussed at length elsewhere