SlideShare a Scribd company logo
Our Migration from Jenkins to GitLab CI
Philipp
Westphalen
FullStack Developer
GitLab Hero & Meetup Organizer
Hackerschool Inspirer
/Koala_Phil /Phil404
adSoul GmbH
Our Technical Landscape
Our Technical Landscape
Internet Build Tool Private Cloud
Our Challenges
Our Challenges
Small Development Team
Not enough time for everything
Maintenance of our Build Tools / Process
Build process is tough to understand
Jenkins is unstable and nonintuitive
Visibility of Development Status of Issues
Cost on Development Tools
Our Journey to GitLab
Gather all Information
Gather all Information
Ask yourself:
What could be possible with GitLab?
Share the insights with all members of our team
How could it affect our daily work?
What improvements could we achieve with a migration?
Ask for the needs of every role
Talk in specific rounds with your coworkers
Have several feedback loops
Commitment of the whole team to test GitLab
Interesting Features
GitLab CI/CD
Jobs based on docker containers
Integration of Sentry and Prometheus
Yaml based configuration file for pipelines
Issue Management and automated Support
A single Tool for the „Tool-Chain“
Small Projects first
Small Projects first
Start with a simple Project
Not enough time for everything
Figure out new Ways of Building Software
Try different building solutions for your software (e.g. Gradle)
Find Solutions for your Challenges
Use GitLab for Docker Images and other features
We run GitLab-Runners in our Kubernetes Cluster to get into it
Maven vs Gradle
Gradle is easier to use
You can define custom tasks
Unit Tests
Integration Tests
Environment variables are injected automatically
Challenge with GitLab-Runner in our Kubernetes
Caching is having a huge impact on building times
Notice: we used a private cloud Kubernetes cluster
Cloud Caching Local CachingWithout Caching
Download / upload sources Download sources (if needed)Download sources
Stable duration Doubles duration of without
Could be unstable
Short duration
Connection errors… Not supported by provider
Changes to our Technical Landscape
Internet Build Tool Private Cloud
PreviousCurrent
Migration of our Main Project
Phase 1: Move the Repository
Phase 1: Move the Repository
Step 1: Transfer the Repository to GitLab
Use the GitHub Import by GitLab
Step 2: Modify Scripts with new Origin
We had problems with migrating our Issues / Releases / Tags
Exchange GitHub API calls with their GitLab equivalent
Open Source:
GitHub Issue Migrator
CLI-Tool
Migrate the Issues from GitHub
Synchronize the contributers
Optional: Releases and Tags
@Phil404/github-issue-migrator
Phase 2: Migrate the CI/CD Pipeline
Phase 2: Migrate the CI/CD Pipeline
Challenge: our build process was far too complex for an easy Lift‘n‘Shift
Tip: Increase
the Log Limit
Useful if you have a lot of logs generated
by your job
Especially when you debug your build step
UI is the only view for logs
Standard size of logs: 4MiB
Phase 3: Time for Improvements
Phase 3: Time for Improvements
Split the different Steps
„One job does one thing perfectly“
Keep it small and simple
Phase 3: Time for Improvements
Change our Build Tool to Gradle
More flexibel for our DevOps strategy
Parallel Job Processing
Separate jobs for the same “goal“, like the test stage
Standard Docker Images
Improved building time a little bit
Use official images which fit our requirements
Less time for maintenance
Use Resources efficient
Key Learnings from Migration
Phase 3: Key Learnings from Migration
Plan your Migration
With low maintenance and high customizability
Step by Step
Don‘t try it by a big bang. Keep your infrastructure running and deployable
Rethink your DevOps Strategy
Try out something new and question your existing pipelines / processes
Start with a small Project
Tip: Keep your
Pipeline User Friendly
Name your jobs clear to what they do
Style your config for a better overview
Write comments for variables and hard to
understand code pieces
Why GitLab suits us perfectly
Why GitLab suits us perfectly
Powerful CI/CD Solution
With low maintenance and high customizability
One Home for Everything
User Experience
Low Maintenance
Project Management
Thanks for your Attention!
Questions?
/Koala_Phil /Phil404

