agile software factory - cloud expo / devops summit 2014 demo

30
NOVEMBER 14 Agile Software Factory Demo 1 Max Martynov, VP of Technology Grid Dynamics

Upload: grid-dynamics

Post on 01-Jul-2015

498 views

Category:

Technology


1 download

DESCRIPTION

Continuous Delivery offers a proven solution for streamlining software design that enables rapid, reliable, and repeated delivery code enhancements at low risk and with minimal overhead. Using a framework that automates processes from code design to deployment, software can be developed to high standards while reducing time-to-market. Continuous Delivery not only establishes consistent delivery of higher quality software with greater reliability, it does so at a lower overall cost.

TRANSCRIPT

Page 1: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

NOVEMBER 14

Agile Software Factory Demo

1

Max Martynov, VP of Technology Grid Dynamics

Page 2: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Project X: Day 1

2

Feature H As a customer, I want …, so that …

Feature G As a customer, I want …, so that …

Feature C As a customer, I want …, so that …

Feature D As a customer, I want …, so that …

Feature B As a customer, I want …, so that …

Feature A As a customer, I

want …, so that

Feature E As a customer, I

want …, so that …

Feature M As a customer, I want …, so that …

Feature X As a customer, I want …, so that …

Product Backlog Development Operations

Future production

env

(doesn’t exist yet)

Future Production

Page 3: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Dev workstation

Project X: Day 10

3

Feature H As a customer, I

Feature G As a customer, I

Feature C As a customer, I

Feature D As a customer, I

Code B ………………… ………………… …………………

Feature E As a customer, I

Feature M As a customer, I

Feature X As a customer, I

Product Backlog Development Operations

Future production

env

(doesn’t exist yet)

Future Production

Code A ………………… …..……bug… …………………

Page 4: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Project X: Implementing Continuous Delivery

4

?

Continuous Delivery infrastructure requires diverse toolset. There is no single tool that implements CICD infrastructure end-to-end.

Deployment Automation

Infrastructure Code Versioning, Analysis & Review

Test Automation

Continuous Integration Environments & Deployments Management

Database Management

Project Management

Page 5: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory

5

Page 6: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory Pre-Integrated Continuous Delivery Infrastructure and Tooling

6

Page 7: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Project X: Day 1 (Agile Software Factory)

7

Feature H As a customer, I want …, so that …

Feature G As a customer, I want …, so that …

Feature C As a customer, I want …, so that …

Feature D As a customer, I want …, so that …

Feature B As a customer, I want …, so that …

Feature A As a customer, I

want …, so that

Feature E As a customer, I

want …, so that …

Feature M As a customer, I want …, so that …

Feature X As a customer, I want …, so that …

Product Backlog Development Operations

Future production

env

(doesn’t exist yet)

Future Production

Continuous Integration, Continuous Delivery

Agile Software Factory

Page 8: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Dashboard

8

Page 9: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Jenkins – Selenium

9

Page 10: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: IDE – Gerrit - Jenkins

10

1. Notification about a new code review request

2. Approving code after review

Page 11: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Jira – Jenkins

11

Page 12: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Jira – Gerrit

12

Page 13: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Email – Jira – Jenkins

13

Page 14: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Gerrit - Jenkins

14

Page 15: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Jenkins – Code Analysis

15

Page 16: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Static Code Analysis

16

Page 17: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Checkstyle

17

Page 18: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: PMD

18

Page 19: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

NOVEMBER 14

Thank You!

19

Max Martynov, VP of Technology, Grid Dynamics [email protected]

Page 20: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Dynamic Environments & DevTest Cloud

20

Public cloud (Virtual Private Cloud)

Quota-limited open experimentation area

•  Problem ─  Shortage or rigidness of corporate datacenter resources slows down development process and hampers innovation

•  Solution

─  Use public cloud to host developer’s sandboxes and QA environments

Dev Sandbox

Internal datacenter

Performance testing

environment

Staging environment

Production environment

Dev Sandbox On demand developer’s sandbox

Project X area (quota-limited, created on demand per project)

Smoke testing environment

Regression environment …

Developer’s sandbox

Project Y area (quota-limited, created on demand per project)

Page 21: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Branching Strategy (GitFlow)

21

Feature Dev Release Master Hotfix

Build & Deploy

Smoke

Build & Deploy

Regression

Performance (optional)

Build & Deploy

