SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Mohamed TAIEB
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP WorldIdaf_1er
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for BeginnersYüce Çelikel
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps worldMoataz Nabil
 
#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360Derek Chan
 
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 BrunsdonMatt Brunsdon
 
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 SharePointNCCOMMS
 
Continuous Integration at T3CON08
Continuous Integration at T3CON08Continuous Integration at T3CON08
Continuous Integration at T3CON08Sebastian Kurfürst
 
Hudson Continuous Integration for PHP
Hudson Continuous Integration for PHPHudson Continuous Integration for PHP
Hudson Continuous Integration for PHPJeremy Coates
 
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 JUGJakub Pyda
 
Visual studio professional 2015 overview
Visual studio professional 2015 overviewVisual studio professional 2015 overview
Visual studio professional 2015 overviewLee Stott
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
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 DeploymentChristopher Read
 
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 DeliveryVirendra Bhalothia
 
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 BeAbraham Marin-Perez
 
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...CloudBees
 
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...Edureka!
 

Tendances (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...
 

En vedette

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 tryOsei Fortune
 
Quickly programming
Quickly programmingQuickly programming
Quickly programmingNEWLUG
 
Linux as a gaming platform - Errata
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - ErrataLeszek Godlewski
 
Linux games
Linux gamesLinux games
Linux gamesNEWLUG
 
Marketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt ZilliMarketo Secret Sauce - Matt Zilli
Marketo Secret Sauce - Matt ZilliMarketo
 
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 FUNevolutionaryit
 
Gaming on linux (archived)
Gaming on linux (archived)Gaming on linux (archived)
Gaming on linux (archived)Bud Siddhisena
 
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 asideLeszek Godlewski
 
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 LinuxNa'Tosha Bard
 
Tribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesTribal Waters Embracing Consumer Tribes
Tribal Waters Embracing Consumer TribesMalcolm Jussawalla
 
Advanced Linux Game Programming
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game ProgrammingLeszek Godlewski
 
Introdução ao Ubuntu Desktop
Introdução ao Ubuntu DesktopIntrodução ao Ubuntu Desktop
Introdução ao Ubuntu DesktopRobson Vaamonde
 
Contemporary Hardware Platform Trends
Contemporary Hardware Platform TrendsContemporary Hardware Platform Trends
Contemporary Hardware Platform TrendsAlbrecht Jones
 
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 DesktopRobson Vaamonde
 
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 2Robson Vaamonde
 
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 GamingMongoDB
 
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...Na'Tosha Bard
 
Gaming presentation nagelhout
Gaming presentation nagelhoutGaming presentation nagelhout
Gaming presentation nagelhoutEd Nagelhout
 

En vedette (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
 

Similaire à Build Infrastructure: What It Is and Why You Need It

Continuous integration - CI
Continuous integration - CIContinuous integration - CI
Continuous integration - CINhan Nguyen
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?Rob Jacoby
 
Continuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingContinuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingMartin Smith
 
Continuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingContinuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingInfostretch
 
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 DockerSwaminathan Vetri
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationJames Fisk
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
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 applicationsSunil Dalal
 
Software engineering
Software engineeringSoftware engineering
Software engineeringbartlowe
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
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 DevelopmentWinWire Technologies Inc
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOpsDaniel Oh
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcityMd Jawed
 
#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?Vincent Biret
 
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 interventionajayrajaganeshkayala
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Steve Xu
 

Similaire à 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
 

Dernier

SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Dernier (20)

SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

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