SlideShare uma empresa Scribd logo
1 de 28
Enterprise Git - the hard bits
Matthew Barr, Architect
©2016 AKAMAI | FASTER FORWARD
TM
Overview
●Introduction
●Git hosting options
●o18n
●Safety & Best Practices
©2016 AKAMAI | FASTER FORWARD
TM
Admissions
Lawyer
Not
Compliance
Not
Internal Audit
Not
PCI Assessor (QSA)
Not
the Mama.
Not
© Disney/Henson
Sorry, you don’t get to see the cute picture from the Dinosaurs TV show.
©2016 AKAMAI | FASTER FORWARD
TM
Me:
SysAdmin / DevOps Engineer for 20 years
● Lehman Bros, MarkitServ
● Community Connect, Snap Interactive
● Nokia
Focus @ Akamai: Developer Productivity
● Provide tools for our engineers
● SCM, Build, CI & Test systems
● Current project: Horizontally scalable build farm w/ Docker agents
So you want to be
a hero
store your code in Git
©2016 AKAMAI | FASTER FORWARD
TM
GitHub or Bitbucket
●Hosted
●Great features
●Low overhead
●Great for small teams
●Even medium size
©2016 AKAMAI | FASTER FORWARD
TM
Self hosted options
●GitLab
●Gitolite
●cgit
©2016 AKAMAI | FASTER FORWARD
TM
Enterprise
●Github Enterprise
●Bitbucket Server (Atlassian) (née Stash)
●Gitlab Enterprise
●Perforce GitSwarm
©2016 AKAMAI | FASTER FORWARD
TM
Git @ Akamai
● Currently: 6000+ repositories, 115+ Projects/Organizations
○ Not primary code repository (yet)
• Relaunched 1 year ago
• Stash Data Center Edition
• 2 sites
● 2 App Servers
● 2 DB nodes
● Netapp filer & load balancer
©2016 AKAMAI | FASTER FORWARD
TM
o16n (Operationalization)*
* Gordon Marx
©2016 AKAMAI | FASTER FORWARD
TM
HA, DR, GeoDiversity & Backups
● Varies by product
● Github Enterprise
○ Clustering
○ Active / Passive Node
○ Point in time snapshots
● Bitbucket Server
○ Self Service Backups, DB replication, Snapshots
○ Improvement in Bitbucket Server (Stash)
■ Smart Mirrors
■ Zero Downtime Backups
©2016 AKAMAI | FASTER FORWARD
TM
Authentication for the enterprise
● Mandate: No passwords
● 3 types of access
○ WebUI
○ Git (SSH, HTTPS)
○ API
● SAML for WebUI
● SSH key sync script from LDAP
● X.509 Client auth for API
©2016 AKAMAI | FASTER FORWARD
TM
Safety & Best Practices
©2016 AKAMAI | FASTER FORWARD
TM
PCI, SOX, etc.
Boils down to:
●Prevent unauthorized changes
●Review change!
©2016 AKAMAI | FASTER FORWARD
TM
Code Review - Pull Requests
●Sign offs - +1, approvers
●Prevent merges without PR’s
●Merge commits
○ Audit points, in git log
©2016 AKAMAI | FASTER FORWARD
TM
Code Integrity
● Branching workflow
○ Combination Gitflow + Feature Branch (Github)
■ No Develop branch, but flexibility for QA
■ Can be CD
● Protected branches
○ Limited users can merge
● No force push / rewriting history
● Unapprove PR’s when modified
○ Really? Provided by optional plugin?
©2016 AKAMAI | FASTER FORWARD
TM
Q: Who wrote that code?
● Pusher != committer
● Committer
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
● GPG?
● Log all commits/pusher?
©2016 AKAMAI | FASTER FORWARD
TM
Access Control
● 1000’s of repos = 1000’s of ACLs
● Organizations / Projects
● LDAP groups?
● Access Controls
○ Who manages, approves access?
○ Audits access, quarterly?
● Separation of Concerns
○ Ops can’t modify code
○ Prove it!
©2016 AKAMAI | FASTER FORWARD
TM
Automation
• API’s!
• Configure
• External Front Ends
● User Mgmt
● Webhooks
● Audit settings
©2016 AKAMAI | FASTER FORWARD
TM
References
• Github Enterprise Documentation
• Bitbucket Server Documentation
©2016 AKAMAI | FASTER FORWARD
TM
Matthew Barr
• https://www.akamai.com
• mbarr@akamai.com
• @matthewbarr - Twitter & Github:
• mbarr@mbarr.net
Enterprise git -  the hard bits

