SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Flying at the Speed of Git
Alex Holtz, Senior Engineer
Orbitz Worldwide Brands

18M Visitors / mo.

$11.5B Bookings

1,500 Employees

140+ Countries

16 Languages
Orbitz operates Worldwide

Hundreds of developers in offices globally
Chicago, London, India, Sydney, Argentina

3
The prospect of switching to Git doesn’t need to feel like this!

Your
VCS

Git

6
It’s a lot more like this!

1:

Migration:
Easier than you think

2:

All about choosing the right tools

3:

Fast
Orbitz’ Source Control History

50 dev teams

CVS
2000-2006

Commercial
VCS

Git
2012+

2006-2012

597
repositories
8
Why Switch?

Not using
Git...
...is
slowing
us down
9
Overcoming Inertia

Progressive teams
Were running Git on their own servers

Git?
Git Champions
Guided the process from start to finish

Internal buzz
For Git was high
10
Where Do You Start?

“Git in the Enterprise: Not Just Git”

Gitorious

11
Importing History to Git

Leverage git fast-import for transferring VCS history

Au
VCS

.2
g

Mar.

12
0
Oct.
2

009
Git

2013

an
J

.

1
01
2

http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git

12
How We Switched

Champions built new tools and were early adopters

Existing VCS

Release
Scripts

Git

Dependency Resolution
and
Artifact Repository

Jenkins

13
Tools in Orbitz’ Build Chain

Interface to
Source

Tools for
Publishing and
Releasing

Dependencies /
Artifacts

Commercial VCS

Proprietary CLI
Proprietary GUI

Custom Ruby
Scripts

Apache,
Custom Rails
application

Git

CLI, IDEs,
SourceTree,
many more!

Jenkins
(open source)

Artifactory
(open source)

14
Training

We held training, not on Git, but Git at Orbitz

Videos

15
Approaching the Migration on a Repo-by-repo Basis

30 minutes
= Good Luck!

+

...most of the time.
Tools

Docs
...we also helped as needed.

16
597 Repositories in a Proprietary System

Over 100 GB
Closed
180
Deprecated
88

Migrated
329

= 20 GB in Git

17
Timeline

• Sep 2011: Tool evaluation (Gitorious vs. GitHub)
• Mar 2012: Building migration tools and testing
• Jun 2012: Migrations are in full swing,
several teams migrate every week
• Aug 2012: Final repos are migrated and our old
system is now read-only

Just 11 months from start to finish!
18
Costs

A mere 2500 man hours
Decreased license costs will
pay for the entire migration in
less than a year.

19
Improvements Already Demonstrated

20% Faster Builds
Remote teams are saying:
“Amazing performance improvement...”
“...how did we pull this off so quickly?”

Self-service
20
Why We Love Git!

Distributed
Equal performance regardless
of location — internet optional

Cheaper, faster, less administration
Thanks to open source and self-service

No more custom integration!
Everybody ships new tools with native Git support
21
Things We Wish We had Done Better

NFS and Hard Links are not buddies!
dev fork

200 MB

~400 repositories
20 GB

dev fork

dev fork

dev fork

master

dev fork

dev fork

1200 MB

~3000 developer forks
80 GB
22
How Stash Approaches Storage for Forks

Stash uses “Git Alternates” to share object space between repos

Parent

Fork B

---

---

Fork A
---

---

---

---

---

---

---

---

---

---

---

---

---

---

---

23
Hindsight is 20/20

What was easy
Locking and moving repos one at a time

What was hard
The same process for mega repos and some of our
deployment tools were tightly coupled to our VCS

Migrating history
Was useful for some, but not as standard process
24
In the Last Year...

because of

Stash Hooks:
Automated SOX controls
Automated deployments

25
Rate this Talk
Flying at the Speed of Git
Text code below to 22333
or visit http://bit.ly/15BJhZR

MEH = 41
NO T BA D = 42
P R ET T Y GO O D = 43
A WES O ME = 44

To join this session, send text 136888 to 22333

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Thomson Reuters, TMS: Workflow in GitLab
Thomson Reuters, TMS: Workflow in GitLabThomson Reuters, TMS: Workflow in GitLab
Thomson Reuters, TMS: Workflow in GitLab
 
2015 09-02 - transaction log prototype
2015 09-02 - transaction log prototype2015 09-02 - transaction log prototype
2015 09-02 - transaction log prototype
 
