5 min de lecture
Déployer plusieurs applications à partir d'un mono dépôt sur Scalingo
Suivez nos étapes pour déployer plusieurs applications à partir de code hébergé dans un mono dépôt.

Certain équipes de développeurs préfèrent rassembler le code source de toutes les applications sur lesquelles ils travaillent dans un seul dépôt au lieu de l'approche traditionnelle d'un dépôt par application. Cette stratégie d'organisation du code est souvent appelée « mono dépôt » ou « monorepo » en abrégé. Le déploiement de telles applications nécessite une certaine configuration. Suivez nos étapes pour déployer plusieurs applications à partir du code hébergé dans un mono dépôt.
Pourquoi un monorepo ?
Imaginez que votre projet suit le modèle monorepo et a la structure de code suivante :
Il est facile d'imaginer que ces applications forment un tout homogène avec une méthode de communication standardisée (appel HTTP synchrone, mise en file d'attente de messages, etc.) entre elles.
Les monorepos ont plusieurs avantages :
Organisation simplifiée
Facilité de coordination des changements entre les applications
Dépendances simplifiées
Processus unique de lint, de construction, de test et de publication
Un seul endroit pour signaler les problèmes
Les tests entre les modules sont exécutés ensemble → trouve plus facilement les bogues qui touchent plusieurs modules
Simplifier le refactoring de code à grande échelle – Étant donné que les développeurs ont accès à l'ensemble du projet, les refactorisations peuvent garantir que chaque partie du projet continue de fonctionner après un refactoring.
Collaboration fluide entre les équipes
Réutilisation du code
Dans notre exemple, une version est la publication de l'ensemble des applications api, front, admin et cockpit, et en mettant en place un pipeline d'intégration continue robuste, vous pouvez vous assurer que les 4 applications fonctionneront correctement ensemble.
Et au fait, Google utilise monorepo.
Déploiements sur Scalingo
Avec une telle configuration, vous devrez créer 4 applications sur Scalingo : une pour l'API et 3 pour les autres applications. Vous pouvez utiliser le tableau de bord web ou la CLI pour ce faire.
Utiliser l'intégration GitHub
Dans la section "Code" de chaque application sur le tableau de bord web, activez l'intégration GitHub avec votre mono dépôt. Vous pouvez activer le déploiement automatique sur l'une des branches afin que l'application soit automatiquement déployée lorsqu'un commit est poussé sur cette branche. Il est préférable que vous choisissiez la même branche pour les 4 applications.
Avec le code de chaque application étant dans un sous-dossier différent, vous devez enseigner à Scalingo où trouver le code source en définissant la variable d'environnement PROJECT_DIR de chaque application pour correspondre au dossier correspondant. Par exemple, l'application API devrait avoir la variable d'environnement suivante : PROJECT_DIR=api.
Applications de révision
Si vous avez configuré l'intégration GitHub et activé la fonctionnalité Auto Deploy, vous pouvez également activer les applications de révision. Les applications de révision sont des applications construites dynamiquement chaque fois qu'une demande de tirage est ouverte contre le dépôt GitHub connecté. Bien sûr, cette fonctionnalité fonctionnera également dans le cas d'un monorepo !
Par exemple, si la PR #42 est ouverte contre notre exemple de monorepo, Scalingo construira et déploiera automatiquement 4 applications Scalingo nommées api-42, front-42, admin-42 et cockpit-42, disponibles derrière leurs propres domaines scalingo.io. Et elles suivront le flux de travail standard des applications de révision : lorsque la PR est fermée, ces 4 applications temporaires seront détruites par Scalingo.
L'alternative Git uniquement
Si votre code n'est pas hébergé sur GitHub, le flux de travail est un peu plus manuel. Nous allons configurer Git pour envoyer le code vers différents remote. Après avoir créé les 4 applications sur Scalingo, allez dans le répertoire racine de votre projet et ajoutez les 4 remotes avec :
Lorsque vous souhaitez déployer une modification, poussez simplement vers le scalingo remote :
Si vous souhaitez déployer une branche avec un nom différent de master (par exemple prod), remplacez master dans les commandes précédentes par prod:master.
Conclusion
Avec cette configuration, vous êtes maintenant prêt à être super efficace dans le déploiement de vos applications. Il suffit de ajouter un nom de domaine personnalisé et de continuer à coder !
Si vous souhaitez approfondir le sujet du monorepo, vous pouvez commencer par lire cette super liste de ressources et de lectures.
Photo par Faye Cornish sur Unsplash

Yann Klis
Yann KLIS a fondé Scalingo en 2015 avec son associé Léo Unbekandt avec la vision de proposer une plateforme cloud d'hébergement web, véritable alternative européenne et souveraine aux géants américains. Aujourd'hui Scalingo héberge plusieurs milliers d'applications web déployées par des clients du monde entier ! L'objectif de Scalingo est de devenir la plateforme cloud de référence pour les développeurs web en Europe. Auparavant, il a fondé Novelys, un studio de développement spécialisé dans la technologie Ruby on Rails.
Restez informé
Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.
Prêt à déployer en toute confiance ?
Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.
Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment






