Jérémy CHAUVIN

Développeur Fullstack

API 1

API 2

Front

Lib globale

API 1

API 2

Front

Lib globale

Et pourquoi pas les monorepo ? 

Démystifier les monorepos

Google

Microsoft

Stripe

Facebook

Doctolib

Monorepo

Monolith

Monolith

Un monolith est une application qui a l'interface utilisateur et l'accès aux données dans un seul programme "

=

Un artifact

Monorepo

Un monorepo est un seul repo qui contient plusieurs applications avec des relations bien définies "

Monorepo

Bario

config

D.S

Bars API

Bario

Administration

Monorepo

Polyrepo

dans les faits

Modification coûteuse pour les lib partagées

Partage de code difficile

Duplication de code

Outils pas maintenus

Polyrepo

BarsApi

Bario

Administration

Config

DS

Repo de

Binaire

(Artifactory, nexus)

V1

V3

V2

Polyrepo

Autonomie des équipes

Microservice

Monorepo

dans les faits

Facile de créer un nouveau projet

Commit Atomic

Une seule version

Facile de partager le code

Monorepo

Les préjugés

Ne pas être au courant si une PR/MR s'ouvre

Monorepo

Les préjugés

Ne pas être au courant si une PR/MR s'ouvre

CODEOWNER

Monorepo

Les préjugés

C'est lent

Monorepo

Les préjugés

C'est lent

Cache des tâches

Orchestrator des tâches

Détecte sur quel package il faut exécuter les tâches

Monorepo

Les préjugés

ÇA VA ÊTRE UN VRAI PLAT DE SPAGHETTI

Monorepo

Les préjugés

ÇA VA ÊTRE UN VRAI PLAT DE SPAGHETTI

Un monorepo est un seul repo qui contient plusieurs applications avec des relations bien définies"

Monorepo

Monorepo

LES SERVICES PAS FORCEMENT ADAPTES

CI/CD COMPLEXE A METTRE EN PLACE

LES BRANCHES LONGUES

Warning

Monorepo

Les outils

Bazel

Gradle

Lage

Lerna

Nx

Pants

Rush

Turborepo

Monorepo

Conclusion

Monorepo

Conclusion

Pas de perte de temps

Plus facile de faire un découpage clair

Amélioration de votre devEx

🙏

Merci !

Merci !

Question(s) ?

👋

monorepo

By Jérémy

monorepo

  • 120