More Related Content

What's hot (20)

PDF
Terraform GitOps on Codefresh
Codefresh
 
PDF
Continuous Deployment with Kubernetes, Docker and GitLab CI
alexanderkiel
 
PPTX
Git & GitLab
Gaurav Wable
 
PDF
Juc boston2014.pptx
Brandon Mueller
 
PPTX
2015 05-06-karsten gaebert-akademie-etrainings
Haufe-Lexware GmbH & Co KG
 
PPTX
CI/CD with Rancher CLI + Jenkins
Go Chiba
 
PDF
Docker based-Pipelines with Codefresh
Codefresh
 
PDF
Why you can't ignore GitLab
Pivorak MeetUp
 
PDF
What's New in GitLab and Software Development Trends
Noa Harel
 
PDF
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
Julian Mazzitelli
 
PDF
Introducing GitLab (June 2018)
Noa Harel
 
PPTX
Gitlab CI/CD
JEMLI Fathi
 
PDF
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Noa Harel
 
PDF
Unlimited Staging Environments
Codefresh
 
PDF
Introduction to GitHub Actions
Knoldus Inc.
 
PDF
Automated Serverless Pipelines with #GitOps on Codefresh
Codefresh
 
PDF
GitHub Actions with Node.js
Stefan Stölzle
 
PDF
Docker Best Practices Workshop
Ahmed AbouZaid
 
PDF
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Sunnyvale
 
PDF
How to use any static site generator with GitLab Pages.
Ivan Nemytchenko
 
Terraform GitOps on Codefresh
Codefresh
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
alexanderkiel
 
Git & GitLab
Gaurav Wable
 
Juc boston2014.pptx
Brandon Mueller
 
2015 05-06-karsten gaebert-akademie-etrainings
Haufe-Lexware GmbH & Co KG
 
CI/CD with Rancher CLI + Jenkins
Go Chiba
 
Docker based-Pipelines with Codefresh
Codefresh
 
Why you can't ignore GitLab
Pivorak MeetUp
 
What's New in GitLab and Software Development Trends
Noa Harel
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
Julian Mazzitelli
 
Introducing GitLab (June 2018)
Noa Harel
 
Gitlab CI/CD
JEMLI Fathi
 
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Noa Harel
 
Unlimited Staging Environments
Codefresh
 
Introduction to GitHub Actions
Knoldus Inc.
 
Automated Serverless Pipelines with #GitOps on Codefresh
Codefresh
 
GitHub Actions with Node.js
Stefan Stölzle
 
Docker Best Practices Workshop
Ahmed AbouZaid
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Sunnyvale
 
How to use any static site generator with GitLab Pages.
Ivan Nemytchenko
 

Similar to GitLab - Java User Group (20)

PDF
Breaking bad habits with GitLab CI
Ivan Nemytchenko
 
PDF
Getting Git Right
Sven Peters
 
PDF
FOSDEM 2017: GitLab CI
OlinData
 
PDF
True Git
colleenfry
 
PDF
CICD_1670665418.pdf
edsonJeancarloRuedaS
 
PPTX
Front Page of Hacker News with GitLab Pages
Will Hall
 
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
PDF
Webinar - Unbox GitLab CI/CD
Annie Huang
 
PDF
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
PDF
DevOps Service | Mindtree
AnikeyRoy
 
PPTX
Git Ninja KT (GitHub to GitLab)
Ashok Kumar
 
PDF
Be a Happier Developer with Git / Productive Team #gettinggitright
Shunsuke (Sean) Osawa
 
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Ortus Solutions, Corp
 
PDF
Continuous Integration Testing for Plone Using Hudson
Eric Steele
 
PDF
Introducing GitLab (September 2018)
Noa Harel
 
