agile software factory - cloud expo / devops summit 2014 demo

Post on 01-Jul-2015

498 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

NOVEMBER 14

Agile Software Factory Demo

1

Max Martynov, VP of Technology Grid Dynamics

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

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… …………………

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

Agile Software Factory

5

Agile Software Factory Pre-Integrated Continuous Delivery Infrastructure and Tooling

6

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

Agile Software Factory: Dashboard

8

Agile Software Factory: Jenkins – Selenium

9

Agile Software Factory: IDE – Gerrit - Jenkins

10

1. Notification about a new code review request

2. Approving code after review

Agile Software Factory: Jira – Jenkins

11

Agile Software Factory: Jira – Gerrit

12

Agile Software Factory: Email – Jira – Jenkins

13

Agile Software Factory: Gerrit - Jenkins

14

Agile Software Factory: Jenkins – Code Analysis

15

Agile Software Factory: Static Code Analysis

16

Agile Software Factory: Checkstyle

17

Agile Software Factory: PMD

18

NOVEMBER 14

Thank You!

19

Max Martynov, VP of Technology, Grid Dynamics mmartynov@griddynamics.com

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)

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

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

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

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 ……………

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

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

Release

27

Release Candidate

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

13. Deploy to Production

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

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.

Enabling Technologies

Agile Software Factory Software Engineering Assembly Line

griddynamics.com

Qubell Enterprise DevOps Platform

qubell.com

30

top related