SlideShare a Scribd company logo
1 of 26
Download to read offline
How to Make Git Scale
Effectively
2© Perforce Software Inc. All Rights Reserved.
What We’re Talking About
1
Git Overview
2
Perforce Technology
3
Solution Mapping
3© Perforce Software Inc. All Rights Reserved.
• Popular
• Local operations can be fast
• Lots of publicly clone-able code
• Distributed
• Great for small projects that
are mostly code files
What’s So Great About Git?
4© Perforce Software Inc. All Rights Reserved.
• Large binaries are problematic
• Repo sprawl
• Mixed-team composition
• Build + CI
• LFS
• Dependencies
• Distance
Git at Large Scale
Perforce Technology
6© Perforce Software Inc. All Rights Reserved.
• New depot type (graph) for storing
tree-based git commits, objects, etc.
• Simple grant-based permission model for
single repos and collections
• Supports many “classic” style p4
commands: sync, edit, submit, merge, etc.
• Includes git-lfs support
• Git users connect to Helix Core Server
(P4D) via Git Connector
• Depot/repo/project management and code
review through Helix TeamHub
What Is Helix4Git?
7© Perforce Software Inc. All Rights Reserved.
• Supports SSH/HTTP(S) authentication
• Authorizations are all handled by central
Helix Core Server (P4D)
• Translates between user’s git pull/push
to depot
• Keeps local cache of native git repo
• Git developers don’t even know it’s there
What Is Git Connector?
8© Perforce Software Inc. All Rights Reserved.
• Git Connector and Helix4Git
have built-in mirroring
• Mirrored Helix4Git repos are
protected from normal commits
• Easily integrates with
Gerrit workflow
• Includes GitHub/GitLab
mirroring capabilities
Mirroring Repos and CI
9© Perforce Software Inc. All Rights Reserved.
• Directly supported in the
Helix4Git repo
• Same local git-lfs configuration
• Stored in archive files on the
Helix Core Server (P4D)
• Fully accessible by p4 clients
(sync and edit)
Git LFS
10© Perforce Software Inc. All Rights Reserved.
• Clients – a view into your
repo data
• Helix Core Server’s clients
are a lot like git shallow
clones
• Client views can span:
• Depots
• Repos
• Depot types (classic,
streams, and graph)
Graph Clients
11© Perforce Software Inc. All Rights Reserved.
Solution Mapping
13© Perforce Software Inc. All Rights Reserved.
CI: 40-80% Faster Builds; 18% Less Storage
All tests performed with shallow clone of Linux kernel on a 1 Gbps link, and four
parallel threads of p4 sync. For WAN test, a 200 ms round-trip latency was added
between client and server.
Sync Linux kernel head
revision over WAN
Sync Linux kernel head
revision over LAN
Resulting sync sizes
0
10
20
30
40
50
Git Clone P4 Sync
796
MB
650
MB
43 (s)
13 (s)
47 (s)
25 (s)
14© Perforce Software Inc. All Rights Reserved.
• Faster build sync times
with parallel sync enabled
• Dedicated build replicas to
reduce master overhead
• Can pull all project
components in single client
• Integration with GitLab,
GitHub, and Gerrit
Build + CI
15© Perforce Software Inc. All Rights Reserved.
• A single Helix4Git depot can
contain all repos for a single
project
• Centralized management of
repos and authorization
• Centralized management of
externally sourced project
components
• Helix TeamHub for
management of projects
Repo Sprawl
16© Perforce Software Inc. All Rights Reserved.
• Keep all assets for your mobile/web
app in a single project in TeamHub
Multi-Repo Example — Helix TeamHub
Open source app
framework code
My mobile app
source code
Graphics for my UI
Dependencies for
Android platform
Project docs
17© Perforce Software Inc. All Rights Reserved.
• Code developers just want to pull
and develop
• Use git local and pull/push to
Helix4Git repo
• Digital asset editors don’t need
to build
• They need to find assets and edit them,
but have it pull-able through LFS
• Build team pulls it all together
• Multiple repos, some external,
controllable inputs to the build system
Mixed-Team Composition
18© Perforce Software Inc. All Rights Reserved.
• Any significant project using git
for VCS is using multiple repos
• Client/server
• Frontend/backend
• Microservices
• Libraries and versions
• Philosophy of component
dev = be backwards/forwards
compatible
Project Dependencies
19© Perforce Software Inc. All Rights Reserved.
20© Perforce Software Inc. All Rights Reserved.
Multi-Repo Merge
21© Perforce Software Inc. All Rights Reserved.
• Helix TeamHub has the only
multi-repo code review in market
• Synchronize atomic commits
across multiple repos
• Keep frontend and backend
changes aligned
• Stop intermittent build failures
• Pre-flight changes to production
Multi-Repo Merge
22© Perforce Software Inc. All Rights Reserved.
• p4 sync is your
best friend
• Custom clients can map
and re-map how you want
• Allows commits that are
fully git-compatible
• Git developers keep using
the tool that makes them
efficient
Large Projects
23© Perforce Software Inc. All Rights Reserved.
• Co-locate Git Connectors
with your teams
• Set up pull-polling to reduce
developer hang time
• Multiple Git Connectors to
spread the load
• Build replica servers to
decrease master load
Geography
24© Perforce Software Inc. All Rights Reserved.
Recap
Problem Solution
Large binaries are problematic LFS/p4 sync
Repo sprawl Centralized commit server + mirroring
Mixed-team composition Git+ LFS + p4 sync
Build Parallel sync, replicas
CI Mirroring
LFS Out-of-the-box support + p4 sync
Dependencies Multi-repo code review + merge
Distance
Inherent Git Connector replication,
federated servers
Questions?
Thanks for attending!
Follow us for news and insights!
Visit www.perforce.com

