SlideShare a Scribd company logo
0
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 0
Gerrit migrations
Smoothly and Step by step
Luca Milanesio
Gerrit Code Review Maintainer
GerritForge
1
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 1
About
GerritForge
Founded in
the UK
HQ in
London
Committed to
OpenSource
+ Sunnyvale
CA
2
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 2
Gerrit migrations smoothly
step-by-step
https://www.futurelearn.com/courses/migration-facts
3
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 3
Everything changes and nothing
stands still
Heraclitus of Ephesus
Plato in Cratylus (360 BCE)
4
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 4
What if you do not want to change?
https://stream.org/our-world-is-changing-too-fast/
The world around
you
is changing
anyway
5
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 5
Example: Chrome 76 and Gerrit
v2.13
6
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 6
Migration dimensions:
distance
Who has migrated
to another home?
to another state?
to another country?
7
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 7
Migrating to another house
Get a man with a van
he moves everything
you pack your bags
One day … easy, done.
8
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 8
Migrating to another state
Get interstate moving
Plan well in advance
Pack the essential, throw the rest
Plan for storage
Change utilities companies
More days needed … more pain
9
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 9
Migrating to another country
Global movers
Get paperwork sorted: VISA etc.
Pack your bags, sell the rest
Study a foreign language
Start a fresh new life
Months needed … expensive, painful
10
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 10
Migration dimensions: people
Who is migrating with you
just your partner?
with the kids?
the whole family with relatives?
11
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 11
Small teams migrations
Easy coordination, small costs
• Plan a date
• Get a car
• Move
https://driving-tests.org/beginner-drivers/how-to-pack-a-car-for-vacation/
12
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 12
Large teams migrations
Coordinate people and high costs
• Lots of advance planning
• Get proper transport
• Move in stages
https://driving-tests.org/beginner-drivers/how-to-pack-a-car-for-vacation/
13
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 13
Migrations categories
Size
Distance
trivial complex
risky ultrahazardous
14
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 14
Common high-level change management
process
1. Staging as a copy of production
2. Migrate in staging
3. Verify success, resolve problems
4. Migrate in production
15
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 15
Trivial migrations
Small distance: +1 version (e.g. 2.14 to 2.15)
Small team: < 100 users
Small number repos: < 100
Small repos size: < 100MBytes
Small number of refs: < 10k refs
16
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 16
Trivial migrations
Stop + migrate + start, as per release notes
1. Read release-notes
2. Shutdown Gerrit
3. Backup repos, index, cache and db
4. Upgrade plugins
5. Gerrit init + reindex
6. Startup Gerrit
17
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 17
Complex migrations
Small distance: +1 version (e.g. 2.14 to 2.15)
Large team: 100s or 1000s of users
Large number repos: 100s or 1000s of repos
OR/AND
Large repos size: GBs in size
Large number of refs: 100ks of refs
18
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 18
Complex migrations:
requirements
1. High SLA (99.9% or higher) = 8h outage /year
2. Minimize risk
3. Enforce consistency
4. Manage people expectations
5. Impact analysis on other tools (Jenkins, Jira, etc)
19
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 19
Complex migrations: planning
• Resources allocation
budget, people, boxes, storage, CPUs
• High level schedule of the phases
1. Health-check of current setup
2. Development and preparation
3. Testing and bug-fix
4. Execution
5. Clean-up
20
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 20
Complex migrations: health-
check
What are the current system metrics?
Do I have the right configuration?
Are the repos and changes consistent?
How is the system performing?
What is the status of heap utilization?
Are the repos GCed?
21
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 21
Complex migrations: health-
check
Consequences of migrating an unhealthy system?
• Re-indexing errors
• Unexpected configuration behavior
• Unexpected performance issues
• Inability to manage the migrated system
• Very long migration times
22
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 22
Complex migrations:
preparation
Simulate in staging what will happen during cutover
• Measure exact timings
• Prepare scripts and configs for migration
• Prepare acceptance tests
• Test, fix, measure, iterate
23
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 23
Gerrit master
(Blue)
Gerrit master
(Green)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Reduced risk and
downtime
• Setup HAProxy and HA Plugin
• Upgrade one node at a time
• Test upgraded node before
opening traffic
24
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 24
Gerrit blue
(Ver. N)
Gerrit green
(Ver. N)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Begin of the rollout
• Both blue and green active
• RO plugin inserted
• Backup of the
Repos/ReviewDb
RO
Plugin
RO
Plugin
25
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 25
Gerrit blue
(Ver. N)
Gerrit green
(Ver. N)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Upgrade on green
• Shutdown Gerrit green
• Run init and upgrade plugins
• Start Gerrit green
• Online reindex + validation
RO
Plugin
RO
Plugin
26
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 26
Gerrit blue
(Ver. N)
Gerrit green
(Ver. N+1)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Gerrit green live on Ver. N+1
• Move traffic to Gerrit green
• Observe metrics
• Identify and address issues
• Wait for online reindex to finish
RO
Plugin
27
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 27
Gerrit blue
(Ver. N+1)
Gerrit green
(Ver. N+1)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Gerrit blue to Ver. N+1
• Shutdown Gerrit blue
• Upgrade war and plugins on blue
• Copy indexes from green to blue
• Startup Gerrit blue
• Delta reindex
RO
Plugin
28
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 28
Gerrit blue
(Ver. N+1)
Gerrit green
(Ver. N+1)
HAproxy HAproxy
HA
Plugin
HA
Plugin
Shared NFS
Complex migrations:
blue/green rollout
Migration completed
• Remote RO plugin on blue
• Gerrit blue + green active
• All indexes migrated
29
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 29
Risky migrations
Large distance: 2+ version (e.g. 2.11 to 2.16)
Small team: < 100 users
Small number repos: < 100
Small repos size: < 100MBytes
Small number of refs: < 10k refs
30
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 30
Risky migrations
Test migrations for all releases from A to B
1. Read release-notes of *all* releases between A and B
2. Create a staging Gerrit
3. Apply the migration of all releases, one at a time
4. Identify problems, apply fixes, restart from 2.
31
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 31
Risky migrations
Stop + migrate (all from A to B) + start
1. Shutdown Gerrit
2. Backup repos, index, cache and db
3. For every release from A to B:
• Upgrade plugins
• Gerrit init + reindex
4. Startup Gerrit
32
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 32
Ultrahazardous migrations
https://company.sbb.ch/en/media/background-information/gotthard-base-tunnel.html
33
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 33
Automating Gerrit migrations
with Ansible
34
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 34
Enabling a smooth
migration
 Migration is an issue that comes
up all of the times and is clearly
the major headache in managing
Gerrit
 Reasons for migrating:
compatibility, added
 Migration is scary because brings
DISRUPTION and OUTAGE on
Gerrit, vital in the dev life of
organizations
35
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 35
Enabling a smooth
migration
 Gerrit has evolved to a point where the
technology and tooling allow
 limited risk
 nearly zero down time migration.
 With a proper planning in conjunction with the
use of HA and well managed test / prod
separation we can migrate without lowering the
level of service we are currently providing to our
providing to our organization
36
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 36
GerritForge smooth migration
proposal
1. Pre-migration Health check
• Identify installation possible weak spots
• Identify some quick wins
• Determine level of maturity needed to
2. Provide a migration plan
• Timeline of the migration process
• Discussed and agreed with the client
3. Assist the HA setup and migration in the test
environment (*), T&C apply.
4. Three months included of Gerrit Enterprise
Support
• Allows full testing and possibly moving on
All of the above for $15,000
Offer time-limited to Dec
31st 2019
(*) First 16h included, standard rate for extra hours. Travelling expenses
excluded.
37
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 37
Poll: what are your plans for
migrating?
Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
38
Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 38
Wants to know more?
GerritForge.com/contact

More Related Content

What's hot

Github basics
Github basicsGithub basics
Github basics
Radoslav Georgiev
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
Noa Harel
 
Gerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsGerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 mins
Luca Milanesio
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
Gaurav Wable
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Houari ZEGAI
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Peng Xiao
 
Microservices & API Gateways
Microservices & API Gateways Microservices & API Gateways
Microservices & API Gateways
Kong Inc.
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Open Source KMIP Implementation
Open Source KMIP ImplementationOpen Source KMIP Implementation
Open Source KMIP Implementation
sedukull
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & OperatorsKubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
SIGHUP
 