Regression

Performance

Build & Deploy

Manual(UI/UX) Manual(UI/UX)

Build & Deploy

Regression

Performance (optional)

Smoke

Dev Manager

Director of Engineering

Release Manager

Director of Operations

Release Manager

Pipelines corresponding to each branch

Organization roles responsible for maintaining pipelines for each branch in “green” state

New feature

Latest changes from Dev

Merge to Dev

Development in Dev continues

Feature implementation (code & tests)

Ready for release Final fixes in

Release branch

Go to production Update Dev branch

Development in Dev continues

Urgent bugfix

Deploy to production Update Dev branch

with bugfix

Page 22: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

QA Automation Vision

22

Manual test suite

(typically end-to-end user acceptance tests)

Automated Functional Modular

(test each service or application

individually with stubbed external dependencies and test data)

Auto Integration (testing integration of each service or

application with real external dependencies and production data)

User acceptance

(testing system as a whole using UI with real external dependencies and production

data)

Manual execution time –

weeks

Full automatic execution

time –

hours

1.  Save on manual QA effort and reduce time to run regression automatically

2.  Create fine-grained modular tests for each service or application to increase test coverage

3.  Implement more tests to increase quality – running tests automatically is cheap

Staged execution: start with faster and more granular tests to find

defects quickly

Page 23: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

QA Automation Process Vision

23

Application development

Automatic functional tests implementation

Automatic performance tests implementation

Automatic test

execution and

reporting

Application development Functional tests execution Performance tests execution

Release (Months)

Release Candidate

Release Candidate

Sprint (Weeks)

1.  Integrate QA automation team with Development team to increase productivity and efficiency

2.  Use Acceptance Test Driven Development approach, implement automatic tests together with code development

Page 24: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Demo (feature branch)

24

Story As a customer, I want …, so that …

dev fb-x dev

fb-x

dev fb-x

dev fb-x

dev fb-x

1. Create story 2. Create feature branch

3. Commit code

4. Code review 5. Build, analyze, unit test

6. Functional test

Change ……………

Change ……………

Change ……………

Change ……………

Page 25: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Demo (dev branch)

25

dev fb-x

7. Merge to dev

Change ……………

dev fb-x

Change ……………

dev fb-x

Change ……………

dev fb-x

Change ……………

dev fb-x

Change ……………

dev fb-x

Change ……………

8. Code review 9. Build, analyze, unit test

10. Functional test 11. Deploy 12. Integration test

Page 26: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Agile Software Factory: Demo (branching & pipelines)

26

Feature Dev

Build

Unit test

Build

Unit test

Build

Unit test

Build

Functional test

Build

Unit test Unit test

New feature

Get latest changes

Ongoing development

Feature implementation (code & tests)

Ready for release

Feature (Code Review)

Dev (Code Review)

Local Repo

Submit to code review Merge

Merge to Dev, submit to code review

Get latest changes

Ongoing development

Merge to Dev

Functional test

Deploy

Integration test

2 min 2-3 min

3-5 min

2-3 min

10-15 min

Page 27: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Release

27

Release Candidate

……………………….. ……………………….. ………………………..

13. Deploy to Production

Page 28: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

QA Environment (static & manual)

Project X: Day Launch - 1 (Best Case)

28

Development Operations

Production ………………….. ………………….. ……misconfig. ………………….. ………………….. …network….. ………………….. ………………….. …………DB........

Production

Code H ………………….……bug…….

Code G ………………….…………………. …

Code C ……bug…….………………….

Code D ………………….………………….

Code B ………………….………………….

Code A ………………

….

……bug………

Code E ………………….

………………….

Code M ………………….………………….

Code X ………………….………………….

CI

Page 29: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Project X: Launch

29

Production

Code H ………………….………………….

Code G ………………….…………………. …

Code C ………………….………………….

Code D ………………….………………….

Code B ………………….………………….

Code A ………………

….

………………….

Code E ………………….

………………….

Code M ………………….………………….

Code X ………………….………………….

code bug

Data Z ………………….………………….

Data F ………………….

………………….

firewall issue

DB issue

First deployment on staging / production doesn’t go well.

However, this is the point when development and operations start collaborating first.

Page 30: Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

Enabling Technologies

Agile Software Factory Software Engineering Assembly Line

griddynamics.com

Qubell Enterprise DevOps Platform

qubell.com

30