Mais conteúdo relacionado

Mais procurados

Diffy gets enterprise grade
Diffy gets enterprise gradeDiffy gets enterprise grade
Diffy gets enterprise gradeEryk Szymanski
 
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...Spark Solutions
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchivePaul Calvano
 
Letting your CMS lose its head
Letting your CMS lose its headLetting your CMS lose its head
Letting your CMS lose its headMatt Nield
 
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...Paul Calvano
 
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...Spark Solutions
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app devMartin de Keijzer
 
High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016Martin de Keijzer
 
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016Spark Solutions
 
Building cross platform app with Xamarin Forms
Building cross platform app with Xamarin FormsBuilding cross platform app with Xamarin Forms
Building cross platform app with Xamarin FormsAurelian Maga
 
Cross-platform JavaScript
Cross-platform JavaScriptCross-platform JavaScript
Cross-platform JavaScriptHristo Chakarov
 
Rapid development with angular
Rapid development with angularRapid development with angular
Rapid development with angularHongbiao Chen
 
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015AboutYouGmbH
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
Continuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupContinuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupRaphaël Brugier
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionOutSystems
 
Building the AO Tech Blog
Building the AO Tech BlogBuilding the AO Tech Blog
Building the AO Tech BlogSarahNorris47
 
Building the AO tech blog
Building the AO tech blogBuilding the AO tech blog
Building the AO tech blogAO Tech
 

Mais procurados (20)

Diffy gets enterprise grade
Diffy gets enterprise gradeDiffy gets enterprise grade
Diffy gets enterprise grade
 
Intro to node.js
Intro to node.jsIntro to node.js
Intro to node.js
 
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP Archive
 
Letting your CMS lose its head
Letting your CMS lose its headLetting your CMS lose its head
Letting your CMS lose its head
 
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...
NYC WebPerf Meetup Feb 2020 - Measuring the Adoption of Web Performance Techn...
 
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...
Michael Tucker, GoDaddy_How GoDaddy used Spree to build their Online Store pr...
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
 
High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
 
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
 
OSGi Web Development in Action
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in Action
 
Building cross platform app with Xamarin Forms
Building cross platform app with Xamarin FormsBuilding cross platform app with Xamarin Forms
Building cross platform app with Xamarin Forms
 
Cross-platform JavaScript
Cross-platform JavaScriptCross-platform JavaScript
Cross-platform JavaScript
 
Rapid development with angular
Rapid development with angularRapid development with angular
Rapid development with angular
 
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Continuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupContinuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetup
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
Building the AO Tech Blog
Building the AO Tech BlogBuilding the AO Tech Blog
Building the AO Tech Blog
 
Building the AO tech blog
Building the AO tech blogBuilding the AO tech blog
Building the AO tech blog
 

Destaque

Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんGithub Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんTakafumi ONAKA
 
Exploring the GitHub Service Universe
Exploring the GitHub Service UniverseExploring the GitHub Service Universe
Exploring the GitHub Service UniverseBjörn Kimminich
 
Cluj.DevOps Meetup - GitHub Enterprise
Cluj.DevOps Meetup - GitHub EnterpriseCluj.DevOps Meetup - GitHub Enterprise
Cluj.DevOps Meetup - GitHub EnterpriseLiviu Damian
 
Dev with github enterprise
Dev with github enterpriseDev with github enterprise
Dev with github enterpriseHiroshi Wada
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersPurav Gandhi
 
Nisha Resume (1)
Nisha Resume (1)Nisha Resume (1)
Nisha Resume (1)Nisha Dalal
 

Destaque (6)

Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんGithub Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
 
