SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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!
 

Was ist angesagt? (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...
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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 TestingInfostretch
 
Continuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingContinuous Integration for Mobile App Testing
Continuous Integration for Mobile App TestingMartin Smith
 
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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Kürzlich hochgeladen (20)

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

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