2014 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 2014 #GHC
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
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 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 BuildsOne-Click 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 +NaToshaBard
2014 Got Feedback? Rate and Review the session using the GHC Mobile App To download visit