SlideShare a Scribd company logo
0Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 0
Migrating to Gerrit 2.15
A success story by GerritHub.io
Luca Milanesio
Gerrit Code Review Maintainer
GerritForge
1Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 1
About GerritForge
Founded in the
UK
HQ in London Committed to
OpenSource
2Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 2
About GerritHub.io
• 5 years of activity
• 37k Gerrit projects hosted
• 16k monthly active users
• 300+ organizations
• 99.9% availability
3Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 3
Multi-master / dual-site Gerrit setup
OVH - Canada Hetzner - Germany
4Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 4
Challenges when upgrading to 2.15
1.Zero-downtime
2.Accounts migration
3.NoteDb migration
4.Replication to GitHub
5Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 5
Challenge #1 zero downtime
OVH – Canada (v2.14) Hetzner – Germany
(v2.14 è v2.15 online reindex)
Incoming traffic
6Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 6
Challenge #1 zero downtime
OVH – Canada (v2.14)
+ readonly plugin
Hetzner – Germany
(reinit v2.15)
Incoming traffic
replication
7Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 7
Challenge #1 zero downtime
OVH – Canada (v2.14)
+ readonly plugin
Hetzner – Germany
(delta-reindex v2.15)
Incoming traffic
replication
8Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 8
Challenge #1 zero downtime
OVH – Canada
(v2.14 è v2.15)
Hetzner – Germany
(v2.15 on ReviewDb)
Incoming traffic
9Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 9
Challenge #1 zero downtime
OVH – Canada
(v2.15 delta reindex)
Hetzner – Germany
(v2.15 on ReviewDb)
Incoming traffic
replication
10Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 10
Challenge #2 accounts migration
Accounts table (DB)
All-Users (repo)
accounts index (lucene)
v2.14
All-Users (repo)
accounts index (lucene)
v2.15
• All-Users getting fragmented quickly è open files explosion
• accounts index misalignments in v2.14 (unnoticed)
11Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 11
Challenge #3 NoteDb migration
OVH – Canada
(v2.15 / ReviewDb)
Hetzner – Germany
(v2.15 ReviewDb è NoteDb)
Incoming traffic
replication
12Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 12
Challenge #3 NoteDb migration
OVH – Canada
(v2.15 restart with NoteDb cfg)
Hetzner – Germany
(v2.15 NoteDb)
Incoming traffic
replication
13Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 13
Challenge #3 NoteDb migration
OVH – Canada
(v2.15 NoteDb)
Hetzner – Germany
(v2.15 NoteDb + readonly)
Incoming traffic
replication
14Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 14
Challenge #3 NoteDb migration
OVH – Canada
(v2.15 NoteDb)
Hetzner – Germany
(v2.15 NoteDb)
Incoming traffic
replication
15Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 15
Challenge #4 replication to GitHub
NoteDb = refs (w/ ReviewDb) + Num (changes)
Git push to GitHub = HTTP Status 500 (boom !)
16Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 16
Poll: did you have similar problems?
Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
17Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 17
Wants to know more?
GerritForge.com/contact

More Related Content

What's hot

Jenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelines
Luca Milanesio
 
Diffy gets enterprise grade
Diffy gets enterprise gradeDiffy gets enterprise grade
Diffy gets enterprise grade
Eryk Szymanski
 
Putting data science to work
Putting data science to workPutting data science to work
Putting data science to work
Alex Breeze
 
SW360 Update Tooling Telco
SW360 Update Tooling TelcoSW360 Update Tooling Telco
SW360 Update Tooling Telco
Shane Coughlan
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
Raphaël PINSON
 
From Copycat Codelets to an AI Market Internet Protocol
From Copycat Codelets to an AI Market Internet ProtocolFrom Copycat Codelets to an AI Market Internet Protocol
From Copycat Codelets to an AI Market Internet Protocol
Stefan Ianta
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?
Janel Heilbrunn
 
GITHUB Integration
GITHUB IntegrationGITHUB Integration
GITHUB Integration
David Ibia
 
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesioGeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
Mauricio (Salaboy) Salatino
 
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
Shane Coughlan
 
Python and big data : a good match?
Python and big data : a good match?Python and big data : a good match?
Python and big data : a good match?
PyDataParis
 
Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015
Arnaud_Betremieux
 
Reactive Programming Meetup - NodeJs on K8s
Reactive Programming Meetup - NodeJs on K8sReactive Programming Meetup - NodeJs on K8s
Reactive Programming Meetup - NodeJs on K8s
Roland Tritsch
 
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projectsSFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
South Tyrol Free Software Conference
 
Containers and Kubernetes without limits
Containers and Kubernetes without limitsContainers and Kubernetes without limits
Containers and Kubernetes without limits
Antje Barth
 
