GHC 14 Build Infrastructure Engineering What It Is
#GHC 14 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 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 Visual. Studio 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 oneclick builds. 2014
Benefits of Build Automation § Verification § Parallelization § Groundwork for other software development principles 2014
Getting Started with Build Automation § Team. City, 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, Py. Unit (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 2014 Automated Testing Automated Deployment
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 +Na. Tosha. Bard 2014
Got Feedback? Rate and Review the session using the GHC Mobile App To download visit www. gracehopper. org 2014
- Slides: 33