More Related Content

More from Perforce

More from Perforce (20)

Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 
5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis 5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis
 
Code Quality Management Best Practices
Code Quality Management Best Practices Code Quality Management Best Practices
Code Quality Management Best Practices
 
Scale Kanban Beyond Team Level
Scale Kanban Beyond Team Level Scale Kanban Beyond Team Level
Scale Kanban Beyond Team Level
 
Revealed: The State of Automotive Software Development in 2019
Revealed: The State of Automotive Software Development in 2019Revealed: The State of Automotive Software Development in 2019
Revealed: The State of Automotive Software Development in 2019
 
Turn by Turn: A Practical Guide To Test Management
Turn by Turn: A Practical Guide To Test Management Turn by Turn: A Practical Guide To Test Management
Turn by Turn: A Practical Guide To Test Management
 
Go Global With Helix Core on AWS
Go Global With Helix Core on AWS Go Global With Helix Core on AWS
Go Global With Helix Core on AWS
 
What's New in Helix QAC 2019.1
What's New in Helix QAC 2019.1What's New in Helix QAC 2019.1
What's New in Helix QAC 2019.1
 
How To Handle Exploding Complexity in Product Development
How To Handle Exploding Complexity in Product DevelopmentHow To Handle Exploding Complexity in Product Development
How To Handle Exploding Complexity in Product Development
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 