How to interconnect digital agendas?
How to interconnect digital agendas?How to interconnect digital agendas?
How to interconnect digital agendas?
Yacine Bouallouche
 
Atmosphere 2016 - Catalin Jora - Microservices continuous delivery with MANT...
Atmosphere 2016 - Catalin Jora -  Microservices continuous delivery with MANT...Atmosphere 2016 - Catalin Jora -  Microservices continuous delivery with MANT...
Atmosphere 2016 - Catalin Jora - Microservices continuous delivery with MANT...
PROIDEA
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
CloudOps2005
 
Zaif cash
Zaif cashZaif cash
Last Month in PHP - May 2018
Last Month in PHP - May 2018Last Month in PHP - May 2018
Last Month in PHP - May 2018
Eric Poe
 

What's hot (20)

Jenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelines
 
Diffy gets enterprise grade
Diffy gets enterprise gradeDiffy gets enterprise grade
Diffy gets enterprise grade
 
Putting data science to work
Putting data science to workPutting data science to work
Putting data science to work
 
SW360 Update Tooling Telco
SW360 Update Tooling TelcoSW360 Update Tooling Telco
SW360 Update Tooling Telco
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
From Copycat Codelets to an AI Market Internet Protocol
From Copycat Codelets to an AI Market Internet ProtocolFrom Copycat Codelets to an AI Market Internet Protocol
From Copycat Codelets to an AI Market Internet Protocol
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?
 
GITHUB Integration
GITHUB IntegrationGITHUB Integration
GITHUB Integration
 
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesioGeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
 
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
 
Python and big data : a good match?
Python and big data : a good match?Python and big data : a good match?
Python and big data : a good match?
 
Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015
 
Reactive Programming Meetup - NodeJs on K8s
Reactive Programming Meetup - NodeJs on K8sReactive Programming Meetup - NodeJs on K8s
Reactive Programming Meetup - NodeJs on K8s
 
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projectsSFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
SFScon19 - Andreas Shimokawa - Codeberg a free home for free projects
 
Containers and Kubernetes without limits
Containers and Kubernetes without limitsContainers and Kubernetes without limits
Containers and Kubernetes without limits
 
How to interconnect digital agendas?
How to interconnect digital agendas?How to interconnect digital agendas?
How to interconnect digital agendas?
 
Atmosphere 2016 - Catalin Jora - Microservices continuous delivery with MANT...
Atmosphere 2016 - Catalin Jora -  Microservices continuous delivery with MANT...Atmosphere 2016 - Catalin Jora -  Microservices continuous delivery with MANT...
Atmosphere 2016 - Catalin Jora - Microservices continuous delivery with MANT...
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Zaif cash
Zaif cashZaif cash
Zaif cash
 
Last Month in PHP - May 2018
Last Month in PHP - May 2018Last Month in PHP - May 2018
Last Month in PHP - May 2018
 

Similar to GerritHub a true Gerrit migration story to v2.15

Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
Luca Milanesio
 
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
Datacratic
 
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
LINE Corporation
 
RT4 - The whole sordid story
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid story
Jesse Vincent
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcamp
Lothar Schubert
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
Gerger
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
Gerger
 
20 cool things python
20 cool things python20 cool things python
20 cool things python
Pippi Labradoodle
 
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
Intland Software GmbH
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
Pravat Sutar
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnContinuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
Andreas Grabner
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeCollabNet
 
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles Sonigo
 
Google Cloud Platform Solutions for DevOps Engineers
Google Cloud Platform Solutions  for DevOps EngineersGoogle Cloud Platform Solutions  for DevOps Engineers
Google Cloud Platform Solutions for DevOps Engineers
Márton Kodok
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
Pedro Moreira da Silva
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015
cornelia davis
 
Status Update of the no-code platform SeaTable at CS3 2022
Status Update of the no-code platform SeaTable at CS3 2022Status Update of the no-code platform SeaTable at CS3 2022
Status Update of the no-code platform SeaTable at CS3 2022
Christoph Dyllick-Brenzinger
 
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
LavaConConference
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
CollabNet
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
Nebulaworks
 

Similar to GerritHub a true Gerrit migration story to v2.15 (20)

Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
 
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
 
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
 
RT4 - The whole sordid story
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid story
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcamp
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
 
20 cool things python
20 cool things python20 cool things python
20 cool things python
 
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
Roche | The Design History File in codeBeamer ALM: Electronic Records, Signat...
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnContinuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
 
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
 
Google Cloud Platform Solutions for DevOps Engineers
Google Cloud Platform Solutions  for DevOps EngineersGoogle Cloud Platform Solutions  for DevOps Engineers
Google Cloud Platform Solutions for DevOps Engineers
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015
 