Exploring the GitHub Service Universe
Exploring the GitHub Service UniverseExploring the GitHub Service Universe
Exploring the GitHub Service Universe
 
Cluj.DevOps Meetup - GitHub Enterprise
Cluj.DevOps Meetup - GitHub EnterpriseCluj.DevOps Meetup - GitHub Enterprise
Cluj.DevOps Meetup - GitHub Enterprise
 
Dev with github enterprise
Dev with github enterpriseDev with github enterprise
Dev with github enterprise
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository Managers
 
Nisha Resume (1)
Nisha Resume (1)Nisha Resume (1)
Nisha Resume (1)
 

Semelhante a Enterprise git - the hard bits

DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015Desmond Tam
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
 
Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09Paul Calvano
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update worksIgalia
 
UI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery NetworkUI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery NetworkGokul Anand E, PMP®
 
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 - OverviewForgeRock
 
Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Acquia
 
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...Amazon Web Services
 
Getting Started with User and API Management Features
Getting Started with User and API Management FeaturesGetting Started with User and API Management Features
Getting Started with User and API Management FeaturesAkamai Developers & Admins
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Paul Calvano
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorDan Taylor
 
Танки в облаках
Танки в облакахТанки в облаках
Танки в облакахOpenStackRussia
 
Edge 2016 measuring what matters
Edge 2016 measuring what mattersEdge 2016 measuring what matters
Edge 2016 measuring what mattersakamaidevrel
 
Measuring what matters
Measuring what mattersMeasuring what matters
Measuring what mattersCliff Crocker
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSUri Savelchev
 
Protecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesProtecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesDoKC
 
Finding the Jelly in the JAMstack
Finding the Jelly in the JAMstackFinding the Jelly in the JAMstack
Finding the Jelly in the JAMstackTessa Mero
 

Semelhante a Enterprise git - the hard bits (20)

Akamai as Code
Akamai as CodeAkamai as Code
Akamai as Code
 
DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Optimizing your API to Perform at Scale
Optimizing your API to Perform at ScaleOptimizing your API to Perform at Scale
Optimizing your API to Perform at Scale
 
Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update works
 
UI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery NetworkUI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery Network
 
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
 
Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)
 
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
 
Getting Started with User and API Management Features
Getting Started with User and API Management FeaturesGetting Started with User and API Management Features
Getting Started with User and API Management Features
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
 
A Tester's Life
A Tester's LifeA Tester's Life
A Tester's Life
 
Танки в облаках
Танки в облакахТанки в облаках
Танки в облаках
 
Edge 2016 measuring what matters
Edge 2016 measuring what mattersEdge 2016 measuring what matters
Edge 2016 measuring what matters
 
Measuring what matters
Measuring what mattersMeasuring what matters
Measuring what matters
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWS
 
Protecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesProtecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on Kubernetes
 
Finding the Jelly in the JAMstack
Finding the Jelly in the JAMstackFinding the Jelly in the JAMstack
Finding the Jelly in the JAMstack
 