PDF
An Empirical Study of Build System Migrations in Practice (ICSM 2012)
Bram Adams
 
PDF
Bdsys icsm v3.5
SAIL_QU
 
PDF
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
Michael Lihs
 
PDF
Power Of Zero
Andrew Forward
 
PDF
Automated Testing Environments With Kubernetes & GitLab
Vladislav Supalov
 
Breaking bad habits with GitLab CI
Ivan Nemytchenko
 
Getting Git Right
Sven Peters
 
FOSDEM 2017: GitLab CI
OlinData
 
True Git
colleenfry
 
CICD_1670665418.pdf
edsonJeancarloRuedaS
 
Front Page of Hacker News with GitLab Pages
Will Hall
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Webinar - Unbox GitLab CI/CD
Annie Huang
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
DevOps Service | Mindtree
AnikeyRoy
 
Git Ninja KT (GitHub to GitLab)
Ashok Kumar
 
Be a Happier Developer with Git / Productive Team #gettinggitright
Shunsuke (Sean) Osawa
 
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Ortus Solutions, Corp
 
Continuous Integration Testing for Plone Using Hudson
Eric Steele
 
Introducing GitLab (September 2018)
Noa Harel
 
An Empirical Study of Build System Migrations in Practice (ICSM 2012)
Bram Adams
 
Bdsys icsm v3.5
SAIL_QU
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
Michael Lihs
 
Power Of Zero
Andrew Forward
 
Automated Testing Environments With Kubernetes & GitLab
Vladislav Supalov
 
Ad

Recently uploaded (20)

PDF
Rewards and Recognition (2).pdf
ethan Talor
 
PDF
Automated Test Case Repair Using Language Models
Lionel Briand
 
PPTX
arctitecture application system design os dsa
za241967
 
PPTX
Introduction to web development | MERN Stack
JosephLiyon
 
PPTX
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
PDF
What Is an Internal Quality Audit and Why It Matters for Your QMS
BizPortals365
 
PPTX
IObit Uninstaller Pro 14.3.1.8 Crack Free Download 2025
sdfger qwerty
 
PDF
The Rise of Sustainable Mobile App Solutions by New York Development Firms
ostechnologies16
 
PDF
capitulando la keynote de GrafanaCON 2025 - Madrid
Imma Valls Bernaus
 
PPTX
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
PDF
Designing Accessible Content Blocks (1).pdf
jaclynmennie1
 
PPTX
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
dheeodoo
 
PDF
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
PDF
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
DOCX
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
 
PDF
AI Software Development Process, Strategies and Challenges
Net-Craft.com
 
PDF
TEASMA: A Practical Methodology for Test Adequacy Assessment of Deep Neural N...
Lionel Briand
 
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
PDF
Building scalbale cloud native apps with .NET 8
GillesMathieu10
 
Rewards and Recognition (2).pdf
ethan Talor
 
Automated Test Case Repair Using Language Models
Lionel Briand
 
arctitecture application system design os dsa
za241967
 
Introduction to web development | MERN Stack
JosephLiyon
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
What Is an Internal Quality Audit and Why It Matters for Your QMS
BizPortals365
 
IObit Uninstaller Pro 14.3.1.8 Crack Free Download 2025
sdfger qwerty
 
The Rise of Sustainable Mobile App Solutions by New York Development Firms
ostechnologies16
 
capitulando la keynote de GrafanaCON 2025 - Madrid
Imma Valls Bernaus
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Designing Accessible Content Blocks (1).pdf
jaclynmennie1
 
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
dheeodoo
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
 
AI Software Development Process, Strategies and Challenges
Net-Craft.com
 
TEASMA: A Practical Methodology for Test Adequacy Assessment of Deep Neural N...
Lionel Briand
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Building scalbale cloud native apps with .NET 8
GillesMathieu10
 
Ad

