Software Production Management
Transcript of Software Production Management
![Page 1: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/1.jpg)
Software Production ManagementAgile/Continuous IntegrationAgile/Continuous Integration
Backend infrastructure to realize Agile software development methodologies
November 18, 2008
Jeff PriceAccount Manager
www.electric-cloud.com
Dave FinneganSystems Engineer
![Page 2: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/2.jpg)
What am I going to tell you today?What am I going to tell you today?What am I going to tell you today?What am I going to tell you today?
Four practical steps to support Agile / Continuous IntegrationContinuous Integration
I t th B ild/I t ti tImpacts on the Build/Integration team
Best practices you can adopt right now
Commercially-available tools to overcome these impacts
19 November 2008 Slide 2
![Page 3: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/3.jpg)
Practical steps for Agile / CIPractical steps for Agile / CIPractical steps for Agile / CIPractical steps for Agile / CI
One : Enable developers to build small pieces of functionalityfunctionality
Two: Automate the full integration buildg
Three: Perform an integration build for each SCM commit
F Mi i i b k b ild d i iFour: Minimize broken builds and maximize integrated testing of new features
19 November 2008 Slide 3
![Page 4: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/4.jpg)
Impacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/Integration
One : Enable developers to build small pieces of functionalityfunctionality
Problem : Developers work on isolated components; Integration becomes a trouble spot
Two: Automate the full integration build
f f SCThree: Perform an integration build for each SCM commit
Four: Minimize broken builds and maximize integrated testing of new features
19 November 2008 Slide 4
![Page 5: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/5.jpg)
Impacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/Integration
One : Enable developers to build small pieces of functionalityfunctionality
Problem : Developers work on isolated components; Integration becomes a trouble spot
Two: Automate the full integration buildProblem : DIY build scripts are fragile and expensive
f f SCThree: Perform an integration build for each SCM commit
Four: Minimize broken builds and maximize integrated testing of new features
19 November 2008 Slide 5
![Page 6: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/6.jpg)
Impacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/Integration
One : Enable developers to build small pieces of functionalityfunctionality
Problem : Developers work on isolated components; Integration becomes a trouble spot
Two: Automate the full integration buildProblem : DIY build scripts are fragile and expensive
f f SCThree: Perform an integration build for each SCM commit
Problem : Number of builds and total build time explodesp
Four: Minimize broken builds and maximize integrated testing of new features
19 November 2008 Slide 6
![Page 7: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/7.jpg)
Impacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/IntegrationImpacts on Build/Integration
One : Enable developers to build small pieces of functionalityfunctionality
Problem : Developers work on isolated components; Integration becomes a trouble spot
Two: Automate the full integration buildProblem : DIY build scripts are fragile and expensive
f f SCThree: Perform an integration build for each SCM commit
Problem : Number of builds and total build time explodesp
Four: Minimize broken builds and maximize integrated testing of new features
19 November 2008 Slide 7
Problem : keeping the main line buildable and clean
![Page 8: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/8.jpg)
Overcoming ImpactsOvercoming ImpactsOvercoming ImpactsOvercoming Impacts
Problem : Developers work on isolated components; Integration becomes a trouble spotcomponents; Integration becomes a trouble spot
Problem : DIY build scripts are fragile and expensivep
Problem : Number of builds and total build time explodes
Problem : keeping the main line buildable and clean
19 November 2008 Slide 8
![Page 9: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/9.jpg)
Give the developers access to the build!Give the developers access to the build!Give the developers access to the build!Give the developers access to the build!
Put full builds in the hands of developersSet up an internal web page that allows aSet up an internal web page that allows a developer to fire off a buildThe developer should be able to select:The developer should be able to select:
Which branch to build…… or the location of his personal source treeWhether to run unit tests or notWhether to run unit tests or notSelect platforms
The build runs and the engineer gets an email with the result
19 November 2008 Slide 9
![Page 10: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/10.jpg)
The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…
Problem : Developers work on isolated components; Integration becomes a trouble spotcomponents; Integration becomes a trouble spot
Problem : DIY build scripts are fragile and expensivep
Problem : Number of builds and total build time explodes
Problem : keeping the main line buildable and clean
19 November 2008 Slide 10
![Page 11: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/11.jpg)
Script your build the way you write code!Script your build the way you write code!Script your build the way you write code!Script your build the way you write code!
Design generic, modular build elements which can be reusedcan be reused
Make use of parameterization
D l l C ti I t ti tDevelop or apply Continuous Integration systems (start with cron)
Standardize on a single set of build toolsStandardize on a single set of build toolsPick a scripting language and stick with itEnforce SCM for build scriptsCode review for build scripting
Know when to stop fiddling
19 November 2008 Slide 11
![Page 12: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/12.jpg)
The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…
Problem : Developers work on isolated components; Integration becomes a trouble spotcomponents; Integration becomes a trouble spot
Problem : DIY build scripts are fragile and expensivep
Problem : Number of builds and total build time explodes
Problem : keeping the main line buildable and clean
19 November 2008 Slide 12
![Page 13: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/13.jpg)
Make the build fast, automatic, and visibleMake the build fast, automatic, and visibleMake the build fast, automatic, and visibleMake the build fast, automatic, and visible
Achieve fast buildsThat means better build structureFast build hardware, special software for parallel buildsgmake -j may get you 2-3x improvements
S h d l b ild th h t tiSchedule builds through automationcron for CI buildsWeb front-ends and request systems for developer builds
Investigate better build reportingCollect and publish build result information
Build statusBuild statusCollect metrics: errors, warnings, tests, etcInclude changelogs
Build tracking repository
19 November 2008 Slide 13
Build tracking repository
![Page 14: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/14.jpg)
The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…The Problems for the Build team…
Problem : Developers work on isolated components; Integration becomes a trouble spotcomponents; Integration becomes a trouble spot
Problem : DIY build scripts are fragile and expensivep
Problem : Number of builds and total build time explodes
Problem : keeping the main line buildable and clean
19 November 2008 Slide 14
![Page 15: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/15.jpg)
Guard the mainline and create policiesGuard the mainline and create policiesGuard the mainline and create policiesGuard the mainline and create policies
Private BranchesGive developers private branches, or multi-stage CI streamsp p , g
Integration BuildsRequire developers to run integration builds before merging
SCM TriggersUse SCM hooks to fire an integration build for every checkin
Automate Checkin RevertsIntegrate SCM and CI to revert checkins which break the build
Communicate StatusUse notification, dashboards, or lava lamps to communicate mainline status
19 November 2008 Slide 15
mainline status
![Page 16: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/16.jpg)
Going Beyond DIYGoing Beyond DIYGoing Beyond DIYGoing Beyond DIY
19 November 2008 Slide 16
![Page 17: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/17.jpg)
The Build ManagerThe Build ManagerThe Build ManagerThe Build Manager
19 November 2008 Slide 17
![Page 18: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/18.jpg)
Improving on inImproving on in--househouseImproving on inImproving on in househouse
I need fast buildsTh t b tt b ild t tThat means better build structureFast build machines, special software for parallel buildsgmake -j doesn’t give the speedup up I need
I d i 200 b ild d I d b lI’m doing 200 builds a day, I need better toolscron just won’t cut itI need resource management toolsI need developers to build in the production environmentI need developers to build in the production environment
I need reporting toolsEveryone wants live build feedback
’Perl + Excel isn’t enough
I need this because builds are now the heartbeat of software engineering
19 November 2008 Slide 18
![Page 19: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/19.jpg)
Electric Cloud SPM SolutionsElectric Cloud SPM SolutionsElectric Cloud SPM SolutionsElectric Cloud SPM Solutions
ElectricInsightElectricInsightVisualize Builds
El t i A l t
ElectricCommanderAutomate Production Processes
ElectricAccelerator10-20x Faster Builds
Automate Production Processes
Build Package Test DeploySCM ToolsPerforce, Subversion, Cl C
Build ToolsMake, Ant,
Package ToolsInstallers, etc.
Test ToolsUnit Test Tools,
d
Deploy ToolsMisc.
ClearCase,AccuRev, etc
19 November 2008 Slide 19
, ,Maven, etc.
,Code Coverage
![Page 20: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/20.jpg)
Improving on inImproving on in--househouseImproving on inImproving on in househouse
I need fast buildsTh t b tt b ild t tThat means better build structureFast build machines, special software for parallel buildsgmake -j doesn’t give the speedup up I need
I d i 200 b ild d I d b lI’m doing 200 builds a day, I need better toolscron just won’t cut itI need real management toolsI need developers to build in the production environmentI need developers to build in the production environment
I need reporting toolsEveryone wants live build feedback
’Perl + Excel isn’t enough
I need this because builds are now the heartbeat of software engineering
19 November 2008 Slide 20
![Page 21: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/21.jpg)
ElectricAcceleratorElectricAcceleratorElectricAcceleratorElectricAccelerator
Problem it solves: Build cycle is too longVery long buildsy gComplex matrix of builds and targets
Benefits:10 20x faster builds10-20x faster builds
How it works:Run builds in parallel using a cluster of standard hardwareAutomatically discover and track dependencies Plug-compatible replacement for GNU make, Microsoft nmake, Visual Studio, AntNo process changes required
Works with ElectricCommander or stand-alone
19 November 2008 Slide 21
Based on proven, patented dependency management technology
![Page 22: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/22.jpg)
How Do You Get There?How Do You Get There?How Do You Get There?How Do You Get There?
Requirements for real build acceleration:
Fast and accurate builds via parallelism• Requires understanding of dependencies
R b t d l blRobust and scalable• Support high build volume and avoid resource failure
Work within existing environmentWork within existing environment• Must not require costly re-write
Visibility and reportingVisibility and reporting• Provide status reports and tools for diagnostics
19 November 2008 Slide 22
![Page 23: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/23.jpg)
Managing Dependencies for Parallel BuildsManaging Dependencies for Parallel BuildsManaging Dependencies for Parallel BuildsManaging Dependencies for Parallel Builds
Builds have inherent parallelism Source
Should be able run pieces concurrently
Large SMP Machines
SourceCode
ObjectFiles
01010101010101010101
01010101010101010101
01010101010101010101
01010101010101010101
01010101010101010101
01010101010101010101
Large SMP Machines (gmake –j)Distributed builds (distcc)
Other attempts yield small 01010 01010E t bl
01010101010101010101
01010101010101010101
01010101010101010101
01010101010101010101
Libraries
Other attempts yield small results due to dependencies:
Incomplete or unknown
01010101010101010101
01010101010101010101
Executables
Incomplete or unknownCan’t be expressed between Makefiles
R lt b k b ild Release
19 November 2008 Slide 23
Result: broken builds Release
![Page 24: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/24.jpg)
Solution for Fast, Accurate BuildsSolution for Fast, Accurate BuildsSolution for Fast, Accurate BuildsSolution for Fast, Accurate Builds
Deduce dependencies on-the-fly:Watch all file accesses: these indicate dependenciespAutomatically detect out-of-order steps
Desired ActualDesired Actual
10101010101010101010101010101010101
class.cpp class.obj10101010101010101010101010101010101
app.exe
read write writereadCompileand link
10101010101010101010101010101010101
class.cpp class.obj
read write
Compilesource
Linkapplication
and linkstepsrun inparallel1010101
010101010101010101010
class.obj1010101010101010101010101010
app.exe
19 November 2008 Slide 24
old!01010101010101
01010101010101writeread
![Page 25: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/25.jpg)
Solution for Fast, Accurate BuildsSolution for Fast, Accurate BuildsSolution for Fast, Accurate BuildsSolution for Fast, Accurate Builds
Deduce dependencies on-the-fly:Watch all file accesses: these indicate dependenciespAutomatically detect and correct out-of-order stepsSave discovered dependencies for future buildsResult: high concurrency is safeResult: high concurrency is safe
Desired ActualDesired Actual
10101010101010101010101010101010101
class.cpp class.obj10101010101010101010101010101010101
app.exe
read write writeread
10101010101010101010101010101010101
class.cpp class.obj10101010101010101010101010101010101
app.exe
read write writeread
Compilesource
Linkapplication
Rerun link1010101010101010101010101010
class.obj1010101010101010101010101010
app.exe
19 November 2008 Slide 25
old!01010101010101
01010101010101writeread
Discard
![Page 26: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/26.jpg)
ElectricAccelerator ArchitectureElectricAccelerator ArchitectureElectricAccelerator ArchitectureElectricAccelerator ArchitectureNetwork
Cluster
Production Machines
Build with ClusterManager
Build with ElectricMake
instead of GNU Make,
Microsoft
Agent Agent …U l l
Microsoft NMAKE,
Visual Studio
Build Cluster(10-1000 CPUs)
Developer Machines
Electric File System
Node
KernelUser-level
19 November 2008 Slide 26
(10-1000 CPUs) Node
![Page 27: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/27.jpg)
File Caching for Network OptimizationFile Caching for Network OptimizationFile Caching for Network OptimizationFile Caching for Network Optimization
Electric Make
Make Machine
Electric MakeNetwork bandwidth concentrates at make machineN t k machineNetwork
Peer to peer file transfer
Node
Electric File System
AgentFile
Cache
Node
Electric File System
AgentFile
Cache
Node
Electric File System
AgentFile
Cache
Node
Electric File System
AgentFile
Cache
File caching on nodes cuts 90-95% of network traffic
Just-in-time compression cuts traffic 2 5-3x
Peer-to-peer file transfer
19 November 2008 Slide 27
Just-in-time compression cuts traffic 2.5-3x
P2P file transfers offload 20-25% of outbound traffic
![Page 28: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/28.jpg)
Linear ScalabilityLinear ScalabilityLinear ScalabilityLinear Scalability
16 416.4x
11.3x9.4x
Local 20 CPUs SpeedupSamba 16m 58s 16.4x
19 November 2008 Slide 28Slide 28Slide 28
MySQL 23m 124s 11.3xGtk 15m 95s 9.4x
![Page 29: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/29.jpg)
Works Seamlessly in EnvironmentWorks Seamlessly in EnvironmentWorks Seamlessly in EnvironmentWorks Seamlessly in Environment
Works seamlessly with existing infrastructureGNU make Nmake Visual StudioGNU make, Nmake, Visual StudioNo learning a new interface/toolUse existing Makefiles and scriptsId ti l l filIdentical log files
Works with grid systemUse dedicated cluster of servers or central data centerUse dedicated cluster of servers or central data centerFully integrated with the Platform LSF grid computing solutionP id b ildProvide build resources just when needed
19 November 2008 Slide 29Minimal changes required for end users
![Page 30: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/30.jpg)
Improving on inImproving on in--househouseImproving on inImproving on in househouse
I need fast buildsTh t b tt b ild t tThat means better build structureFast build machines, special software for parallel buildsgmake -j doesn’t give the speedup up I need
I d i 200 b ild d I d b lI’m doing 200 builds a day, I need better toolscron just won’t cut itI need real management toolsI need developers to build in the production environmentI need developers to build in the production environment
I need reporting toolsEveryone wants live build feedback
’Perl + Excel isn’t enough
I need this because builds are now the heartbeat of software engineering
19 November 2008 Slide 30
![Page 31: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/31.jpg)
ElectricCommanderElectricCommanderElectricCommanderElectricCommanderProblem it solves: Manual, inflexible build and test infrastructure
Web-based platform for managing distributed processesFaster, more efficient build and release processesMore efficient resource utilizationMore efficient resource utilizationBetter visibility and predictabilityCan standardize throughout an organization
P d
Job
Step
Step
Job
StepJob
J b
Schedule/Trigger
Procedure
Step
Step
StepCompile
Snapshot
Setup
Step
Step
Step
Step
Step
Step
Step
Step
Step
Step
Job
Step
Step
StepStep
Step
StepReport
Unit Test
Compile
StepStep
Step
Step
Step
Step
19 November 2008 Slide 31Linux server Windows
serverLinux server Test harness
Resources
Pool
Linux server
![Page 32: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/32.jpg)
Managing Global TeamsManaging Global TeamsManaging Global TeamsManaging Global Teams
SW DEVELOPERSMunich
ENGINEERING MGRBoston
BUILD TEAMSan Francisco
OUTSOURCEDQA
SW DEVELOPERSSan Francisco
19 November 2008 Slide 32Slide 32
Specific Access and Permissions Based on RoleAnywhere in the World
QA Bangalore
![Page 33: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/33.jpg)
Managing ResourcesManaging ResourcesManaging ResourcesManaging Resources
VMware Lab Manager
VMware Lab Manager
SW DEVELOPERS
ENGINEERING MGR
BUILD TEAM
VMware Lab Manager
Dynamic Provisioning
OUTSOURCEDQA
SW DEVELOPERS
VMware Lab Manager
19 November 2008 Slide 33Slide 33Test ServersBuild Servers Production Servers Virtual Servers
QA
![Page 34: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/34.jpg)
Integrate Tools and ProcessesIntegrate Tools and ProcessesIntegrate Tools and ProcessesIntegrate Tools and Processes
SW DEVELOPERS ENGINEERING MGR BUILD TEAM OUTSOURCEDQA
SW DEVELOPERS Build ToolsSCM ToolsUnit TestsDeployment Tools
Unit TestsBuild Tools
Deployment ToolsSCM Tools
19 November 2008 Slide 34Test ServersBuild Servers Production Servers Virtual Servers
![Page 35: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/35.jpg)
Tie it all TogetherTie it all TogetherTie it all TogetherTie it all Together
SW DEVELOPERS ENGINEERING MGR BUILD TEAM OUTSOURCEDQA
SW DEVELOPERS
Unit TestsBuild Tools
SCM Tools Deployment Tools
19 November 2008 Slide 35Slide 35Test ServersBuild Servers Production Servers Virtual Servers
![Page 36: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/36.jpg)
ElectricCommander BasicsElectricCommander BasicsElectricCommander BasicsElectricCommander Basics
When to run a
Job
StJob
Container for processes and
Project
S h d l /T i
When to run a procedure
Process to run
Step
Step
Step
Step
Step
Job
Step
Step
Job
Step
Procedure
StepSetup
processes and results
Schedule/TriggerProcess to run automatically
Step
Step
Step
Step
Step
Step
Step
Step
Step
Step
Step
Step
Snapshot
Compile
Step
Step
Step
Step
Step
Step
Step
Step
Unit Test
Report
Command or script
Pool
Records results of running a
Test Windows
19 November 2008 Slide 36Slide 36Resources
procedureLinux serverLinux server Linux server Test harness
Windows server
![Page 37: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/37.jpg)
Continuous IntegrationContinuous IntegrationContinuous IntegrationContinuous Integration
Build Success
QADeveloper runs local build and smoke tests
Developer checks tested code into SCM system
SCMSCMCheck-In
electriccommander
Integration build at frequent intervals or upon check-in
SCMSCMSystemSystem
Integration BuildProduction Servers
19 November 2008 Slide 37
![Page 38: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/38.jpg)
Frequent Problem: Continuously Broken Frequent Problem: Continuously Broken B ildB ildBuildsBuilds
Developer builds/tests on local system, checks in code
XWait
Integration build started, breaks (“it worked on my machine”)SCMSCM
Check-In
Xelectriccommander
y )
Team impacted while check-in is backed out or build fixed
SCMSCMSystemSystem
XBack Out
Production Servers
Build Failure
or build fixedXWait Integration Build
Production Servers
19 November 2008 Slide 38
Build Failure
![Page 39: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/39.jpg)
Solution: PreSolution: Pre--Flight Builds and TestsFlight Builds and TestsSolution: PreSolution: Pre Flight Builds and TestsFlight Builds and Tests
electriccommander
Developers build and test across all targets/platforms
SCMSCMSystemSystem
electriccommander
SuccessEnsures successful integration build
Developers can checkSystemSystem Developers can check in changes with confidence
Success
Developers
Test Servers Production Servers Broken builds less likely to affect the entire team
19 November 2008 Slide 39
Build or Test Failure
![Page 40: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/40.jpg)
Preflight WorkflowPreflight Workflow
1. Developer invokes preflight through Visual Studio, Eclipse or command line
ElectricCommander
IDE
e e ope o es p e g oug sua S ud o, c pse o co a d e
Developer changes
if {x<y}
…
IDEIDE
if {x<y} func {x};+
Preflight Result
1 Preflight result
IDE
Source
func {x};
func {y}; 1. Developer changes and source snapshot uploaded to ElectricCommander
…func {y};
1. Preflight result displayed in IDE
2. Autocommit checks in
if {x<y}
…
snapshotElectricCommander
2. ElectricCommander overlays the changes on top of the snapshot
SCM
checks in successful changes to SCM (optional)
3. ElectricCommander runs a build as if the developer had checked-in the code
SCM
![Page 41: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/41.jpg)
Improving on inImproving on in--househouseImproving on inImproving on in househouse
I need fast buildsTh t b tt b ild t tThat means better build structureFast build machines, special software for parallel buildsgmake -j doesn’t give the speedup up I need
I d i 200 b ild d I d b lI’m doing 200 builds a day, I need better toolscron just won’t cut itI need real management toolsI need developers to build in the production environmentI need developers to build in the production environment
I need reporting toolsEveryone wants live build feedback
’Perl + Excel isn’t enough
I need this because builds are now the heartbeat of software engineering
19 November 2008 Slide 41
![Page 42: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/42.jpg)
Pinpoint Data for ReportingPinpoint Data for ReportingPinpoint Data for ReportingPinpoint Data for Reporting
Extract data from log files, create reportsPatterns
cl.*warning
xxxx*error*
xyzzy
Log
tests: 217 errors: 2
Job Step PostprocessorLog
File
Problem:L l l fil
ElectricCommander solution:E t t k d t f l
Properties
• Large, complex log files• Only a small amount of data
matters • Log files get deleted
• Extract key data from log:• Tests executed• Errors• Diagnostic messages
19 November 2008 Slide 42Slide 42
Diagnostic messages• Save in database
![Page 43: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/43.jpg)
Visibility: Management ReportsVisibility: Management ReportsVisibility: Management ReportsVisibility: Management Reports
19 November 2008 Slide 43
![Page 44: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/44.jpg)
Improving on inImproving on in--househouseImproving on inImproving on in househouse
I need fast buildsTh t b tt b ild t tThat means better build structureFast build machines, special software for parallel buildsgmake -j doesn’t give the speedup up I need
I d i 200 b ild d I d b lI’m doing 200 builds a day, I need better toolscron just won’t cut itI need real management toolsI need developers to build in the production environmentI need developers to build in the production environment
I need reporting toolsEveryone wants live build feedback
’Perl + Excel isn’t enough
I need this because builds are now the heartbeat of software engineering
19 November 2008 Slide 44
![Page 45: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/45.jpg)
Builds are too expensive to ignore!Builds are too expensive to ignore!Builds are too expensive to ignore!Builds are too expensive to ignore!Multi-Platform Gaming CompanyProblem:Problem:
Challenging, complicated build-test matrix (Xbox, PS3, PC)
Slow builds kept QA waiting and Developers avoiding p.m. h kicheckins
Initial Continuous Integration approach led to 300 broken builds per month
Solution: ElectricAccelerator + ElectricCommander
Build acceleration led to more frequent builds and testsqBuild time from 2.5 hours to 12 minutes
Developer “preflight” builds reduced broken builds by 90%Preflight build and test run on 3 platforms prior to check-in
19 November 2008 Slide 45
Preflight build and test run on 3 platforms prior to check in10% due to developers not doing preflight
![Page 46: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/46.jpg)
Customer ExamplesCustomer ExamplesCustomer ExamplesCustomer Examples
Networking Semiconductor Cellular ISV Other
19 November 2008 Slide 46Slide 46
![Page 47: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/47.jpg)
What we have covered todayWhat we have covered todayWhat we have covered todayWhat we have covered today
Four practical steps which are required to support Agilesupport Agile
Impacts of these steps on the Build/Integration team
Best practices you can adopt right now to handle these impacts
Commercially-available tools which overcome these impacts
19 November 2008 Slide 47
![Page 48: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/48.jpg)
Thanks for attendingThanks for attendingThanks for attendingThanks for attending
For more information:For more information:Visit our website: www.electric-cloud.comE-mail: [email protected]: 408.419.4300
19 November 2008 Slide 48
![Page 49: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/49.jpg)
Questions and AnswersAnswers
Backend infrastructure to realize Agile software development methodologiesp g
www.electric-cloud.com
![Page 50: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/50.jpg)
Supplemental SlidesBuild Your OwnBuild Your Own
www.electric-cloud.com
![Page 51: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/51.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Seems pretty straightforward…
ent
Inve
stm
e
Automated build and test for one build tool, one
machineI machine
Scheduled jobs
FeaturesTrigger builds
19 November 2008 Slide 51
Trigger builds after check-ins
![Page 52: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/52.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Just a few finishing touches
ent
Inve
stm
e
Automated build and test for one build tool, one
machineI machine
Scheduled jobsWeb-based
access to results
FeaturesTrigger builds Notifications via e mail/RSS
access to results
19 November 2008 Slide 52
Trigger builds after check-ins
Database of build results
Notifications via e-mail/RSS
![Page 53: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/53.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Multiple servers, concurrency
ent
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
19 November 2008 Slide 53
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
![Page 54: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/54.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Better monitoring and control
ent
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
19 November 2008 Slide 54
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
![Page 55: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/55.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Better reporting
ent
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
Customizable reports
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
T l f
Trend reports
Cross-product reports
R
p
19 November 2008 Slide 55
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
Tools for extracting
data from logs
Resource utilization
reports
Annotate builds after completion
![Page 56: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/56.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Better error handling
ent
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status Retry steps after
errors/ failures
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
Customizable reports
Logging and error reporting
Timeouts for runaway job
Detect resource failures
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
T l f
Trend reports
Cross-product reports
R
p y jsteps
19 November 2008 Slide 56
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
Tools for extracting
data from logs
Resource utilization
reports
Annotate builds after completion
![Page 57: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/57.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Developer access to production User
Handle multiple independent groups
ent
builds
LDAP
Shared access by multiple teams
User impersonation,
password management
Priorities
p g p
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status Retry steps after
errors/ failures
LDAP authentication
Role-based access control
Priorities
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
Customizable reports
Logging and error reporting
Timeouts for runaway job
Detect resource failures
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
T l f
Trend reports
Cross-product reports
R
p y jsteps
19 November 2008 Slide 57
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
Tools for extracting
data from logs
Resource utilization
reports
Annotate builds after completion
![Page 58: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/58.jpg)
Build Your Own?Build Your Own?Build Your Own?Build Your Own?
Developer access to production User
More programming features
ent
builds
LDAP
Shared access by multiple teams
User impersonation,
password management
Priorities
Modular, composable
process stepsExtensibility
Parameters Control
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status Retry steps after
errors/ failures
LDAP authentication
Role-based access control
Priorities
Conditional stepsenvironment
for jobs
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
Customizable reports
Logging and error reporting
Timeouts for runaway job
Detect resource failures
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
T l f
Trend reports
Cross-product reports
R
p y jsteps
19 November 2008 Slide 58
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
Tools for extracting
data from logs
Resource utilization
reports
Annotate builds after completion
![Page 59: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/59.jpg)
Build Your Own? It Never EndsBuild Your Own? It Never EndsBuild Your Own? It Never EndsBuild Your Own? It Never Ends
Developer access to production User
SCM integration, bill of materials
Support multiple languages and
build tools
Web interface for editing processes
Command-line
ent
builds
LDAP
Shared access by multiple teams
User impersonation,
password management
Priorities
Modular, composable
process stepsExtensibility
Parameters Control
Portable across hardware/OS
platforms
interface
Inve
stm
e
Notifications via e mail/RSS
Resource pooling, load
View partial results of builds in progress
Monitor system status Retry steps after
errors/ failures
LDAP authentication
Role-based access control
Priorities
Conditional stepsenvironment
for jobs
I
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Run multiple builds
simultaneously
p gbalancing
Cancel jobs
On-demand job in ocation ia
Customizable reports
Logging and error reporting
Timeouts for runaway job
Detect resource failures
FeaturesScheduled jobs
Trigger builds ft h k i
Web-based access to
results R j b t
Multiple jobs run on one resource simultaneously
Resource selection criteria
invocation via Web
T l f
Trend reports
Cross-product reports
R
p y jsteps
19 November 2008 Slide 59
after check-ins results
Database of build results Single job can use
multiple resources
Run job steps in parallelMultiple servers,
remote invocation
Tools for extracting
data from logs
Resource utilization
reports
Annotate builds after completion
![Page 60: Software Production Management](https://reader033.fdocuments.net/reader033/viewer/2022052107/628833911ce80650931e528d/html5/thumbnails/60.jpg)
Questions and AnswersAnswers
www.electric-cloud.com