SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
2014 
Build & Infrastructure 
Engineering 
What 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 App 
To download visit www.gracehopper.org

Mais conteúdo relacionado

Mais procurados

Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
Idaf_1er
 

Mais procurados (20)

Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
 
DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for Beginners
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360
 
Introducing CI/CD to Engineering Teams - By: Matt Brunsdon
Introducing CI/CD to Engineering Teams - By: Matt BrunsdonIntroducing CI/CD to Engineering Teams - By: Matt Brunsdon
Introducing CI/CD to Engineering Teams - By: Matt Brunsdon
 
Continuous integration
Continuous integration Continuous integration
Continuous integration
 
SPCA2013 - Taking advantage of Visual Studio to develop Apps for SharePoint
SPCA2013 - Taking advantage of Visual Studio to develop Apps for SharePointSPCA2013 - Taking advantage of Visual Studio to develop Apps for SharePoint
SPCA2013 - Taking advantage of Visual Studio to develop Apps for SharePoint
 
Continuous Integration at T3CON08
Continuous Integration at T3CON08Continuous Integration at T3CON08
Continuous Integration at T3CON08
 
Hudson Continuous Integration for PHP
Hudson Continuous Integration for PHPHudson Continuous Integration for PHP
Hudson Continuous Integration for PHP
 
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUGContinuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
 
Visual studio professional 2015 overview
Visual studio professional 2015 overviewVisual studio professional 2015 overview
Visual studio professional 2015 overview
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
 

Destaque

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
 
Linux games
Linux gamesLinux games
Linux games
NEWLUG
 
Tribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesTribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer Tribes
Malcolm Jussawalla
 
Contemporary Hardware Platform Trends
Contemporary Hardware Platform TrendsContemporary Hardware Platform Trends
Contemporary Hardware Platform Trends
Albrecht Jones
 

Destaque (20)

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
 
Quickly programming
Quickly programmingQuickly programming
Quickly programming
 
Linux as a gaming platform - Errata
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - Errata
 
Linux games
Linux gamesLinux games
Linux games
 
The fedora projekt
The fedora projektThe fedora projekt
The fedora projekt
 
Marketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt ZilliMarketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt Zilli
 
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)
 
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
 
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
 
Tribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesTribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer Tribes
 
Advanced Linux Game Programming
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game Programming
 
Introdução ao Ubuntu Desktop
Introdução ao Ubuntu DesktopIntrodução ao Ubuntu Desktop
Introdução ao Ubuntu Desktop
 
Contemporary Hardware Platform Trends
Contemporary Hardware Platform TrendsContemporary Hardware Platform Trends
Contemporary Hardware Platform Trends
 
Apresentação do Curso de Ubuntu Desktop
Apresentação do Curso de Ubuntu DesktopApresentação do Curso de Ubuntu Desktop
Apresentação do Curso de Ubuntu Desktop
 
Introdução ao SAMBA-4 Level 2
Introdução ao SAMBA-4 Level 2Introdução ao SAMBA-4 Level 2
Introdução ao SAMBA-4 Level 2
 
Realtime User-Generated Cross-Platform Multiplayer Gaming
Realtime User-Generated Cross-Platform Multiplayer GamingRealtime User-Generated Cross-Platform Multiplayer Gaming
Realtime User-Generated Cross-Platform Multiplayer Gaming
 
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
 
Gaming presentation nagelhout
Gaming presentation nagelhoutGaming presentation nagelhout
Gaming presentation nagelhout
 

Semelhante a Build Infrastructure: What It Is and Why You Need It

Continuous integration
Continuous integrationContinuous integration
Continuous integration
James Fisk
 
Software engineering
Software engineeringSoftware engineering
Software engineering
bartlowe
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012
Steve Xu
 

Semelhante a Build Infrastructure: What It Is and Why You Need It (20)

Continuous integration - CI
Continuous integration - CIContinuous integration - CI
Continuous integration - CI
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?
 
Continuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingContinuous Integration for Mobile App Testing
Continuous Integration for Mobile App Testing
 
Continuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingContinuous Integration for Mobile App Testing
Continuous Integration for Mobile App Testing
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Unicom DevCon - CI/CD for Asp.net core apps using Docker
Unicom DevCon - CI/CD for Asp.net core apps using DockerUnicom DevCon - CI/CD for Asp.net core apps using Docker
Unicom DevCon - CI/CD for Asp.net core apps using Docker
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
UI Integrations Test
UI Integrations TestUI Integrations Test
UI Integrations Test
 
Leveraging Microsoft Azure for Next Gen App Development
Leveraging Microsoft Azure for Next Gen App DevelopmentLeveraging Microsoft Azure for Next Gen App Development
Leveraging Microsoft Azure for Next Gen App Development
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012
 

Último

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Último (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

Build Infrastructure: What It Is and Why You Need It

  • 1. 2014 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 2014 #GHC14 2014
  • 2. 2014 What is Build Engineering?
  • 3. 2014 Build Engineering is the glue that holds the software development process together.
  • 4. 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
  • 5. 2014 Why do I care?
  • 6. 2014 About the Speaker  Na’Tosha J. Bard  Copenhagen, Denmark  Lead Build & Infrastructure Developer, Unity Technologies  Open-Source and Linux Enthusiast
  • 7. 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
  • 8. 2014 Build Engineering at Unity Technologies
  • 9. 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
  • 10. 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
  • 11. 2014 Release Schedule Over Time Every 2 to 6 weeks Weekly
  • 12. 2014 Foundation of Build Infrastructure
  • 13. 2014 The 5 Pillars of Build Infrastructure  One-Click Builds  Build Automation  Continuous Integration  Automated Testing  Automated Deployment
  • 14. 2014 One-Click Builds Building your software with just one click.
  • 15. 2014 Benefits of One-Click Builds  KISS principle  Build early, build often  Groundwork for other software development principles
  • 16. 2014 Getting Started with One-Click Builds  Depends on your application  Cohesive buildsystem  Keep platform-dependent issues in mind!
  • 17. 2014 Build Automation A build server to run your one-click builds.
  • 18. 2014 Benefits of Build Automation  Verification  Parallelization  Groundwork for other software development principles
  • 19. 2014 Getting Started with Build Automation  TeamCity, Bamboo, Team Foundation Server  Jenkins, Buildbot  Give careful thought to buildserver/buildsystem configuration split
  • 20. 2014 Continuous Integration Continuously run your automated builds.
  • 21. 2014 Benefits of Continuous Integration  Increased developer productivity  Helps avoid “Integration Hell”  Automatically identifies exact failure point
  • 22. 2014 Getting Started with Continuous Integration  Generally, the same solutions as for Build Automation apply here  Note: Sometimes “Frequent Integration” is good enough
  • 23. 2014 Automated Testing Execute tests on your continuously-running builds.
  • 24. 2014 Automated Testing  Provides protection against regressions  Saves human resources  Keeps test suites from bit-rotting
  • 25. 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)
  • 26. 2014 Automated Deployment Easily deploy your tested builds.
  • 27. 2014 Benefits of Automated Deployment  Less error-prone than manual publishing  Easy to verify  Easy to track release history
  • 28. 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
  • 29. 2014 The 5 Pillars of Build Infrastructure One-Click Builds Build Automation Continuous Integration Automated Testing Automated Deployment
  • 30. 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
  • 32. 2014 Contact Information @natosha_bard https://linkedin.com/in/natoshabard +NaToshaBard
  • 33. 2014 Got Feedback? Rate and Review the session using the GHC Mobile App To download visit www.gracehopper.org