SlideShare ist ein Scribd-Unternehmen logo
1 von 39
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

Weitere ähnliche Inhalte

Was ist angesagt?

DIY Netflow Data Analytic with ELK Stack by CL Lee
DIY Netflow Data Analytic with ELK Stack by CL LeeDIY Netflow Data Analytic with ELK Stack by CL Lee
DIY Netflow Data Analytic with ELK Stack by CL LeeMyNOG
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD processHYS Enterprise
 
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 codeLuca Milanesio
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
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 2020Noa Harel
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabFilipa Lacerda
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in actionOleksii Holub
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupShannon Williams
 
CICD Pipelines for Microservices Best Practices
CICD Pipelines for Microservices Best Practices CICD Pipelines for Microservices Best Practices
CICD Pipelines for Microservices Best Practices Codefresh
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...Weaveworks
 
Terraform GitOps on Codefresh
Terraform GitOps on CodefreshTerraform GitOps on Codefresh
Terraform GitOps on CodefreshCodefresh
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull RequestKasper Nissen
 
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 GerritHubLuca Milanesio
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsCasey Lee
 

Was ist angesagt? (20)

DIY Netflow Data Analytic with ELK Stack by CL Lee
DIY Netflow Data Analytic with ELK Stack by CL LeeDIY Netflow Data Analytic with ELK Stack by CL Lee
DIY Netflow Data Analytic with ELK Stack by CL Lee
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
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
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
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
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
 
CICD Pipelines for Microservices Best Practices
CICD Pipelines for Microservices Best Practices CICD Pipelines for Microservices Best Practices
CICD Pipelines for Microservices Best Practices
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
 
Terraform GitOps on Codefresh
Terraform GitOps on CodefreshTerraform GitOps on Codefresh
Terraform GitOps on Codefresh
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
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
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 

Ähnlich wie 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 beyondLuca 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.15Luca Milanesio
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0Luca 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 DevelopmentMatthew Farina
 
Grincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning RoundGrincon U.S. 2019 Lightning Round
Grincon U.S. 2019 Lightning RoundKaren Hsu
 
Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewLuca 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 LinkerdWeaveworks
 
Supercharging project health check
Supercharging project health checkSupercharging project health check
Supercharging project health checkDavid Horvath
 
Michiel Sintenie - Vattenfal
Michiel Sintenie - VattenfalMichiel Sintenie - Vattenfal
Michiel Sintenie - VattenfalVincent 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 MilestonesDevOps.com
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the CloudAxway
 
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 JenkinsCollabNet
 
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.pdfsaraichiba2
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes waysparkfabrik
 
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.pdfRicardoCalleja
 
Running on Amazon EKS – How Greenlight Gets Security Right
Running on Amazon EKS – How Greenlight Gets Security RightRunning on Amazon EKS – How Greenlight Gets Security Right
Running on Amazon EKS – How Greenlight Gets Security RightDevOps.com
 

Ähnlich wie 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
 
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
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0
 
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
 
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
 
Running on Amazon EKS – How Greenlight Gets Security Right
Running on Amazon EKS – How Greenlight Gets Security RightRunning on Amazon EKS – How Greenlight Gets Security Right
Running on Amazon EKS – How Greenlight Gets Security Right
 

Mehr von 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.3Luca 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.3Luca Milanesio
 
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteLuca 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 pipelinesLuca Milanesio
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteLuca 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 issuesLuca 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 TimeLuca 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 ReviewLuca 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 ReviewLuca Milanesio
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca 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 AnalyticsLuca 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 AnalyticsLuca 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 DockerLuca Milanesio
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, futureLuca Milanesio
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryLuca Milanesio
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca 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 GroovyLuca 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 MobileLuca Milanesio
 

Mehr von 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
 
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
 

Kürzlich hochgeladen

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Kürzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

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