Continuous Integration

&

Continuous Deployment

Martin Shwalbe

Zf2 contributor

Modules developer time waster

@mshwalbe - Hounddog

Continuous Integration

What is Continuous Integration?

"Continuous Integration is a software development practice where members of a team integrate their work frequently" --Martin Fowler

Testing

Available Tools

Travis

Bamboo

Jenkins

many more...

Requirements for successfull CI

100% Code Coverage

100% Clean Code

Is this guy Crazy?

We are developing already for some time, implementing Code Coverage till 100% will take us at least 6 Months!

What Is Continuous Deployment?

Automation

Reduces code inventory

Improves Confidence

Safety

Fast turnaround

Happy Customers

Happy Developers

Available Tools?

Jenkins, Bamboo

Considerations

Traditional Release Cycles

Timeline

1-4 Weeks

Development Release
Cut
Stage QA Fix Bugs Integrate Patches Release

Continuous Deployment Release Cycles

Timeline

5-10 minutes

Development Release
Cut
Stage Automated QA testing and staging Fix Bugs Integrate Patches Release

Strategies

UI Upgrades

Enable ui upgrades only through configuration Switches

Database Upgrades

Only do non-destructive database updates

Questions?