How To Make Git Scale Effectively

  • 1. How to Make Git Scale Effectively
  • 2. 2© Perforce Software Inc. All Rights Reserved. What We’re Talking About 1 Git Overview 2 Perforce Technology 3 Solution Mapping
  • 3. 3© Perforce Software Inc. All Rights Reserved. • Popular • Local operations can be fast • Lots of publicly clone-able code • Distributed • Great for small projects that are mostly code files What’s So Great About Git?
  • 4. 4© Perforce Software Inc. All Rights Reserved. • Large binaries are problematic • Repo sprawl • Mixed-team composition • Build + CI • LFS • Dependencies • Distance Git at Large Scale
  • 6. 6© Perforce Software Inc. All Rights Reserved. • New depot type (graph) for storing tree-based git commits, objects, etc. • Simple grant-based permission model for single repos and collections • Supports many “classic” style p4 commands: sync, edit, submit, merge, etc. • Includes git-lfs support • Git users connect to Helix Core Server (P4D) via Git Connector • Depot/repo/project management and code review through Helix TeamHub What Is Helix4Git?
  • 7. 7© Perforce Software Inc. All Rights Reserved. • Supports SSH/HTTP(S) authentication • Authorizations are all handled by central Helix Core Server (P4D) • Translates between user’s git pull/push to depot • Keeps local cache of native git repo • Git developers don’t even know it’s there What Is Git Connector?
  • 8. 8© Perforce Software Inc. All Rights Reserved. • Git Connector and Helix4Git have built-in mirroring • Mirrored Helix4Git repos are protected from normal commits • Easily integrates with Gerrit workflow • Includes GitHub/GitLab mirroring capabilities Mirroring Repos and CI
  • 9. 9© Perforce Software Inc. All Rights Reserved. • Directly supported in the Helix4Git repo • Same local git-lfs configuration • Stored in archive files on the Helix Core Server (P4D) • Fully accessible by p4 clients (sync and edit) Git LFS
  • 10. 10© Perforce Software Inc. All Rights Reserved. • Clients – a view into your repo data • Helix Core Server’s clients are a lot like git shallow clones • Client views can span: • Depots • Repos • Depot types (classic, streams, and graph) Graph Clients
  • 11. 11© Perforce Software Inc. All Rights Reserved.
  • 13. 13© Perforce Software Inc. All Rights Reserved. CI: 40-80% Faster Builds; 18% Less Storage All tests performed with shallow clone of Linux kernel on a 1 Gbps link, and four parallel threads of p4 sync. For WAN test, a 200 ms round-trip latency was added between client and server. Sync Linux kernel head revision over WAN Sync Linux kernel head revision over LAN Resulting sync sizes 0 10 20 30 40 50 Git Clone P4 Sync 796 MB 650 MB 43 (s) 13 (s) 47 (s) 25 (s)
  • 14. 14© Perforce Software Inc. All Rights Reserved. • Faster build sync times with parallel sync enabled • Dedicated build replicas to reduce master overhead • Can pull all project components in single client • Integration with GitLab, GitHub, and Gerrit Build + CI
  • 15. 15© Perforce Software Inc. All Rights Reserved. • A single Helix4Git depot can contain all repos for a single project • Centralized management of repos and authorization • Centralized management of externally sourced project components • Helix TeamHub for management of projects Repo Sprawl
  • 16. 16© Perforce Software Inc. All Rights Reserved. • Keep all assets for your mobile/web app in a single project in TeamHub Multi-Repo Example — Helix TeamHub Open source app framework code My mobile app source code Graphics for my UI Dependencies for Android platform Project docs
  • 17. 17© Perforce Software Inc. All Rights Reserved. • Code developers just want to pull and develop • Use git local and pull/push to Helix4Git repo • Digital asset editors don’t need to build • They need to find assets and edit them, but have it pull-able through LFS • Build team pulls it all together • Multiple repos, some external, controllable inputs to the build system Mixed-Team Composition
  • 18. 18© Perforce Software Inc. All Rights Reserved. • Any significant project using git for VCS is using multiple repos • Client/server • Frontend/backend • Microservices • Libraries and versions • Philosophy of component dev = be backwards/forwards compatible Project Dependencies
  • 19. 19© Perforce Software Inc. All Rights Reserved.
  • 20. 20© Perforce Software Inc. All Rights Reserved. Multi-Repo Merge
  • 21. 21© Perforce Software Inc. All Rights Reserved. • Helix TeamHub has the only multi-repo code review in market • Synchronize atomic commits across multiple repos • Keep frontend and backend changes aligned • Stop intermittent build failures • Pre-flight changes to production Multi-Repo Merge
  • 22. 22© Perforce Software Inc. All Rights Reserved. • p4 sync is your best friend • Custom clients can map and re-map how you want • Allows commits that are fully git-compatible • Git developers keep using the tool that makes them efficient Large Projects
  • 23. 23© Perforce Software Inc. All Rights Reserved. • Co-locate Git Connectors with your teams • Set up pull-polling to reduce developer hang time • Multiple Git Connectors to spread the load • Build replica servers to decrease master load Geography
  • 24. 24© Perforce Software Inc. All Rights Reserved. Recap Problem Solution Large binaries are problematic LFS/p4 sync Repo sprawl Centralized commit server + mirroring Mixed-team composition Git+ LFS + p4 sync Build Parallel sync, replicas CI Mirroring LFS Out-of-the-box support + p4 sync Dependencies Multi-repo code review + merge Distance Inherent Git Connector replication, federated servers
  • 26. Follow us for news and insights! Visit www.perforce.com