SlideShare une entreprise Scribd logo
1  sur  12
@vaceletm – tuleap.org - enalean.com
How @EnaleanTeam delivers @TuleapOpenALM
140 releases per month
@vaceletm – tuleap.org - enalean.com
Who am I
● Manuel Vacelet (@vaceletm)
● Enalean CTO (@EnaleanTeam)
● Tuleap Product Owner (@TuleapOpenALM)
● Tuleap contributor and maintainer
● Grenoble Docker Meetup org
● Former Agile Grenoble org
@vaceletm – tuleap.org - enalean.com
Tuleap
● Application Lifecycle Management
– Requirements, Planning, Dev, CI, Test Management, Delivery, Issues,
Documentation
● Open Source (GPLv2)
@vaceletm – tuleap.org - enalean.com
How a commit goes to prod
Developer
Maintainer
Gerrit
Jenkins
Jenkins
● 140 times a month
● From issue to release as fast as 1 hour
@vaceletm – tuleap.org - enalean.com
Principles
● What a Release is ?
– Tuleap is delivered as RPM packages to be installed on a Red Hat
compatible OS
– Two kind of releases
● “dev”: built out of master
● “stable”: built out of tags (snapshot of master at given date)
● Continuous Integration
– No branches (vs. git flow & feature branches)
– All developments made on master
– Each commit on master triggers a new release
@vaceletm – tuleap.org - enalean.com
Code review with Gerrit
● Gerrit is for code review &
integration workflow
● Developed by Google, SAP,
Ericsson, …
● Used by android, chrome, golang,
openstack, mediawiki, ...
Developer
Maintainer
Gerrit
Jenkins
@vaceletm – tuleap.org - enalean.com
Code review with Gerrit
● Review pattern completely different
than Pull Requests
– Maintainers review commits (vs branches)
– Fixes are made by amending commits (vs
updating branches)
– Formal approval of commits “+2” (vs LGTM)
● For Tuleap Core (since January)
– ~2000 commits got merged
– ~6500 patchsets submitted (28 patchsets per
day)
● For 1 commit accepted by
maintainers, 3.25 version of the
commit were submitted
Developer
Maintainer
Gerrit
Jenkins
@vaceletm – tuleap.org - enalean.com
Code review with Gerrit and Jenkins
● Jenkins is essential in code review
process
● Heavily use “Pipelines”
Developer
Maintainer
Gerrit
Jenkins
● 13300 tests run
for each commit
● Unit tests (php,
javascript)
● Integration tests
(DB, REST, SOAP)
● Platform tests
(deployment +
selenium)
● Build and Run
(packages and
install)
@vaceletm – tuleap.org - enalean.com
Integration
● Maintainers merge the commit
● GPG sign of merge
– Ensure traceability and trust of source
code
● Push into Tuleap git reference
repository
Maintainer
@vaceletm – tuleap.org - enalean.com
Build the release
Jenkins
● Again Jenkins pipelines are key
● Build of
– Tuleap
– External plugins & tools
– For 2 distributions (RHEL6 & RHEL7)
– With automated GPG signature of
packages (again ensure trust)
● Publish
– Packages for On Prem use (community)
– Docker images in our internal registry
@vaceletm – tuleap.org - enalean.com
Deployment
● Docker Images
– Based on Tuleap Enterprise, deployed
every week with important fixes and
backport (stability)
● RPMs
– Automatically installed on our servers
(tuleap.net, etc) every morning → dog
fooding
– Installed by community → bug reports &
fixes
@vaceletm – tuleap.org - enalean.com
Outcome / Take away
● Always on going process
– Current heavy work is around pipeline efficiencies
● Continuous integration is hard
– Hard to get right
– Hard to actually help developers
– Hard to stabilize
– It’s time consuming
● But it pays off
– Stability of product
– Ability to cut a release at any time
– Push a fix at any time in less than 1 hour

Contenu connexe

Tendances

Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0César Hernández
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by stepDaniel Fahlke
 
Atwix - Ярослав Рогоза
Atwix - Ярослав РогозаAtwix - Ярослав Рогоза
Atwix - Ярослав Рогозаmeet_magento
 
VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinRobert Reiz
 
Continuous Delivery-a practical case by Juan Jose Del Rio
Continuous Delivery-a practical case by Juan Jose Del RioContinuous Delivery-a practical case by Juan Jose Del Rio
Continuous Delivery-a practical case by Juan Jose Del RioJ On The Beach
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance TestingLars Thorup
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFSMohamed Samy
 
