a day in the life with devops automation

Post on 12-Jul-2015

314 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related