Accelerate your business and reduce cost with OpenStack
Accelerate your business and reduce cost with OpenStackAccelerate your business and reduce cost with OpenStack
Accelerate your business and reduce cost with OpenStack
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development Trends
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Henrique Rodrigues (NotOnTheHighStreet.com) - Building a Future-Proof Infrast...
Henrique Rodrigues (NotOnTheHighStreet.com) - Building a Future-Proof Infrast...Henrique Rodrigues (NotOnTheHighStreet.com) - Building a Future-Proof Infrast...
Henrique Rodrigues (NotOnTheHighStreet.com) - Building a Future-Proof Infrast...
 
Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...
Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...
Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...
 
Keptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystemKeptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystem
 
[Europe merge world tour] Perforce Git Fusion
[Europe   merge world tour] Perforce Git Fusion[Europe   merge world tour] Perforce Git Fusion
[Europe merge world tour] Perforce Git Fusion
 
Tracking Huge Files with Git LFS
Tracking Huge Files with Git LFSTracking Huge Files with Git LFS
Tracking Huge Files with Git LFS
 
Delivering Rich Content Applications at Scale with Nuxeo & MongoDB Atlas
Delivering Rich Content Applications at Scale with Nuxeo & MongoDB AtlasDelivering Rich Content Applications at Scale with Nuxeo & MongoDB Atlas
Delivering Rich Content Applications at Scale with Nuxeo & MongoDB Atlas
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
容器革命的「利」與「必」
容器革命的「利」與「必」容器革命的「利」與「必」
容器革命的「利」與「必」
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
 
Nuxeo Live Connect & Connector to Salesforce
Nuxeo Live Connect & Connector to SalesforceNuxeo Live Connect & Connector to Salesforce
Nuxeo Live Connect & Connector to Salesforce
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Cloud Native Java in Kubernetes
Cloud Native Java in KubernetesCloud Native Java in Kubernetes
Cloud Native Java in Kubernetes
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKE
 

Similar a Flying at the Speed of Git

Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 

Similar a Flying at the Speed of Git (20)

Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets Serverless
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 
Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration
 
TechWiseTV Workshop: Cisco Developer Program
TechWiseTV Workshop: Cisco Developer ProgramTechWiseTV Workshop: Cisco Developer Program
TechWiseTV Workshop: Cisco Developer Program
 
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
 
Building a dev pipeline using GitHub Actions, Node.js, and AWS ECS Fargate
Building a dev pipeline using GitHub Actions, Node.js, and AWS ECS FargateBuilding a dev pipeline using GitHub Actions, Node.js, and AWS ECS Fargate
Building a dev pipeline using GitHub Actions, Node.js, and AWS ECS Fargate
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ... Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - Overview
 
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to git
 
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloudInterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
 
Growing up fast: Kubernetes and Real-Time Analytic Applications
Growing up fast: Kubernetes and Real-Time Analytic ApplicationsGrowing up fast: Kubernetes and Real-Time Analytic Applications
Growing up fast: Kubernetes and Real-Time Analytic Applications
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Introducing TiDB Operator
Introducing TiDB OperatorIntroducing TiDB Operator
Introducing TiDB Operator
 

Más de colleenfry

The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
colleenfry
 
The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
colleenfry
 
The 7 habits of high successful atlassian marketplace developers by dave meyer
The 7 habits of high successful atlassian marketplace developers   by dave meyerThe 7 habits of high successful atlassian marketplace developers   by dave meyer
The 7 habits of high successful atlassian marketplace developers by dave meyer
colleenfry
 
AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch
colleenfry
 
AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack
colleenfry
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
colleenfry
 
AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote
colleenfry
 
AtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patternsAtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patterns
colleenfry
 
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
colleenfry
 
AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints
colleenfry
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
colleenfry
 
AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union
colleenfry
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UX
colleenfry
 
Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union
colleenfry
 
Atlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-onsAtlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-ons
colleenfry
 
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
colleenfry
 
True Git: The Great Migration
True Git: The Great MigrationTrue Git: The Great Migration
True Git: The Great Migration
colleenfry
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Group
colleenfry
 
W4 0245 agility_v1
W4 0245 agility_v1W4 0245 agility_v1
W4 0245 agility_v1
colleenfry
 

Más de colleenfry (20)

The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
 
True Git
True Git True Git
True Git
 
The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
 
The 7 habits of high successful atlassian marketplace developers by dave meyer
The 7 habits of high successful atlassian marketplace developers   by dave meyerThe 7 habits of high successful atlassian marketplace developers   by dave meyer
The 7 habits of high successful atlassian marketplace developers by dave meyer
 
AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch
 
AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
 
AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote
 
AtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patternsAtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patterns
 
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
 
AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
 
AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UX
 
Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union
 
Atlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-onsAtlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-ons
 
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
 
True Git: The Great Migration
True Git: The Great MigrationTrue Git: The Great Migration
True Git: The Great Migration
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Group
 
W4 0245 agility_v1
W4 0245 agility_v1W4 0245 agility_v1
W4 0245 agility_v1
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Flying at the Speed of Git

  • 1. Flying at the Speed of Git Alex Holtz, Senior Engineer
  • 2. Orbitz Worldwide Brands 18M Visitors / mo. $11.5B Bookings 1,500 Employees 140+ Countries 16 Languages
  • 3. Orbitz operates Worldwide Hundreds of developers in offices globally Chicago, London, India, Sydney, Argentina 3
  • 4.
  • 5.
  • 6. The prospect of switching to Git doesn’t need to feel like this! Your VCS Git 6
  • 7. It’s a lot more like this! 1: Migration: Easier than you think 2: All about choosing the right tools 3: Fast
  • 8. Orbitz’ Source Control History 50 dev teams CVS 2000-2006 Commercial VCS Git 2012+ 2006-2012 597 repositories 8
  • 10. Overcoming Inertia Progressive teams Were running Git on their own servers Git? Git Champions Guided the process from start to finish Internal buzz For Git was high 10
  • 11. Where Do You Start? “Git in the Enterprise: Not Just Git” Gitorious 11
  • 12. Importing History to Git Leverage git fast-import for transferring VCS history Au VCS .2 g Mar. 12 0 Oct. 2 009 Git 2013 an J . 1 01 2 http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git 12
  • 13. How We Switched Champions built new tools and were early adopters Existing VCS Release Scripts Git Dependency Resolution and Artifact Repository Jenkins 13
  • 14. Tools in Orbitz’ Build Chain Interface to Source Tools for Publishing and Releasing Dependencies / Artifacts Commercial VCS Proprietary CLI Proprietary GUI Custom Ruby Scripts Apache, Custom Rails application Git CLI, IDEs, SourceTree, many more! Jenkins (open source) Artifactory (open source) 14
  • 15. Training We held training, not on Git, but Git at Orbitz Videos 15
  • 16. Approaching the Migration on a Repo-by-repo Basis 30 minutes = Good Luck! + ...most of the time. Tools Docs ...we also helped as needed. 16
  • 17. 597 Repositories in a Proprietary System Over 100 GB Closed 180 Deprecated 88 Migrated 329 = 20 GB in Git 17
  • 18. Timeline • Sep 2011: Tool evaluation (Gitorious vs. GitHub) • Mar 2012: Building migration tools and testing • Jun 2012: Migrations are in full swing, several teams migrate every week • Aug 2012: Final repos are migrated and our old system is now read-only Just 11 months from start to finish! 18
  • 19. Costs A mere 2500 man hours Decreased license costs will pay for the entire migration in less than a year. 19
  • 20. Improvements Already Demonstrated 20% Faster Builds Remote teams are saying: “Amazing performance improvement...” “...how did we pull this off so quickly?” Self-service 20
  • 21. Why We Love Git! Distributed Equal performance regardless of location — internet optional Cheaper, faster, less administration Thanks to open source and self-service No more custom integration! Everybody ships new tools with native Git support 21
  • 22. Things We Wish We had Done Better NFS and Hard Links are not buddies! dev fork 200 MB ~400 repositories 20 GB dev fork dev fork dev fork master dev fork dev fork 1200 MB ~3000 developer forks 80 GB 22
  • 23. How Stash Approaches Storage for Forks Stash uses “Git Alternates” to share object space between repos Parent Fork B --- --- Fork A --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 23
  • 24. Hindsight is 20/20 What was easy Locking and moving repos one at a time What was hard The same process for mega repos and some of our deployment tools were tightly coupled to our VCS Migrating history Was useful for some, but not as standard process 24
  • 25. In the Last Year... because of Stash Hooks: Automated SOX controls Automated deployments 25
  • 26. Rate this Talk Flying at the Speed of Git Text code below to 22333 or visit http://bit.ly/15BJhZR MEH = 41 NO T BA D = 42 P R ET T Y GO O D = 43 A WES O ME = 44 To join this session, send text 136888 to 22333