Release software is no less important than activities that precede it.
The Continuous Delivery is a set of practices and methodologies that build an ecosystem for the software development lifecycle.
We will see how to build this ecosystem around the applications developed, for which this release activities becomes a low-risk, inexpensive, fast and predictable.
24. • How many time you need to release
software
Time interval ...
25. • Everything will be ok ?
• Can i be sure that every needed step will
be done ?
• Exceptions, are managed ?
• Data migration goes well ?
• Can i go back (rollback) ?
Security
26. • Have, the selected person, all the skill
needed to terminate the procedure ?
• What about his behavior in some
exception flow case
Skills
27. • How many people you need ?
• For how many time ?
• Other Resources ?
Cost
28. • are able to indicate how much time will
care ?
Predictable
29. • What about the stress
• stress => error-prone
Stress
30. • Just finish a deploy. Software released.A bug
is found.You have to re-start
Repeatability
78. In software development the components
integration need to be tested continuosly...
in order to find inconsistencies
as soon as possible
Good Solution
80. Continuous Integration is a software
development practice where members of a team
integrate their work frequently, usually each
person integrates at least daily - leading to
multiple integrations per day.
Each integration is verified by an automated
build (including test) to detect integration errors
as quickly as possible.
Martin Fowler
94. Build & Test
✓Process creating executable code
✓Unit test
✓Quality criteria
✓FunctionalTest
✓Non FunctionalTest
Valid Syntax Compile
Code behavior
Code coverage, Mass detector
Business Acceptance Criteria
Application performance
PASS
95. CI - Reduce Risk
• Say goodbye to long and tense integrations
• Increase visibility which enables greater communication
• Catch issues fast and nip them in the bud
• Spend less time debugging and more time adding features
• Proceed in the confidence you’re building on a solid foundation
• Stop waiting to find out if your code’s going to work
• Reduce integration problems allowing you to deliver software
more rapidly
100. Team Responsibilities
• Check in frequently
• Don’t check in broken code
• Don’t check in untested code
• Don’t check in when the build is broken
• Repair the build as soon as possible
101. Ci - Best practice
• CI server === Production Server
• Integrate it from the first commit
• Find best way to get notified
132. How you keep updated your libraries
dependencies ?
to get the feature 103 done, i
use library XXX
ok, i’ll note it
here ...
to get the feature 103 done, i
use library XXX
OK ..
139. How you keep updated your OS componets/
libraries ?
to get the feature 103 done, i
use library XXX, that require
the module 288
ok, i’ll note it
here ...
to get the feature 103 done, i
use library XXX, that require
the module 903
OK ..
145. Manual - Follow recipe
• Integrity problems
• Problem with exception handling
• Basic Skills requirements
• Time consuming - expensive
• Error - prone
• Stress
146. Build a custom Script
• Do a backup
• Create new directory
• Update the code
• Update dependencies
• Run migration data
• Update Environements
• Warm up cache
• ...
150. • Built in Ruby
• Easy setup
• Event Task based, easy to hook into
• Multiple server
• Multistage extension
• Multiple recipe for different environments