Status Update of the no-code platform SeaTable at CS3 2022
Status Update of the no-code platform SeaTable at CS3 2022Status Update of the no-code platform SeaTable at CS3 2022
Status Update of the no-code platform SeaTable at CS3 2022
 
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 

More from Luca Milanesio

ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3
Luca Milanesio
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
Luca Milanesio
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 Keynote
Luca Milanesio
 
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
Luca Milanesio
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Luca Milanesio
 
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code ReviewJenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Luca Milanesio
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code Review
Luca Milanesio
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
Luca Milanesio
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
Luca Milanesio
 
Speed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData AnalyticsSpeed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData Analytics
Luca Milanesio
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Luca Milanesio
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
Luca Milanesio
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
Luca Milanesio
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
Luca Milanesio
 
Is TDD dead or alive?
Is TDD dead or alive?Is TDD dead or alive?
Is TDD dead or alive?
Luca Milanesio
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
Luca Milanesio
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
Luca Milanesio
 
Jenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on MobileJenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on Mobile
Luca Milanesio
 
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForgeMobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
Luca Milanesio
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code Review
Luca Milanesio
 

More from Luca Milanesio (20)

ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 Keynote
 
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
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle Time
 
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code ReviewJenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code Review
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
Speed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData AnalyticsSpeed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData Analytics
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
 
Is TDD dead or alive?
Is TDD dead or alive?Is TDD dead or alive?
Is TDD dead or alive?
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 
Jenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on MobileJenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on Mobile
 
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForgeMobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code Review
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

GerritHub a true Gerrit migration story to v2.15

  • 1. 0Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 0 Migrating to Gerrit 2.15 A success story by GerritHub.io Luca Milanesio Gerrit Code Review Maintainer GerritForge
  • 2. 1Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 1 About GerritForge Founded in the UK HQ in London Committed to OpenSource
  • 3. 2Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 2 About GerritHub.io • 5 years of activity • 37k Gerrit projects hosted • 16k monthly active users • 300+ organizations • 99.9% availability
  • 4. 3Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 3 Multi-master / dual-site Gerrit setup OVH - Canada Hetzner - Germany
  • 5. 4Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 4 Challenges when upgrading to 2.15 1.Zero-downtime 2.Accounts migration 3.NoteDb migration 4.Replication to GitHub
  • 6. 5Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 5 Challenge #1 zero downtime OVH – Canada (v2.14) Hetzner – Germany (v2.14 è v2.15 online reindex) Incoming traffic
  • 7. 6Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 6 Challenge #1 zero downtime OVH – Canada (v2.14) + readonly plugin Hetzner – Germany (reinit v2.15) Incoming traffic replication
  • 8. 7Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 7 Challenge #1 zero downtime OVH – Canada (v2.14) + readonly plugin Hetzner – Germany (delta-reindex v2.15) Incoming traffic replication
  • 9. 8Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 8 Challenge #1 zero downtime OVH – Canada (v2.14 è v2.15) Hetzner – Germany (v2.15 on ReviewDb) Incoming traffic
  • 10. 9Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 9 Challenge #1 zero downtime OVH – Canada (v2.15 delta reindex) Hetzner – Germany (v2.15 on ReviewDb) Incoming traffic replication
  • 11. 10Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 10 Challenge #2 accounts migration Accounts table (DB) All-Users (repo) accounts index (lucene) v2.14 All-Users (repo) accounts index (lucene) v2.15 • All-Users getting fragmented quickly è open files explosion • accounts index misalignments in v2.14 (unnoticed)
  • 12. 11Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 11 Challenge #3 NoteDb migration OVH – Canada (v2.15 / ReviewDb) Hetzner – Germany (v2.15 ReviewDb è NoteDb) Incoming traffic replication
  • 13. 12Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 12 Challenge #3 NoteDb migration OVH – Canada (v2.15 restart with NoteDb cfg) Hetzner – Germany (v2.15 NoteDb) Incoming traffic replication
  • 14. 13Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 13 Challenge #3 NoteDb migration OVH – Canada (v2.15 NoteDb) Hetzner – Germany (v2.15 NoteDb + readonly) Incoming traffic replication
  • 15. 14Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 14 Challenge #3 NoteDb migration OVH – Canada (v2.15 NoteDb) Hetzner – Germany (v2.15 NoteDb) Incoming traffic replication
  • 16. 15Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 15 Challenge #4 replication to GitHub NoteDb = refs (w/ ReviewDb) + Num (changes) Git push to GitHub = HTTP Status 500 (boom !)
  • 17. 16Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 16 Poll: did you have similar problems? Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
  • 18. 17Gerrit User Summit 2018 – Palo Alto CA GerritForge.com 17 Wants to know more? GerritForge.com/contact