Planning for Launch - How to ensure that a new website doesn't start with the...
Planning for Launch - How to ensure that a new website doesn't start with the...Planning for Launch - How to ensure that a new website doesn't start with the...
Planning for Launch - How to ensure that a new website doesn't start with the...ghazlewood
 
Do you know your production?
Do you know your production?Do you know your production?
Do you know your production?Yevhen Rudiev
 
Delivering @ Warp Speed
Delivering @ Warp SpeedDelivering @ Warp Speed
Delivering @ Warp Speedandremadeira
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Geshan Manandhar
 
Test Automation using Athena by OLX - Intro
Test Automation using Athena by OLX - IntroTest Automation using Athena by OLX - Intro
Test Automation using Athena by OLX - IntroMC Gagan
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 pythonBeDjango
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-levelLars Thorup
 
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020César Hernández
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)Jirayut Nimsaeng
 
Build Chef development box from scratch
Build Chef development box from scratchBuild Chef development box from scratch
Build Chef development box from scratchSimone Soldateschi
 
Continuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingContinuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingTim van Eijndhoven
 

Tendances (20)

Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
Atwix - Ярослав Рогоза
Atwix - Ярослав РогозаAtwix - Ярослав Рогоза
Atwix - Ярослав Рогоза
 
VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group Berlin
 
Continuous Delivery-a practical case by Juan Jose Del Rio
Continuous Delivery-a practical case by Juan Jose Del RioContinuous Delivery-a practical case by Juan Jose Del Rio
Continuous Delivery-a practical case by Juan Jose Del Rio
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFS
 
Planning for Launch - How to ensure that a new website doesn't start with the...
Planning for Launch - How to ensure that a new website doesn't start with the...Planning for Launch - How to ensure that a new website doesn't start with the...
Planning for Launch - How to ensure that a new website doesn't start with the...
 
Do you know your production?
Do you know your production?Do you know your production?
Do you know your production?
 
Delivering @ Warp Speed
Delivering @ Warp SpeedDelivering @ Warp Speed
Delivering @ Warp Speed
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
 
Test Automation using Athena by OLX - Intro
Test Automation using Athena by OLX - IntroTest Automation using Athena by OLX - Intro
Test Automation using Athena by OLX - Intro
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 python
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
 
Evolve with laravel
Evolve with laravelEvolve with laravel
Evolve with laravel
 
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Build Chef development box from scratch
Build Chef development box from scratchBuild Chef development box from scratch
Build Chef development box from scratch
 
Continuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingContinuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatling
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 

Similaire à 140 releases per month

Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Eugenio Minardi
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet codewzzrd
 
TuleapCon2017-Quality-Assurance-Tuleap-Enterprise
TuleapCon2017-Quality-Assurance-Tuleap-EnterpriseTuleapCon2017-Quality-Assurance-Tuleap-Enterprise
TuleapCon2017-Quality-Assurance-Tuleap-EnterpriseTuleap
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
My Journey with Laravel by Shavkat, Ecompile.io
My Journey with Laravel by Shavkat, Ecompile.ioMy Journey with Laravel by Shavkat, Ecompile.io
My Journey with Laravel by Shavkat, Ecompile.ioappleseeds-my
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStackdevkulkarni
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
How to setup a development environment for ONAP
How to setup a development environment for ONAPHow to setup a development environment for ONAP
How to setup a development environment for ONAPVictor Morales
 
What is the merge window?
What is the merge window?What is the merge window?
What is the merge window?Macpaul Lin
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionStefan Schmidt
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfWeaveworks
 
Continuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - ExperienceContinuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - ExperienceRaja Soundaramourty
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)ITCamp
 

Similaire à 140 releases per month (20)

Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet code
 
TuleapCon2017-Quality-Assurance-Tuleap-Enterprise
TuleapCon2017-Quality-Assurance-Tuleap-EnterpriseTuleapCon2017-Quality-Assurance-Tuleap-Enterprise
TuleapCon2017-Quality-Assurance-Tuleap-Enterprise
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Devops.pptx
Devops.pptxDevops.pptx
Devops.pptx
 
Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive Software
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
My Journey with Laravel by Shavkat, Ecompile.io
My Journey with Laravel by Shavkat, Ecompile.ioMy Journey with Laravel by Shavkat, Ecompile.io
My Journey with Laravel by Shavkat, Ecompile.io
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
How to setup a development environment for ONAP
How to setup a development environment for ONAPHow to setup a development environment for ONAP
How to setup a development environment for ONAP
 
