1	
  
Adventures in Build
Laurette Cisneros
Build & Release
Engineering Manager
2	
  
Build & Release Engineering
§  Automation Framework
§  Build automation
§  Continuous integration builds
§  Porting
§  Configuration management
§  Branch Management
§  Packaging
§  Deployment
§  “Golden Master”
3	
  
Build & Release Engineering
§  Worldwide Teams
§  Agile
§  B&R:
§  Kanban
§  Jira
4	
  
The Way We Were
A bit of history
5	
  
In the beginning… (BL)
§  Manual builds
§  jam <product>
§  Some helper scripts
§  Machines and sliders
6	
  
In the beginning… (BL)
Later:
§  Started to look at VMware
§  Nightly builds (24 hours, subset)
§  build-build scripts (layer)
7	
  
Driving Toward Automation (= Efficiency)
ElectricCommander
8	
  
The Way We Are
Now we’re talking*
*As	
  my	
  Dad	
  used	
  to	
  say	
  
9	
  
Assembly Required
§  30+ products
§  50+ platforms
§  10+ programming languages
10	
  
Setting Up a More Elegant System
§  Modularization
§  Build Unit (125 distinct modules)
§  Sources
§  Procedures
§  Artifacts
§  Resource pools
§  Continuous Integration builds
§  Don’t break the build
11	
  
Perforce Build System
ElectricCommander
Build Library
Maven
jam
Module Configuration Files <other>
VMware
Studio
gradle
.	
  
.	
  
.	
  
Ant
Perl CodeProperties
12	
  
Turnaround
13	
  
Number of CI Builds
14	
  
Release Builds
15	
  
Data Driven Improvements
§  Gather metrics
§  Properties & DB
§  Wait time for resource
§  Elapsed time on resource
§  Identify bottlenecks
§  Adjust
§  See effects
16	
  
Optimizations
17	
  
Optimizations
18	
  
Onward Ho
We’re on a roll
19	
  
More Improvements
§  Automated Testing
§  Don’t break the product
§  Unit tests
§  Regression tests
§  QA can do more exploratory testing
§  Automated 3rd Party Library Builds
§  Streams
§  OVAs (Commons, Git Fusion, Swarm)
20	
  
Synergy
§  Jenkins
§  B&R maintains
§  Dev (and others) use
§  Test builds only
§  Version the Jenkins configuration into a
Perforce depot using Git Fusion
21	
  
Champagne
§  Perforce servers:
§  Build server
§  CI / test builds
§  Release builds
§  Production server
§  Released builds
§  Build server is a remote server
§  Source
22	
  
More Improvements
§  Replication Server
§  All reads (syncs) for builds from replication server
§  Reduce load on main server…
23	
  
In Progress / Coming Soon
§  Perforce Build System (V5)
§  Sync per resource
§  The power of replica(s)
§  Perforce access via the Build Library
§  Fetch components from depots
§  Embedded code & resource info.
backup/versioning
§  Streamlining, consistency, verification
§  3X increase so far…
§  Pre-flight builds
§  Shelving
24	
  
In Progress / Coming Soon
§  Violin
§  Memory 6212 12 TB
Enterprise Flash
Array connecting
8GB FC to Cisco
Nexus 5596 FCoE.
25	
  
YeeHaw
§  Tools (not “magic bullet”)
§  People
§  Planning and trying
§  Retrofitting
§  All about managing risk
§  Efficiency
26	
  
Questions?
“Life is a daring adventure or it is nothing at all.”
– Helen Keller

[Perforce] Adventures in Build

  • 1.
    1   Adventures inBuild Laurette Cisneros Build & Release Engineering Manager
  • 2.
    2   Build &Release Engineering §  Automation Framework §  Build automation §  Continuous integration builds §  Porting §  Configuration management §  Branch Management §  Packaging §  Deployment §  “Golden Master”
  • 3.
    3   Build &Release Engineering §  Worldwide Teams §  Agile §  B&R: §  Kanban §  Jira
  • 4.
    4   The WayWe Were A bit of history
  • 5.
    5   In thebeginning… (BL) §  Manual builds §  jam <product> §  Some helper scripts §  Machines and sliders
  • 6.
    6   In thebeginning… (BL) Later: §  Started to look at VMware §  Nightly builds (24 hours, subset) §  build-build scripts (layer)
  • 7.
    7   Driving TowardAutomation (= Efficiency) ElectricCommander
  • 8.
    8   The WayWe Are Now we’re talking* *As  my  Dad  used  to  say  
  • 9.
    9   Assembly Required § 30+ products §  50+ platforms §  10+ programming languages
  • 10.
    10   Setting Upa More Elegant System §  Modularization §  Build Unit (125 distinct modules) §  Sources §  Procedures §  Artifacts §  Resource pools §  Continuous Integration builds §  Don’t break the build
  • 11.
    11   Perforce BuildSystem ElectricCommander Build Library Maven jam Module Configuration Files <other> VMware Studio gradle .   .   .   Ant Perl CodeProperties
  • 12.
  • 13.
    13   Number ofCI Builds
  • 14.
  • 15.
    15   Data DrivenImprovements §  Gather metrics §  Properties & DB §  Wait time for resource §  Elapsed time on resource §  Identify bottlenecks §  Adjust §  See effects
  • 16.
  • 17.
  • 18.
  • 19.
    19   More Improvements § Automated Testing §  Don’t break the product §  Unit tests §  Regression tests §  QA can do more exploratory testing §  Automated 3rd Party Library Builds §  Streams §  OVAs (Commons, Git Fusion, Swarm)
  • 20.
    20   Synergy §  Jenkins § B&R maintains §  Dev (and others) use §  Test builds only §  Version the Jenkins configuration into a Perforce depot using Git Fusion
  • 21.
    21   Champagne §  Perforceservers: §  Build server §  CI / test builds §  Release builds §  Production server §  Released builds §  Build server is a remote server §  Source
  • 22.
    22   More Improvements § Replication Server §  All reads (syncs) for builds from replication server §  Reduce load on main server…
  • 23.
    23   In Progress/ Coming Soon §  Perforce Build System (V5) §  Sync per resource §  The power of replica(s) §  Perforce access via the Build Library §  Fetch components from depots §  Embedded code & resource info. backup/versioning §  Streamlining, consistency, verification §  3X increase so far… §  Pre-flight builds §  Shelving
  • 24.
    24   In Progress/ Coming Soon §  Violin §  Memory 6212 12 TB Enterprise Flash Array connecting 8GB FC to Cisco Nexus 5596 FCoE.
  • 25.
    25   YeeHaw §  Tools(not “magic bullet”) §  People §  Planning and trying §  Retrofitting §  All about managing risk §  Efficiency
  • 26.
    26   Questions? “Life isa daring adventure or it is nothing at all.” – Helen Keller