10. Continuous Integration Flashcards
1
Q
problems in integration
A
- spend more time integrating than creating new features
- problems occur as software evolves due to concurrent development
- problems worsen when develop tries to:
- integrate large change to code base
- infrequent new feature integration
2
Q
continuous-integration practices
A
- change management
- maintain single source repository
- everyone commit to main line everyday
- every commit builds mainline
- everyone can see what is happening - quality assurance
- automate the build
- make build self testing
- test in a clone of the repository
- keep the build fast - deployment
- make it easy for anyone to get latest executable
- automate deployment
3
Q
late integration
A
- working on separate copy of source code for implementation
- considerable amount of conflict for merging
4
Q
what is continuous integration
A
- split work into small changes
- integrate frequently
- limit effect of exponential rate of divergence of the trunk
5
Q
feature branching option
A
- implement new feature on trunk with frequent small commit
- implement new feature on branch and merge frequently
- implement feature as a prototype branch, then re-implement feature on the trunk in small changes
- implement features as permanent branch
6
Q
maintain multiple continuous integration processes
A
- main line trunk development
- forked development for specified customer/purpose
- latest stable release only receive defect fixes
- significant feature branch
7
Q
monitoring and maintaining software quality
A
- detecting broken builds
- system should be compiled from source in clone repository
- automated regression test executed on complete system
- static analysis checks performed to compare with benchmarks
8
Q
preventing broken public builds (trunk)
A
flow…
9
Q
preventing broken public builds (branches)
A
flow…
10
Q
staging environment
A
- environment configured to replicate conditions that software will be used in
- configured with current hardware software dependencies
- changes need to be checked before release
- more than 1 staging environment may be needed.
11
Q
limitation of staging environment
A
- system distributed on too many computing nodes to test realistic scenarios
- system has too many simultaneous users
- too many diverse user types
- only one platform for software is available
- software dependencies cannot be accessed outside of production
12
Q
monitoring and visibility
A
push notifications and broadcast mechanism
13
Q
monitoring metrics
A
- unsuccessful builds
- average unsuccessful test
- time to build
14
Q
why are fast build essential
A
- delays in completing also delays discovery of problems
2. developers deterred from making frequent commits as waiting for build to complete reduce productivity
15
Q
continuous deployment
A
- automate deploying of software
- advantages:
- ensures that deployment process is used regularly
- different features can be deployed to differentiate users