What is the merge window?
What is the merge window?What is the merge window?
What is the merge window?
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Continuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - ExperienceContinuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - Experience
 
CD with spinnaker
CD with spinnakerCD with spinnaker
CD with spinnaker
 
20221130 - Luxembourg HUG Meetup
20221130 - Luxembourg HUG Meetup20221130 - Luxembourg HUG Meetup
20221130 - Luxembourg HUG Meetup
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
 
Dev ops
Dev opsDev ops
Dev ops
 

Dernier

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 

Dernier (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

140 releases per month

  • 1. @vaceletm – tuleap.org - enalean.com How @EnaleanTeam delivers @TuleapOpenALM 140 releases per month
  • 2. @vaceletm – tuleap.org - enalean.com Who am I ● Manuel Vacelet (@vaceletm) ● Enalean CTO (@EnaleanTeam) ● Tuleap Product Owner (@TuleapOpenALM) ● Tuleap contributor and maintainer ● Grenoble Docker Meetup org ● Former Agile Grenoble org
  • 3. @vaceletm – tuleap.org - enalean.com Tuleap ● Application Lifecycle Management – Requirements, Planning, Dev, CI, Test Management, Delivery, Issues, Documentation ● Open Source (GPLv2)
  • 4. @vaceletm – tuleap.org - enalean.com How a commit goes to prod Developer Maintainer Gerrit Jenkins Jenkins ● 140 times a month ● From issue to release as fast as 1 hour
  • 5. @vaceletm – tuleap.org - enalean.com Principles ● What a Release is ? – Tuleap is delivered as RPM packages to be installed on a Red Hat compatible OS – Two kind of releases ● “dev”: built out of master ● “stable”: built out of tags (snapshot of master at given date) ● Continuous Integration – No branches (vs. git flow & feature branches) – All developments made on master – Each commit on master triggers a new release
  • 6. @vaceletm – tuleap.org - enalean.com Code review with Gerrit ● Gerrit is for code review & integration workflow ● Developed by Google, SAP, Ericsson, … ● Used by android, chrome, golang, openstack, mediawiki, ... Developer Maintainer Gerrit Jenkins
  • 7. @vaceletm – tuleap.org - enalean.com Code review with Gerrit ● Review pattern completely different than Pull Requests – Maintainers review commits (vs branches) – Fixes are made by amending commits (vs updating branches) – Formal approval of commits “+2” (vs LGTM) ● For Tuleap Core (since January) – ~2000 commits got merged – ~6500 patchsets submitted (28 patchsets per day) ● For 1 commit accepted by maintainers, 3.25 version of the commit were submitted Developer Maintainer Gerrit Jenkins
  • 8. @vaceletm – tuleap.org - enalean.com Code review with Gerrit and Jenkins ● Jenkins is essential in code review process ● Heavily use “Pipelines” Developer Maintainer Gerrit Jenkins ● 13300 tests run for each commit ● Unit tests (php, javascript) ● Integration tests (DB, REST, SOAP) ● Platform tests (deployment + selenium) ● Build and Run (packages and install)
  • 9. @vaceletm – tuleap.org - enalean.com Integration ● Maintainers merge the commit ● GPG sign of merge – Ensure traceability and trust of source code ● Push into Tuleap git reference repository Maintainer
  • 10. @vaceletm – tuleap.org - enalean.com Build the release Jenkins ● Again Jenkins pipelines are key ● Build of – Tuleap – External plugins & tools – For 2 distributions (RHEL6 & RHEL7) – With automated GPG signature of packages (again ensure trust) ● Publish – Packages for On Prem use (community) – Docker images in our internal registry
  • 11. @vaceletm – tuleap.org - enalean.com Deployment ● Docker Images – Based on Tuleap Enterprise, deployed every week with important fixes and backport (stability) ● RPMs – Automatically installed on our servers (tuleap.net, etc) every morning → dog fooding – Installed by community → bug reports & fixes
  • 12. @vaceletm – tuleap.org - enalean.com Outcome / Take away ● Always on going process – Current heavy work is around pipeline efficiencies ● Continuous integration is hard – Hard to get right – Hard to actually help developers – Hard to stabilize – It’s time consuming ● But it pays off – Stability of product – Ability to cut a release at any time – Push a fix at any time in less than 1 hour