GitLab - Java User Group

  • 1. Our Migration from Jenkins to GitLab CI
  • 2. Philipp Westphalen FullStack Developer GitLab Hero & Meetup Organizer Hackerschool Inspirer /Koala_Phil /Phil404
  • 5. Our Technical Landscape Internet Build Tool Private Cloud
  • 7. Our Challenges Small Development Team Not enough time for everything Maintenance of our Build Tools / Process Build process is tough to understand Jenkins is unstable and nonintuitive Visibility of Development Status of Issues Cost on Development Tools
  • 8. Our Journey to GitLab
  • 10. Gather all Information Ask yourself: What could be possible with GitLab? Share the insights with all members of our team How could it affect our daily work? What improvements could we achieve with a migration? Ask for the needs of every role Talk in specific rounds with your coworkers Have several feedback loops Commitment of the whole team to test GitLab
  • 11. Interesting Features GitLab CI/CD Jobs based on docker containers Integration of Sentry and Prometheus Yaml based configuration file for pipelines Issue Management and automated Support A single Tool for the „Tool-Chain“
  • 13. Small Projects first Start with a simple Project Not enough time for everything Figure out new Ways of Building Software Try different building solutions for your software (e.g. Gradle) Find Solutions for your Challenges Use GitLab for Docker Images and other features We run GitLab-Runners in our Kubernetes Cluster to get into it
  • 14. Maven vs Gradle Gradle is easier to use You can define custom tasks Unit Tests Integration Tests Environment variables are injected automatically
  • 15. Challenge with GitLab-Runner in our Kubernetes Caching is having a huge impact on building times Notice: we used a private cloud Kubernetes cluster Cloud Caching Local CachingWithout Caching Download / upload sources Download sources (if needed)Download sources Stable duration Doubles duration of without Could be unstable Short duration Connection errors… Not supported by provider
  • 16. Changes to our Technical Landscape Internet Build Tool Private Cloud PreviousCurrent
  • 17. Migration of our Main Project
  • 18. Phase 1: Move the Repository
  • 19. Phase 1: Move the Repository Step 1: Transfer the Repository to GitLab Use the GitHub Import by GitLab Step 2: Modify Scripts with new Origin We had problems with migrating our Issues / Releases / Tags Exchange GitHub API calls with their GitLab equivalent
  • 20. Open Source: GitHub Issue Migrator CLI-Tool Migrate the Issues from GitHub Synchronize the contributers Optional: Releases and Tags @Phil404/github-issue-migrator
  • 21. Phase 2: Migrate the CI/CD Pipeline
  • 22. Phase 2: Migrate the CI/CD Pipeline Challenge: our build process was far too complex for an easy Lift‘n‘Shift
  • 23. Tip: Increase the Log Limit Useful if you have a lot of logs generated by your job Especially when you debug your build step UI is the only view for logs Standard size of logs: 4MiB
  • 24. Phase 3: Time for Improvements
  • 25. Phase 3: Time for Improvements Split the different Steps „One job does one thing perfectly“ Keep it small and simple
  • 26. Phase 3: Time for Improvements Change our Build Tool to Gradle More flexibel for our DevOps strategy Parallel Job Processing Separate jobs for the same “goal“, like the test stage Standard Docker Images Improved building time a little bit Use official images which fit our requirements Less time for maintenance Use Resources efficient
  • 27. Key Learnings from Migration
  • 28. Phase 3: Key Learnings from Migration Plan your Migration With low maintenance and high customizability Step by Step Don‘t try it by a big bang. Keep your infrastructure running and deployable Rethink your DevOps Strategy Try out something new and question your existing pipelines / processes Start with a small Project
  • 29. Tip: Keep your Pipeline User Friendly Name your jobs clear to what they do Style your config for a better overview Write comments for variables and hard to understand code pieces
  • 30. Why GitLab suits us perfectly
  • 31. Why GitLab suits us perfectly Powerful CI/CD Solution With low maintenance and high customizability One Home for Everything User Experience Low Maintenance Project Management
  • 32. Thanks for your Attention! Questions? /Koala_Phil /Phil404