31
Continuous Integration @XPDay Da Nang 2015 Quang Nguyen

[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Embed Size (px)

Citation preview

Page 1: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Continuous Integration@XPDay Da Nang 2015

Quang Nguyen

Page 2: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Write my very first program in Scheme

language

Start with Java2002

2004

Get introd-uced to XP

First reading about Agile/

Scrum2008

2010Jump to Agile

World

...still a long journey

Page 3: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
Page 4: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Stop me for questions

http://anthonyfrasier.com

Page 5: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

When you have Jenkin (or Hudsons), you have

CI.Is it corected?

Page 6: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

WHAT?

Page 7: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Continuous Integration

Coined by Kent Beck as a part of eXtreme Programming (1996-1999).

Integrate work frequently into mainline.

Multiple integrations per day.

Integration verified by automated tests.

Detect integration errors early.

http://martinfowler.com/articles/continuousIntegration.html

Page 8: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Definitions & Mindset• Develop (code & tests)

• Compile

• Test

• Integrate

• Test more

• Integrate more

• ...

Page 9: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Definitions & MindsetCI is a Software Development Practice

Involving a change of mindsetThink CI as a part of the development effort, not as a separate item

Think CI as a prerequisite for Agile software development practices

• Develop (code & tests)

• Compile

• Test

• Integrate

• Test more

• Integrate more

• ...

Page 10: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

What CI is NOT• IT IS NOT A SOFTWARE TOOL

• IT IS NOT A BUILD ENVIRONMENT

• IT IS NOT ABOUT HAVING NIGHTLY BUILDS

• IT IS NOT A CHECKBOX ON A TODO LIST

Page 11: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

When you have Jenkin (or

Hudsons), you have CI.

Is it corected?

Page 12: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

WHY?

Page 13: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Feedback in SW Development

Develop Test

Inspect/Learn

Adapt/Improve

Page 14: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Feedback in SW Development

Develop Test

Inspect/Learn

Adapt/Improve

Customer

Inspect/Learn

Page 15: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Agile  with  CI

Time

Fee

dba

ck

Waterfall

Agile  without  CI

Page 16: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Why not go for it?

- Increased overhead in

maintaining the CI system

- Too much feedback to act upon

- Additional hardware/software

cost

- Developers should be performing

these activities

- We have too complex a product

- Processes are

preventing us from

committing Frequently

- We don’t have time to do this

- Merging is too laborious

- We cannot do all the tests before

commit/delivery

- Good quality is a prerequisite

for CI

- The tasks have too many

dependencies

- We have never

seen a system

tester

- Branching for

features were

required from us

Page 17: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

So… How can it fail?

Embracing the excuses

Not caring about it

Excuse #238:We don’t have time to do this

Page 18: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

HOW?

Page 19: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

CI Framework & Interactions

Build  System

Test  AutomationFramework

SUTsSystem  Under  

TestCI  Server

Bug  Tracking  System

Test  Management  System

Version  Control  System

(Subversion,  GIT)

Page 20: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Maximize SEPARATION Maximize INTEGRATION

Branching strategies

Page 21: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Some CI System

Page 22: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Best Practices - Level 1

Maintain a single source repository

Commit often

Always  integrate

Always  green  light  (100%  tests  passed)

Fix  immediately  when  broken

Always  improve

Page 23: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Best Practices - Level 2Automate the build

Make your build self-testing

Every commit should build on an integration machine

Keep the build fast

Test in a clone of the production environment

Make it easy for anyone to get the latest executable

Everyone can see what’s happening

Automate deployment

http://en.wikipedia.org/wiki/Continuous_integration

Page 24: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

PLUS

Page 25: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

CI to CD to DevOps

plan code build test release deploy operate

Agile  Development

Continuous  Integration

Continuous  Delivery

DevOps

Page 26: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Extreme Feedback System

http://jenkins-ci.org/content/extreme-feedback-lamp-switch-gear-style

Page 27: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Extreme Feedback System

Raspberry PI

5V Relay Module With Optocoupler

Led lights

Page 28: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Extreme Feedback System

Page 29: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Extreme Feedback System

Page 30: [Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang

Feedback Concerns

Questions

Conclusions

more…

Sharings