Terraform and Weave GitOps: Build a Fully Automated Application Stack
Terraform and Weave GitOps: Build a Fully Automated Application StackTerraform and Weave GitOps: Build a Fully Automated Application Stack
Terraform and Weave GitOps: Build a Fully Automated Application Stack
Weaveworks
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
Haggai Philip Zagury
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
HARSH MANVAR
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
Rupesh Kumar
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to Vault
Knoldus Inc.
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
Rogan Kyuseok Lee
 
oVirt installation guide_v4.3
oVirt installation guide_v4.3oVirt installation guide_v4.3
oVirt installation guide_v4.3
CheolHee Han
 

What's hot (20)

Git workflows
Git workflowsGit workflows
Git workflows
 
Github basics
Github basicsGithub basics
Github basics
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Gerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsGerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 mins
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Microservices & API Gateways
Microservices & API Gateways Microservices & API Gateways
Microservices & API Gateways
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Open Source KMIP Implementation
Open Source KMIP ImplementationOpen Source KMIP Implementation
Open Source KMIP Implementation
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & OperatorsKubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
 
Terraform and Weave GitOps: Build a Fully Automated Application Stack
Terraform and Weave GitOps: Build a Fully Automated Application StackTerraform and Weave GitOps: Build a Fully Automated Application Stack
Terraform and Weave GitOps: Build a Fully Automated Application Stack
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to Vault
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
 
oVirt installation guide_v4.3
oVirt installation guide_v4.3oVirt installation guide_v4.3
oVirt installation guide_v4.3
 

Similar to Gerrit Code Review migrations step-by-step

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyond
Luca Milanesio
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
Luca Milanesio
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15
Luca Milanesio
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
Grincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning RoundGrincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning Round
Karen Hsu
 
Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code Review
Luca Milanesio
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Weaveworks
 
Supercharging project health check
Supercharging project health checkSupercharging project health check
Supercharging project health check
David Horvath
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHub
Luca Milanesio
 
Michiel Sintenie - Vattenfal
Michiel Sintenie - VattenfalMichiel Sintenie - Vattenfal
Michiel Sintenie - Vattenfal
Vincent Everts
 
DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry
Mia Chang
 
Continuous Delivery Pipelines: Metrics, Myths, and Milestones
Continuous Delivery Pipelines:  Metrics, Myths, and MilestonesContinuous Delivery Pipelines:  Metrics, Myths, and Milestones
Continuous Delivery Pipelines: Metrics, Myths, and Milestones
DevOps.com
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
Axway
 
Enabling Agility Through DevOps
Enabling Agility Through DevOpsEnabling Agility Through DevOps
Enabling Agility Through DevOps
Leland Newsom CSP-SM, SPC5, SDP
 
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and JenkinsExpedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
CollabNet
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeCollabNet
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
Pravat Sutar
 
Git for Data Analyst - Speaker Presentation.pdf
Git for Data Analyst  - Speaker Presentation.pdfGit for Data Analyst  - Speaker Presentation.pdf
Git for Data Analyst - Speaker Presentation.pdf
RicardoCalleja
 

Similar to Gerrit Code Review migrations step-by-step (20)

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyond
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
Grincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning RoundGrincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning Round
 
Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code Review
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 
Supercharging project health check
Supercharging project health checkSupercharging project health check
Supercharging project health check
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHub
 
Michiel Sintenie - Vattenfal
Michiel Sintenie - VattenfalMichiel Sintenie - Vattenfal
Michiel Sintenie - Vattenfal
 
DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry
 
Continuous Delivery Pipelines: Metrics, Myths, and Milestones
Continuous Delivery Pipelines:  Metrics, Myths, and MilestonesContinuous Delivery Pipelines:  Metrics, Myths, and Milestones
Continuous Delivery Pipelines: Metrics, Myths, and Milestones
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
 
Enabling Agility Through DevOps
Enabling Agility Through DevOpsEnabling Agility Through DevOps
Enabling Agility Through DevOps
 
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and JenkinsExpedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
Expedite Enterprise Software Development with JIRA®, TeamForge® SCM, and Jenkins
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
 
Git for Data Analyst - Speaker Presentation.pdf
Git for Data Analyst  - Speaker Presentation.pdfGit for Data Analyst  - Speaker Presentation.pdf
Git for Data Analyst - Speaker Presentation.pdf
 

