build infrastructure: what it is and why you need it
DESCRIPTION
Talk given at the 2014 Grace Hopper Conference in Phoenix, Arizona. Covers the history of the Build & Release Engineering area at Unity (from 2010 to the current state in 2014), and then follows with an overview and introduction to the "5 Pillars of Build Engineering" and what they mean in practice.TRANSCRIPT
2014
Build & Infrastructure
EngineeringWhat It Is and Why You Need It
Na’Tosha J. Bard
October 9, 2014
#GHC14
2014
2014
What is Build Engineering?
2014
Build Engineering is the glue
that holds the software
development process
together.
2014
Examples of Build Engineering
Choosing, configuring, customizing, and
maintaining a CI server
Applying/Optimizing development models
(branch-based, patch-based, etc.)
Build optimizations (distributed builds, bulk
builds, etc.)
… and much more
2014
Why do I care?
2014
About the Speaker
Na’Tosha J. Bard
Copenhagen, Denmark
Lead Build & Infrastructure Developer, Unity Technologies
Open-Source and Linux Enthusiast
2014
What is Unity?
Game engine and content
creation toolkit
Editor for Mac OSX and
Windows
Runtime ported to ~20
platforms
Mostly written in C++
Gameplay code written in C#
Scripting engine for gameplay
code built with Mono
2014
Build Engineering
at Unity Technologies
2014
2010
Unstable SVN server
All developers commit directly to trunk
Unstable CI server
6 VisualStudio and Xcode solutions wrapped in Perl
Automated tests nightly on 2 platforms
4 machines for building
Deployment scripts running from developer machines
No automatic verification of deployed builds
2014
2014
DVCS with Mercurial
Branch-based development
Project files generated with Jamplus
Stable CI solution (internally-developed)
Automated tests running on developer branches and on our mainline on 7+ platforms
Build Cloud of over 200 virtual and physical machines
Deployment scripts running from central deployment server with verification
Publishing portal for deployment is in-development
2014
Release Schedule Over Time
Every 2 to 6 weeks Weekly
2014
Foundation of Build
Infrastructure
2014
The 5 Pillars of Build Infrastructure
One-Click Builds
Build Automation
Continuous Integration
Automated Testing
Automated Deployment
2014
One-Click Builds
Building your software with just
one click.
2014
Benefits of One-Click Builds
KISS principle
Build early, build often
Groundwork for other software
development principles
2014
Getting Started with One-Click Builds
Depends on your application
Cohesive buildsystem
Keep platform-dependent issues in mind!
2014
Build Automation
A build server to run your one-
click builds.
2014
Benefits of Build Automation
Verification
Parallelization
Groundwork for other software
development principles
2014
Getting Started with Build Automation
TeamCity, Bamboo, Team Foundation
Server
Jenkins, Buildbot
Give careful thought to
buildserver/buildsystem configuration split
2014
Continuous Integration
Continuously run your automated
builds.
2014
Benefits of Continuous Integration
Increased developer productivity
Helps avoid “Integration Hell”
Automatically identifies exact failure point
2014
Getting Started with Continuous Integration
Generally, the same solutions as for Build
Automation apply here
Note: Sometimes “Frequent Integration” is
good enough
2014
Automated Testing
Execute tests on your
continuously-running builds.
2014
Automated Testing
Provides protection against regressions
Saves human resources
Keeps test suites from bit-rotting
2014
Getting Started with Automated Testing
Find a test framework for your technology
NUnit, JUnit, PyUnit (unittest)
Sometimes creating your own frameworks
is an answer (i.e, High-Level Integration
Tests)
2014
Automated Deployment
Easily deploy your tested builds.
2014
Benefits of Automated Deployment
Less error-prone than manual publishing
Easy to verify
Easy to track release history
2014
Getting Started with Automated Deployment
Often related to build automation/CI
solution
Highly dependent on your organization’s
server infrastructure and type of software
Start with a simple script and expand
2014
The 5 Pillars of Build Infrastructure
One-Click
Builds
Build
Automation
Continuous
Integration
Automated
Testing
Automated
Deployment
2014
A Call to Arms: Tips for Getting Started
Just do something
When advocating for change, focus on the
benefits
Don’t underestimate the value of having
dedicated build engineers
2014
Thank You!
2014
Contact Information
@natosha_bard
https://linkedin.com/in/natoshabard
+NaToshaBard
2014
Got Feedback?
Rate and Review the session using the
GHC Mobile AppTo download visit www.gracehopper.org