SlideShare a Scribd company logo
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
BUILD
INFRASTRUCTURE
What It Is, Why You Need It,
and How to Use Python to
Fuel It
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
WHAT IS BUILD
ENGINEERING?
BUILD ENGINEERING
IS THE GLUE THAT
HOLDS THE
SOFTWARE
DEVELOPMENT
PROCESS
TOGETHER.
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
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
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
WHY DO I CARE?
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
• Na’Tosha J. Bard
• Copenhagen, Denmark
• Engineering Tools Lead at Unity
Technologies (5+ years)
• Open-Source & Linux Enthusiast
• Married
• 2 cats
ABOUT THE
SPEAKER
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
FOR YOUR REFERENCE
Slides will be available here:
http://natoshabard.com/speaking
Keep in touch:
Twitter: @natosha_bard
E-mail: natosha@gmail.com
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
WHAT IS UNITY?
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
WHAT IS UNITY?
• Game Engine & Content Creation Toolkit
• Editor for Mac OS X & Windows
• Experimental build for Linux
• Runtime ported to 22 platforms
• Mostly written in C++
• Gameplay scripts written in C#
• Scripting engine for gameplay code built on
top of Mono
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
BUILD
ENGINEERING AT
UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
2010
• Unstable SVN Server
• All developers commit directly to trunk
• Unstable CI Server
• 6 VisualStudio and Xcode projects 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
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
2015
• 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 various platforms
• Build cloud of over 200 virtual and physical
machines
• Web-based publishing portal for deploying
builds
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
OUR RELEASE
CYCLES WENT
FROM AS LONG AS
18 MONTHS
TO EVERY 3
MONTHS
WHILE OUR
DEVELOPMENT
TEAM GREW 400%.
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
FOUNDATION OF
BUILD
INFRASTRUCTURE
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
THE 5 PILLARS OF
BUILD
INFRASTRUCTURE
• ONE-CLICK BUILDS
• BUILD AUTOMATION
• CONTINUOUS
INTEGRATION
• AUTOMATED TESTING
• AUTOMATED
DEPLOYMENT
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
WHAT ON EARTH
DOES THIS ALL HAVE
TO DO WITH
PYTHON?
PYTHON IS AN
AMAZING LANGUAGE
FOR WRITING
DEVELOPMENT
TOOLS.
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
ONE-CLICK BUILDS:
BUILDING YOUR
SOFTWARE WITH
JUST ONE CLICK
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
BENEFITS OF ONE-CLICK BUILDS
• KISS principle
• Build early, Build often
• Groundwork for other software
development principles
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
GETTING STARTED WITH ONE-
CLICK BUILDS
• Depends on your application
• Possible Solutions: SCons, Waf
• Cohesive buildsystem
• Keep platform-dependent issues in mind!
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
WHAT UNITY DOES
• Currently using Jamplus and Perl
• Didn’t find a good Python-based tool that
met all of our requirements :-(
• Migrating to Gradle
• http://gradle.org/migrating-a-large-c-
codebase-to-gradle/
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
BUILD
AUTOMATION:

A BUILD SERVER
TO RUN YOUR ONE-
CLICK BUILDS
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
BENEFITS OF BUILD AUTOMATION
• Verification
• Parallelization
• Groundwork for other software
development principles
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
GETTING STARTED WITH BUILD
AUTOMATION
• Depends on feature set you need
• Possible Solution: Buildbot
• Give careful thought to buildserver/
buildsystem configuration split
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
HOW UNITY DOES IT
• Custom solution built on top of Buildbot -
“Katana”
• https://github.com/Unity-Technologies/katana/
• http://mariangemarcano.blogspot.dk/
• Katana’s Build Cloud configured with Salt
• http://saltstack.com/
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
CONTINUOUS
INTEGRATION:

CONTINUOUSLY
RUN THOSE
AUTOMATED
BUILDS
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
BENEFITS OF CONTINUOUS
INTEGRATION
• Increased Developer Productivity
• Helps avoid “Integration Hell”
• Automatically identifies exact failure point
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
GETTING STARTED WITH
CONTINUOUS INTEGRATION
• Generally, the same solutions as for Build
Automation apply here
• Note: Sometimes “Frequent Integration” is
good enough
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
HOW UNITY DOES IT
• We don’t…yet
• Frequent integration
• Nightly builds on mainlines
• On-demand builds on other branches
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
AUTOMATED
TESTING:

RUN TESTS ON
THOSE
CONTINUOUSLY-
RUNNING BUILDS
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
BENEFITS OF AUTOMATED
TESTING
• Provides protection against regressions
• Saves human resources
• Keeps test suites from bit-rotting
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
GETTING STARTED WITH
AUTOMATED TESTING
• Find a test framework for your technology
• PyUnit (unittest), nose
• Sometimes creating your own frameworks
is an answer (i.e, High-Level Integration
Tests)
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
HOW UNITY DOES IT
• No Python :-(
• Custom test frameworks in C#
• Heavy use of NUnit
• Custom test runner in Perl
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
AUTOMATED
DEPLOYMENT:

EASILY DEPLOY
THOSE TESTED
BUILDS
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
BENEFITS OF AUTOMATED
DEPLOYMENT
• Less error-prone than manual publishing
• Easy to verify
• Easy to track release history
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
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
• Consider integrating directly with your
already-existing build server solution
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
HOW UNITY DOES IT
• Web-based publishing portal - “Saihai”
• Promoting builds to internal QA and
publishing to external testers.
• Publishing final releases to CDN
• Provides API regarding published releases
for other internal services
COPYRIGHT 2014 @ UNITY
TECHNOLOGIES
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
The 5 pillars of Build Infrastructure.
ONE-CLICK
BUILDS
BUILD
AUTOMATION
CONTINUOUS
INTEGRATION
AUTOMATED
TESTING
AUTOMATED
DEPLOYMENT
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
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 on your team
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
COME JOIN US!
• Release Managers
• Web Developers (Full-Stack & Front-End
Only)
• Low-level Build Engineers
• High-level Build Engineers
• Version Control Experts
• Packaging & Distribution Engineers
http://unity3d.com/jobs
COPYRIGHT 2015 @ UNITY
TECHNOLOGIES
les
vels
pt.
pt.
pt.
pt.
pt.
AB
ely,
Thank You!
@natosha_bard

More Related Content

What's hot

Manila MuleSoft Meetup - May 2018
Manila MuleSoft Meetup - May 2018Manila MuleSoft Meetup - May 2018
Manila MuleSoft Meetup - May 2018
Ryan Anthony Andal
 
High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
Martin de Keijzer
 
Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++
Gilang Mentari Hamidy
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
Luca Milanesio
 
The fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaThe fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu Vunvulea
ITCamp
 
Syncing with-upstream
Syncing with-upstreamSyncing with-upstream
Syncing with-upstream
Darragh Bailey
 
How to Grow and Measure Your API Program - I ♥ APIs 2015
How to Grow and Measure Your API Program - I ♥ APIs 2015How to Grow and Measure Your API Program - I ♥ APIs 2015
How to Grow and Measure Your API Program - I ♥ APIs 2015
Andrew Mager
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Luca Milanesio
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
Jirayut Nimsaeng
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
Amir Zmora
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes Distribuées
Alexis Monville
 
Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2
José Haro Peralta
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines Kergosien
ITCamp
 
Natron lgm2014
Natron lgm2014Natron lgm2014
Natron lgm2014
Alexandre Gauthier
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
Christopher Co
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
Martin de Keijzer
 
Api360 Summit The Automated Monolith
Api360 Summit  The Automated MonolithApi360 Summit  The Automated Monolith
Api360 Summit The Automated Monolith
Haufe-Lexware GmbH & Co KG
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
 
Continuous integration for Ruby on Rails
Continuous integration for Ruby on RailsContinuous integration for Ruby on Rails
Continuous integration for Ruby on Rails
David Paluy
 
API Management with wicked.haufe.io
API Management with wicked.haufe.ioAPI Management with wicked.haufe.io
API Management with wicked.haufe.io
Haufe-Lexware GmbH & Co KG
 

What's hot (20)

Manila MuleSoft Meetup - May 2018
Manila MuleSoft Meetup - May 2018Manila MuleSoft Meetup - May 2018
Manila MuleSoft Meetup - May 2018
 
High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
 
Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
 
The fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaThe fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu Vunvulea
 
Syncing with-upstream
Syncing with-upstreamSyncing with-upstream
Syncing with-upstream
 
How to Grow and Measure Your API Program - I ♥ APIs 2015
How to Grow and Measure Your API Program - I ♥ APIs 2015How to Grow and Measure Your API Program - I ♥ APIs 2015
How to Grow and Measure Your API Program - I ♥ APIs 2015
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle Time
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes Distribuées
 
Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines Kergosien
 
Natron lgm2014
Natron lgm2014Natron lgm2014
Natron lgm2014
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
 
Api360 Summit The Automated Monolith
Api360 Summit  The Automated MonolithApi360 Summit  The Automated Monolith
Api360 Summit The Automated Monolith
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
 
Continuous integration for Ruby on Rails
Continuous integration for Ruby on RailsContinuous integration for Ruby on Rails
Continuous integration for Ruby on Rails
 
API Management with wicked.haufe.io
API Management with wicked.haufe.ioAPI Management with wicked.haufe.io
API Management with wicked.haufe.io
 

Viewers also liked

Porting a Proprietary Game Engine to Linux
Porting a Proprietary Game Engine to LinuxPorting a Proprietary Game Engine to Linux
Porting a Proprietary Game Engine to Linux
Na'Tosha Bard
 
Ubuntu
UbuntuUbuntu
Ubuntu
home
 
SharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common MistakesSharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common Mistakes
NicolePullin
 
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet
 
Pitch advices - medialab session nantes 2013
Pitch advices - medialab session nantes 2013Pitch advices - medialab session nantes 2013
Pitch advices - medialab session nantes 2013
Quentin Adam
 
Dotscale2013 : How to scale ?
Dotscale2013 : How to scale ?Dotscale2013 : How to scale ?
Dotscale2013 : How to scale ?
Quentin Adam
 
Understand Immutable infrastructure - at Build Stuff Kiev 2016
Understand Immutable infrastructure  - at Build Stuff Kiev 2016Understand Immutable infrastructure  - at Build Stuff Kiev 2016
Understand Immutable infrastructure - at Build Stuff Kiev 2016
Quentin Adam
 
desktop environments
desktop environments desktop environments
desktop environments
MaryamAlGhaith
 
The fedora projekt
The fedora projektThe fedora projekt
The fedora projekt
Elijah Hanson
 
Gaming on linux is it worth a try
Gaming on linux is it worth a tryGaming on linux is it worth a try
Gaming on linux is it worth a try
Osei Fortune
 
Tech Resume
Tech ResumeTech Resume
Tech Resume
Michael Aguado
 
Open Source Video Games - Truly Free -- Truly FUN
Open Source Video Games  - Truly Free -- Truly FUNOpen Source Video Games  - Truly Free -- Truly FUN
Open Source Video Games - Truly Free -- Truly FUN
evolutionaryit
 
Gaming on linux (archived)
Gaming on linux (archived)Gaming on linux (archived)
Gaming on linux (archived)
Bud Siddhisena
 
Quickly programming
Quickly programmingQuickly programming
Quickly programming
NEWLUG
 
Build Infrastructure: What It Is and Why You Need It
Build Infrastructure: What It Is and Why You Need ItBuild Infrastructure: What It Is and Why You Need It
Build Infrastructure: What It Is and Why You Need It
Na'Tosha Bard
 
Linux games
Linux gamesLinux games
Linux games
NEWLUG
 
Linux as a gaming platform - Errata
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - Errata
Leszek Godlewski
 
Linux as a gaming platform, ideology aside
Linux as a gaming platform, ideology asideLinux as a gaming platform, ideology aside
Linux as a gaming platform, ideology aside
Leszek Godlewski
 
Marketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt ZilliMarketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt Zilli
Marketo
 
Tribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesTribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer Tribes
Malcolm Jussawalla
 

Viewers also liked (20)

Porting a Proprietary Game Engine to Linux
Porting a Proprietary Game Engine to LinuxPorting a Proprietary Game Engine to Linux
Porting a Proprietary Game Engine to Linux
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
SharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common MistakesSharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common Mistakes
 
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
 
Pitch advices - medialab session nantes 2013
Pitch advices - medialab session nantes 2013Pitch advices - medialab session nantes 2013
Pitch advices - medialab session nantes 2013
 
Dotscale2013 : How to scale ?
Dotscale2013 : How to scale ?Dotscale2013 : How to scale ?
Dotscale2013 : How to scale ?
 
Understand Immutable infrastructure - at Build Stuff Kiev 2016
Understand Immutable infrastructure  - at Build Stuff Kiev 2016Understand Immutable infrastructure  - at Build Stuff Kiev 2016
Understand Immutable infrastructure - at Build Stuff Kiev 2016
 
desktop environments
desktop environments desktop environments
desktop environments
 
The fedora projekt
The fedora projektThe fedora projekt
The fedora projekt
 
Gaming on linux is it worth a try
Gaming on linux is it worth a tryGaming on linux is it worth a try
Gaming on linux is it worth a try
 
Tech Resume
Tech ResumeTech Resume
Tech Resume
 
Open Source Video Games - Truly Free -- Truly FUN
Open Source Video Games  - Truly Free -- Truly FUNOpen Source Video Games  - Truly Free -- Truly FUN
Open Source Video Games - Truly Free -- Truly FUN
 
Gaming on linux (archived)
Gaming on linux (archived)Gaming on linux (archived)
Gaming on linux (archived)
 
Quickly programming
Quickly programmingQuickly programming
Quickly programming
 
Build Infrastructure: What It Is and Why You Need It
Build Infrastructure: What It Is and Why You Need ItBuild Infrastructure: What It Is and Why You Need It
Build Infrastructure: What It Is and Why You Need It
 
Linux games
Linux gamesLinux games
Linux games
 
Linux as a gaming platform - Errata
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - Errata
 
Linux as a gaming platform, ideology aside
Linux as a gaming platform, ideology asideLinux as a gaming platform, ideology aside
Linux as a gaming platform, ideology aside
 
Marketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt ZilliMarketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt Zilli
 
Tribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesTribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer Tribes
 

Similar to Build Infrastructure: What It Is, Why You Need It, and How to Use Python to Fuel it

Which One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development EnvironmentWhich One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development Environment
Bitbar
 
Plataforma DevOps en OpenShift
Plataforma DevOps en OpenShiftPlataforma DevOps en OpenShift
Plataforma DevOps en OpenShift
Juan Carlos García Peláez
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture
Apigee | Google Cloud
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
DotNetCampus
 
Stop Caring About Kubernetes
Stop Caring About KubernetesStop Caring About Kubernetes
Stop Caring About Kubernetes
David Lewis
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
CollabNet
 
HP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pillHP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pill
BeMyApp
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 17-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
Platform9
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration
Damien Garros
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
Patryk Bandurski
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
Marcin Grzejszczak
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
Vincent Biret
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
Cisco DevNet
 
Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"
Emerasoft, solutions to collaborate
 
Open Source: How to empower your technical teams in Digital Transformation pr...
Open Source: How to empower your technical teams in Digital Transformation pr...Open Source: How to empower your technical teams in Digital Transformation pr...
Open Source: How to empower your technical teams in Digital Transformation pr...
Kangaroot
 
Optimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelineOptimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps Pipeline
Perfecto Mobile
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
Platform9
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges
 

Similar to Build Infrastructure: What It Is, Why You Need It, and How to Use Python to Fuel it (20)

Which One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development EnvironmentWhich One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development Environment
 
Plataforma DevOps en OpenShift
Plataforma DevOps en OpenShiftPlataforma DevOps en OpenShift
Plataforma DevOps en OpenShift
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
Stop Caring About Kubernetes
Stop Caring About KubernetesStop Caring About Kubernetes
Stop Caring About Kubernetes
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
 
HP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pillHP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pill
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 17-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"
 
Open Source: How to empower your technical teams in Digital Transformation pr...
Open Source: How to empower your technical teams in Digital Transformation pr...Open Source: How to empower your technical teams in Digital Transformation pr...
Open Source: How to empower your technical teams in Digital Transformation pr...
 
Optimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelineOptimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps Pipeline
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 

Recently uploaded

ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
KrishnaveniKrishnara1
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
sachin chaurasia
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 

Recently uploaded (20)

ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 

Build Infrastructure: What It Is, Why You Need It, and How to Use Python to Fuel it

  • 1. COPYRIGHT 2015 @ UNITY TECHNOLOGIES BUILD INFRASTRUCTURE What It Is, Why You Need It, and How to Use Python to Fuel It
  • 2. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES WHAT IS BUILD ENGINEERING? BUILD ENGINEERING IS THE GLUE THAT HOLDS THE SOFTWARE DEVELOPMENT PROCESS TOGETHER.
  • 3. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, 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
  • 4. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES WHY DO I CARE?
  • 5. COPYRIGHT 2015 @ UNITY TECHNOLOGIES • Na’Tosha J. Bard • Copenhagen, Denmark • Engineering Tools Lead at Unity Technologies (5+ years) • Open-Source & Linux Enthusiast • Married • 2 cats ABOUT THE SPEAKER
  • 6. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, FOR YOUR REFERENCE Slides will be available here: http://natoshabard.com/speaking Keep in touch: Twitter: @natosha_bard E-mail: natosha@gmail.com
  • 7. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES WHAT IS UNITY?
  • 8. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely,
  • 9. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely,
  • 10. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely,
  • 11. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely,
  • 12. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely,
  • 13. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, WHAT IS UNITY? • Game Engine & Content Creation Toolkit • Editor for Mac OS X & Windows • Experimental build for Linux • Runtime ported to 22 platforms • Mostly written in C++ • Gameplay scripts written in C# • Scripting engine for gameplay code built on top of Mono
  • 14. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES BUILD ENGINEERING AT UNITY TECHNOLOGIES
  • 15. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, 2010 • Unstable SVN Server • All developers commit directly to trunk • Unstable CI Server • 6 VisualStudio and Xcode projects 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
  • 16. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, 2015 • 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 various platforms • Build cloud of over 200 virtual and physical machines • Web-based publishing portal for deploying builds
  • 17. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES OUR RELEASE CYCLES WENT FROM AS LONG AS 18 MONTHS TO EVERY 3 MONTHS WHILE OUR DEVELOPMENT TEAM GREW 400%.
  • 18. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES FOUNDATION OF BUILD INFRASTRUCTURE
  • 19. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES THE 5 PILLARS OF BUILD INFRASTRUCTURE • ONE-CLICK BUILDS • BUILD AUTOMATION • CONTINUOUS INTEGRATION • AUTOMATED TESTING • AUTOMATED DEPLOYMENT
  • 20. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES WHAT ON EARTH DOES THIS ALL HAVE TO DO WITH PYTHON? PYTHON IS AN AMAZING LANGUAGE FOR WRITING DEVELOPMENT TOOLS.
  • 21. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES ONE-CLICK BUILDS: BUILDING YOUR SOFTWARE WITH JUST ONE CLICK
  • 22. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, BENEFITS OF ONE-CLICK BUILDS • KISS principle • Build early, Build often • Groundwork for other software development principles
  • 23. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, GETTING STARTED WITH ONE- CLICK BUILDS • Depends on your application • Possible Solutions: SCons, Waf • Cohesive buildsystem • Keep platform-dependent issues in mind!
  • 24. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, WHAT UNITY DOES • Currently using Jamplus and Perl • Didn’t find a good Python-based tool that met all of our requirements :-( • Migrating to Gradle • http://gradle.org/migrating-a-large-c- codebase-to-gradle/
  • 25. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES BUILD AUTOMATION:
 A BUILD SERVER TO RUN YOUR ONE- CLICK BUILDS
  • 26. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, BENEFITS OF BUILD AUTOMATION • Verification • Parallelization • Groundwork for other software development principles
  • 27. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, GETTING STARTED WITH BUILD AUTOMATION • Depends on feature set you need • Possible Solution: Buildbot • Give careful thought to buildserver/ buildsystem configuration split
  • 28. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, HOW UNITY DOES IT • Custom solution built on top of Buildbot - “Katana” • https://github.com/Unity-Technologies/katana/ • http://mariangemarcano.blogspot.dk/ • Katana’s Build Cloud configured with Salt • http://saltstack.com/
  • 29. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES CONTINUOUS INTEGRATION:
 CONTINUOUSLY RUN THOSE AUTOMATED BUILDS
  • 30. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, BENEFITS OF CONTINUOUS INTEGRATION • Increased Developer Productivity • Helps avoid “Integration Hell” • Automatically identifies exact failure point
  • 31. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, GETTING STARTED WITH CONTINUOUS INTEGRATION • Generally, the same solutions as for Build Automation apply here • Note: Sometimes “Frequent Integration” is good enough
  • 32. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, HOW UNITY DOES IT • We don’t…yet • Frequent integration • Nightly builds on mainlines • On-demand builds on other branches
  • 33. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES AUTOMATED TESTING:
 RUN TESTS ON THOSE CONTINUOUSLY- RUNNING BUILDS
  • 34. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, BENEFITS OF AUTOMATED TESTING • Provides protection against regressions • Saves human resources • Keeps test suites from bit-rotting
  • 35. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, GETTING STARTED WITH AUTOMATED TESTING • Find a test framework for your technology • PyUnit (unittest), nose • Sometimes creating your own frameworks is an answer (i.e, High-Level Integration Tests)
  • 36. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, HOW UNITY DOES IT • No Python :-( • Custom test frameworks in C# • Heavy use of NUnit • Custom test runner in Perl
  • 37. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES AUTOMATED DEPLOYMENT:
 EASILY DEPLOY THOSE TESTED BUILDS
  • 38. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, BENEFITS OF AUTOMATED DEPLOYMENT • Less error-prone than manual publishing • Easy to verify • Easy to track release history
  • 39. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, 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 • Consider integrating directly with your already-existing build server solution
  • 40. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, HOW UNITY DOES IT • Web-based publishing portal - “Saihai” • Promoting builds to internal QA and publishing to external testers. • Publishing final releases to CDN • Provides API regarding published releases for other internal services
  • 41. COPYRIGHT 2014 @ UNITY TECHNOLOGIES COPYRIGHT 2015 @ UNITY TECHNOLOGIES The 5 pillars of Build Infrastructure. ONE-CLICK BUILDS BUILD AUTOMATION CONTINUOUS INTEGRATION AUTOMATED TESTING AUTOMATED DEPLOYMENT
  • 42. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, 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 on your team
  • 43. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, COME JOIN US! • Release Managers • Web Developers (Full-Stack & Front-End Only) • Low-level Build Engineers • High-level Build Engineers • Version Control Experts • Packaging & Distribution Engineers http://unity3d.com/jobs
  • 44. COPYRIGHT 2015 @ UNITY TECHNOLOGIES les vels pt. pt. pt. pt. pt. AB ely, Thank You! @natosha_bard