9. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
AND NOW
UNITY TECHNOLOGIES
HAS OVER 650
EMPLOYEES.
10. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
HUNDREDS OF
DEVELOPERS
IN OVER 15 LOCATIONS
ACROSS 4 CONTINENTS
ALL WORKING TOGETHER.
BUT HOW?
11. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
• Na’Tosha J. Bard
• Engineering Tools Lead at Unity
Technologies (5+ years)
• Copenhagen, Denmark
• Open-Source & Linux Enthusiast
• Married
• 2 cats
ABOUT THE
SPEAKER
12. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
PRINCIPLES OF
DEVELOPMENT AT UNITY
15. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Developer
Commits
Change
Developer
Pushes
Change
Build Server
Verifies Build
with a
Subset of
Build & Test
Targets
Domain
Experts Peer
Review
Code
Gatekeeper
Confirms
Build
Verification
and Code
Review
Gatekeeper
Merges
Change to
Mainline
Build Server
Verifies Build
with All Build
& Test
Targets
Build Server
Makes
Release
Build
QA
Performs
Acceptance
Test
Change
Goes to
External
Testers
Change is Released!
18. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
REVISION CONTROL
COLLABORATION
MULTIPLE LINES OF
DEVELOPMENT
19. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
MERCURIAL
• Switched from Subversion to Mercurial in 2010
• Branch-based development (named branches)
• Extensions: largefiles, eol
• Lots of custom Mercurial-based infrastructure
• Active member of open-source community
20. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
“TRUNK” REPOSITORY METRICS
• 37,323 normal files, 378 largefiles
• 13 GB of metadata
• 14 GB working copy (populated)
• 196,699 revisions (255,895 in development repo)
• 3831 named branches (7151 in development repo)
23. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
BUT REALLY, IT’S
IMPOSSIBLE TO EXPRESS
THE COMPLEXITY WITH A
SIMPLE PICTURE.
30. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
239 POSSIBLE BUILD &
TEST TARGETS
39 HIGH-LEVEL TARGETS
IN A BUILD VERIFICATION
97 NIGHTLY TEST RUNS
BUILD CHAINS MANY
LAYERS DEEP
31. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KATANA
• Internally-developed custom CI solution
• Fork of Buildbot
• https://github.com/Unity-Technologies/katana
• Active development
33. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KATANA’S BUILD FARM
• 236 (mostly virtual) machines
• Combination of local storage and NFS
• Moving to CEPH
• Currently all hosted in Copenhagen
• iOS farm with iOS team in Vilnius
• Configured with Salt
41. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
WHY USE A GATEKEEPER
WORKFLOW IN A
COMPANY FULL OF
SMART, CAPABLE
ENGINEERS?
BECAUSE HUMANS ARE
HUMAN.
45. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
CHANGE IS A CONSTANT.
OPPOSING FORCES ARE A
GOOD THING.
SOFTWARE
DEVELOPMENT IS ABOUT
SO MUCH MORE THAN
WRITING CODE.
46. COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Slides will be available at:
http://natoshabard.com/speaking
Find me at the Ask-the-Experts area, or on Twitter:
@natosha_bard