More from Luca Milanesio

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
 
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 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 Keynote
Luca Milanesio
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
Luca Milanesio
 
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
 
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
 

More from Luca Milanesio (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
 
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 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 Keynote
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
 
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
 
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
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
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
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
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
 
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
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
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
 
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
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
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
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
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
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
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
 
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
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
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
 
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
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
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
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 

Gerrit Code Review migrations step-by-step

  • 1. 0 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 0 Gerrit migrations Smoothly and Step by step Luca Milanesio Gerrit Code Review Maintainer GerritForge
  • 2. 1 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 1 About GerritForge Founded in the UK HQ in London Committed to OpenSource + Sunnyvale CA
  • 3. 2 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 2 Gerrit migrations smoothly step-by-step https://www.futurelearn.com/courses/migration-facts
  • 4. 3 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 3 Everything changes and nothing stands still Heraclitus of Ephesus Plato in Cratylus (360 BCE)
  • 5. 4 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 4 What if you do not want to change? https://stream.org/our-world-is-changing-too-fast/ The world around you is changing anyway
  • 6. 5 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 5 Example: Chrome 76 and Gerrit v2.13
  • 7. 6 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 6 Migration dimensions: distance Who has migrated to another home? to another state? to another country?
  • 8. 7 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 7 Migrating to another house Get a man with a van he moves everything you pack your bags One day … easy, done.
  • 9. 8 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 8 Migrating to another state Get interstate moving Plan well in advance Pack the essential, throw the rest Plan for storage Change utilities companies More days needed … more pain
  • 10. 9 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 9 Migrating to another country Global movers Get paperwork sorted: VISA etc. Pack your bags, sell the rest Study a foreign language Start a fresh new life Months needed … expensive, painful
  • 11. 10 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 10 Migration dimensions: people Who is migrating with you just your partner? with the kids? the whole family with relatives?
  • 12. 11 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 11 Small teams migrations Easy coordination, small costs • Plan a date • Get a car • Move https://driving-tests.org/beginner-drivers/how-to-pack-a-car-for-vacation/
  • 13. 12 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 12 Large teams migrations Coordinate people and high costs • Lots of advance planning • Get proper transport • Move in stages https://driving-tests.org/beginner-drivers/how-to-pack-a-car-for-vacation/
  • 14. 13 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 13 Migrations categories Size Distance trivial complex risky ultrahazardous
  • 15. 14 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 14 Common high-level change management process 1. Staging as a copy of production 2. Migrate in staging 3. Verify success, resolve problems 4. Migrate in production
  • 16. 15 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 15 Trivial migrations Small distance: +1 version (e.g. 2.14 to 2.15) Small team: < 100 users Small number repos: < 100 Small repos size: < 100MBytes Small number of refs: < 10k refs
  • 17. 16 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 16 Trivial migrations Stop + migrate + start, as per release notes 1. Read release-notes 2. Shutdown Gerrit 3. Backup repos, index, cache and db 4. Upgrade plugins 5. Gerrit init + reindex 6. Startup Gerrit
  • 18. 17 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 17 Complex migrations Small distance: +1 version (e.g. 2.14 to 2.15) Large team: 100s or 1000s of users Large number repos: 100s or 1000s of repos OR/AND Large repos size: GBs in size Large number of refs: 100ks of refs
  • 19. 18 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 18 Complex migrations: requirements 1. High SLA (99.9% or higher) = 8h outage /year 2. Minimize risk 3. Enforce consistency 4. Manage people expectations 5. Impact analysis on other tools (Jenkins, Jira, etc)
  • 20. 19 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 19 Complex migrations: planning • Resources allocation budget, people, boxes, storage, CPUs • High level schedule of the phases 1. Health-check of current setup 2. Development and preparation 3. Testing and bug-fix 4. Execution 5. Clean-up
  • 21. 20 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 20 Complex migrations: health- check What are the current system metrics? Do I have the right configuration? Are the repos and changes consistent? How is the system performing? What is the status of heap utilization? Are the repos GCed?
  • 22. 21 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 21 Complex migrations: health- check Consequences of migrating an unhealthy system? • Re-indexing errors • Unexpected configuration behavior • Unexpected performance issues • Inability to manage the migrated system • Very long migration times
  • 23. 22 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 22 Complex migrations: preparation Simulate in staging what will happen during cutover • Measure exact timings • Prepare scripts and configs for migration • Prepare acceptance tests • Test, fix, measure, iterate
  • 24. 23 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 23 Gerrit master (Blue) Gerrit master (Green) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Reduced risk and downtime • Setup HAProxy and HA Plugin • Upgrade one node at a time • Test upgraded node before opening traffic
  • 25. 24 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 24 Gerrit blue (Ver. N) Gerrit green (Ver. N) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Begin of the rollout • Both blue and green active • RO plugin inserted • Backup of the Repos/ReviewDb RO Plugin RO Plugin
  • 26. 25 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 25 Gerrit blue (Ver. N) Gerrit green (Ver. N) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Upgrade on green • Shutdown Gerrit green • Run init and upgrade plugins • Start Gerrit green • Online reindex + validation RO Plugin RO Plugin
  • 27. 26 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 26 Gerrit blue (Ver. N) Gerrit green (Ver. N+1) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Gerrit green live on Ver. N+1 • Move traffic to Gerrit green • Observe metrics • Identify and address issues • Wait for online reindex to finish RO Plugin
  • 28. 27 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 27 Gerrit blue (Ver. N+1) Gerrit green (Ver. N+1) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Gerrit blue to Ver. N+1 • Shutdown Gerrit blue • Upgrade war and plugins on blue • Copy indexes from green to blue • Startup Gerrit blue • Delta reindex RO Plugin
  • 29. 28 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 28 Gerrit blue (Ver. N+1) Gerrit green (Ver. N+1) HAproxy HAproxy HA Plugin HA Plugin Shared NFS Complex migrations: blue/green rollout Migration completed • Remote RO plugin on blue • Gerrit blue + green active • All indexes migrated
  • 30. 29 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 29 Risky migrations Large distance: 2+ version (e.g. 2.11 to 2.16) Small team: < 100 users Small number repos: < 100 Small repos size: < 100MBytes Small number of refs: < 10k refs
  • 31. 30 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 30 Risky migrations Test migrations for all releases from A to B 1. Read release-notes of *all* releases between A and B 2. Create a staging Gerrit 3. Apply the migration of all releases, one at a time 4. Identify problems, apply fixes, restart from 2.
  • 32. 31 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 31 Risky migrations Stop + migrate (all from A to B) + start 1. Shutdown Gerrit 2. Backup repos, index, cache and db 3. For every release from A to B: • Upgrade plugins • Gerrit init + reindex 4. Startup Gerrit
  • 33. 32 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 32 Ultrahazardous migrations https://company.sbb.ch/en/media/background-information/gotthard-base-tunnel.html
  • 34. 33 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 33 Automating Gerrit migrations with Ansible
  • 35. 34 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 34 Enabling a smooth migration  Migration is an issue that comes up all of the times and is clearly the major headache in managing Gerrit  Reasons for migrating: compatibility, added  Migration is scary because brings DISRUPTION and OUTAGE on Gerrit, vital in the dev life of organizations
  • 36. 35 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 35 Enabling a smooth migration  Gerrit has evolved to a point where the technology and tooling allow  limited risk  nearly zero down time migration.  With a proper planning in conjunction with the use of HA and well managed test / prod separation we can migrate without lowering the level of service we are currently providing to our providing to our organization
  • 37. 36 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 36 GerritForge smooth migration proposal 1. Pre-migration Health check • Identify installation possible weak spots • Identify some quick wins • Determine level of maturity needed to 2. Provide a migration plan • Timeline of the migration process • Discussed and agreed with the client 3. Assist the HA setup and migration in the test environment (*), T&C apply. 4. Three months included of Gerrit Enterprise Support • Allows full testing and possibly moving on All of the above for $15,000 Offer time-limited to Dec 31st 2019 (*) First 16h included, standard rate for extra hours. Travelling expenses excluded.
  • 38. 37 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 37 Poll: what are your plans for migrating? Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
  • 39. 38 Gerrit User Summit 2019 – GerritForge, Inc. – Sunnyvale CA GerritForge.com 38 Wants to know more? GerritForge.com/contact