Último

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Enterprise git - the hard bits

  • 1. Enterprise Git - the hard bits Matthew Barr, Architect
  • 2. ©2016 AKAMAI | FASTER FORWARD TM Overview ●Introduction ●Git hosting options ●o18n ●Safety & Best Practices
  • 3. ©2016 AKAMAI | FASTER FORWARD TM Admissions
  • 8. the Mama. Not © Disney/Henson Sorry, you don’t get to see the cute picture from the Dinosaurs TV show.
  • 9.
  • 10. ©2016 AKAMAI | FASTER FORWARD TM Me: SysAdmin / DevOps Engineer for 20 years ● Lehman Bros, MarkitServ ● Community Connect, Snap Interactive ● Nokia Focus @ Akamai: Developer Productivity ● Provide tools for our engineers ● SCM, Build, CI & Test systems ● Current project: Horizontally scalable build farm w/ Docker agents
  • 11. So you want to be a hero store your code in Git
  • 12. ©2016 AKAMAI | FASTER FORWARD TM GitHub or Bitbucket ●Hosted ●Great features ●Low overhead ●Great for small teams ●Even medium size
  • 13. ©2016 AKAMAI | FASTER FORWARD TM Self hosted options ●GitLab ●Gitolite ●cgit
  • 14. ©2016 AKAMAI | FASTER FORWARD TM Enterprise ●Github Enterprise ●Bitbucket Server (Atlassian) (née Stash) ●Gitlab Enterprise ●Perforce GitSwarm
  • 15. ©2016 AKAMAI | FASTER FORWARD TM Git @ Akamai ● Currently: 6000+ repositories, 115+ Projects/Organizations ○ Not primary code repository (yet) • Relaunched 1 year ago • Stash Data Center Edition • 2 sites ● 2 App Servers ● 2 DB nodes ● Netapp filer & load balancer
  • 16. ©2016 AKAMAI | FASTER FORWARD TM o16n (Operationalization)* * Gordon Marx
  • 17. ©2016 AKAMAI | FASTER FORWARD TM HA, DR, GeoDiversity & Backups ● Varies by product ● Github Enterprise ○ Clustering ○ Active / Passive Node ○ Point in time snapshots ● Bitbucket Server ○ Self Service Backups, DB replication, Snapshots ○ Improvement in Bitbucket Server (Stash) ■ Smart Mirrors ■ Zero Downtime Backups
  • 18. ©2016 AKAMAI | FASTER FORWARD TM Authentication for the enterprise ● Mandate: No passwords ● 3 types of access ○ WebUI ○ Git (SSH, HTTPS) ○ API ● SAML for WebUI ● SSH key sync script from LDAP ● X.509 Client auth for API
  • 19. ©2016 AKAMAI | FASTER FORWARD TM Safety & Best Practices
  • 20. ©2016 AKAMAI | FASTER FORWARD TM PCI, SOX, etc. Boils down to: ●Prevent unauthorized changes ●Review change!
  • 21. ©2016 AKAMAI | FASTER FORWARD TM Code Review - Pull Requests ●Sign offs - +1, approvers ●Prevent merges without PR’s ●Merge commits ○ Audit points, in git log
  • 22. ©2016 AKAMAI | FASTER FORWARD TM Code Integrity ● Branching workflow ○ Combination Gitflow + Feature Branch (Github) ■ No Develop branch, but flexibility for QA ■ Can be CD ● Protected branches ○ Limited users can merge ● No force push / rewriting history ● Unapprove PR’s when modified ○ Really? Provided by optional plugin?
  • 23. ©2016 AKAMAI | FASTER FORWARD TM Q: Who wrote that code? ● Pusher != committer ● Committer $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com ● GPG? ● Log all commits/pusher?
  • 24. ©2016 AKAMAI | FASTER FORWARD TM Access Control ● 1000’s of repos = 1000’s of ACLs ● Organizations / Projects ● LDAP groups? ● Access Controls ○ Who manages, approves access? ○ Audits access, quarterly? ● Separation of Concerns ○ Ops can’t modify code ○ Prove it!
  • 25. ©2016 AKAMAI | FASTER FORWARD TM Automation • API’s! • Configure • External Front Ends ● User Mgmt ● Webhooks ● Audit settings
  • 26. ©2016 AKAMAI | FASTER FORWARD TM References • Github Enterprise Documentation • Bitbucket Server Documentation
  • 27. ©2016 AKAMAI | FASTER FORWARD TM Matthew Barr • https://www.akamai.com • mbarr@akamai.com • @matthewbarr - Twitter & Github: • mbarr@mbarr.net

Notas do Editor

  1. I only have so much time, so I’ll focus on what I know best: Stash / Bitbucket Server & Github Enterprise for comparison. One key thing is that Bitbucker offers source code access & plugins, which can make a huge difference. It’s also much more do it yourself, but also much less expensive.
  2. Should not require downtime for backups. HA & Gloabl access is helpful when you’ve got a global company. Build systems across the country, Dev offices India, Europe, Israel, Boston, CA.
  3. Focus on Bitbucket Server / Stash, since I know it best. Github offers SAML & CAS, plus access tokens.
  4. Still Not an Auditor
  5. Users can’t be admins on the repositories, or they can change settings