code pour migrer vers Nx monorepos

Narwhal, la société à l’origine du populaire système de construction Nx open source axé sur le monorepo pour le code JavaScript, a annoncé aujourd’hui qu’elle avait levé un financement de démarrage de 8,6 millions de dollars co-dirigé par Nexus Venture Partners et Andreesen Horowitz. Un certain nombre d’investisseurs providentiels, dont le cofondateur de GitHub, Tom Preston-Werner, ont également participé à cette ronde.

Fondé par deux anciens employés de Google de l’équipe Angular, Jeff Cross (PDG) et Victor Savkin (CTO), Narwahl a en fait commencé comme un cabinet de conseil Angular, aidant les grandes banques, les compagnies aériennes et d’autres entreprises – le type d’entreprises qui utilisent généralement Angular . Comme Cross me l’a dit, c’est le travail avec Capital One qui a en fait poussé l’équipe à poursuivre Nx et à en faire le produit principal de l’entreprise. À ce moment-là, le concept de monorepos leur était déjà très familier, grâce à leur travail chez Google, qui utilise l’un des plus grands monorepos au monde pour gérer sa base de code.

Crédits image : Nx

« Ils avaient leur équipe de connexion », a expliqué Cross. « Si vous vous êtes connecté à CapitalOne.com, ce sont sept secteurs d’activité qui créent une application unifiée – et elle était répartie sur tellement de référentiels qu’ils ne pouvaient pas se coordonner sur les déploiements, ils ne pouvaient vraiment pas se coordonner sur quoi que ce soit. Et ils avaient vraiment besoin d’un monorepo. Et nous avons donc construit Nx pour leur cas d’utilisation, puis l’avons fait fonctionner avec tous les autres clients avec lesquels nous travaillions, c’est-à-dire la plupart de ces grandes entreprises.

Cross pense que les monorepos sont intrinsèquement plus faciles à gérer pour les grandes équipes. Les fondateurs, a-t-il dit, ont été gâtés chez Google car grâce au monorepo, n’importe quel développeur pouvait construire n’importe quelle partie de la base de code de Google avec un minimum d’effort. Tout, après tout, utilisait la même chaîne d’outils et la même infrastructure de test. Pendant ce temps, le fait que de nombreuses équipes travaillent sur différents référentiels crée beaucoup de frictions, étant donné que les équipes doivent ensuite créer une API commune – et créer un nouveau référentiel pour celle-ci, créer le processus d’intégration et trouver comment le publier. « Et avec l’édition, chaque entreprise ajoute inévitablement la gestion des versions à l’édition. Donc, ce n’est jamais « nous publions chaque commit et il est immédiatement mis à jour dans le référentiel ». C’est plutôt : « nous le publions, nous l’utilisons quelque part pour dire s’il s’agit d’un changement majeur, mineur, ou s’agit-il d’un correctif ? » Et ce que cela finit par arriver dans la plupart des entreprises, c’est qu’elles n’ont jamais le temps de le mettre à jour », a déclaré Cross.

L’idée derrière Nx est donc de donner à chaque entreprise les outils pour gérer ses monorepos JavaScript – et les migrer vers un seul si nécessaire.

Comme Cross l’a expliqué, le projet open-source Nx et Nx Cloud aident les entreprises à organiser leur code dans ces référentiels massifs, en utilisant le concept de graphes de projet de Nx. Il convient de noter que Nx a été très inspiré par le système de construction et de test Bazel de Google, il inclut donc certaines fonctionnalités familières telles que la possibilité de répartir le calcul et l’exécution des tâches sur plusieurs machines. Cross a cité un géant du commerce de détail avec lequel l’entreprise travaille actuellement qui est passé au produit d’entreprise de Nx et économise désormais plus de 40 000 heures de temps de calcul par mois grâce à son système de mise en cache distribué. L’une des fonctionnalités intéressantes de Nx (et aussi de Bazel, pour être juste), est qu’il sait quand deux développeurs essaient d’exécuter les mêmes tâches et vérifie s’il existe déjà une version en cache.

Narwhal/Nx est déjà un peu en avance sur la plupart des entreprises open source au stade de l’amorçage en ce sens qu’il dispose déjà d’un service hébergé (Nx Cloud) et d’une version entreprise comme principaux produits. Compte tenu du type de grandes entreprises clientes avec lesquelles Nx travaille, il n’est pas surprenant que Nx leur offre la possibilité d’exécuter le service dans leurs instances privées et isolé des API externes.

L’entreprise compte actuellement un peu plus de 30 employés dans son équipe, qui est principalement à distance. Parmi eux, 25 sont des ingénieurs.

Plus récemment, Narwhal a également repris la direction de Lerna.js, un outil monorepo JavaScript open source populaire qui était auparavant resté quelque peu non maintenu. Narwhal fournira désormais des correctifs de bogues critiques et des mises à jour de sécurité pour celui-ci.

« L’adoption de Monorepo explose dans le monde entier, motivée par des avantages tels que la facilité de collaboration, la visibilité partagée de la base de code, la gestion des dépendances et la refactorisation », a déclaré Abhishek Sharma, directeur général de Nexus Venture Partners. « Cependant, à mesure que les monorepos évoluent, des outils robustes deviennent essentiels pour les gérer, et le temps de construction devient un facteur critique. C’est là que Nx brille. Nous avons été attirés par Nx en raison de son équipe de classe mondiale, de son leadership dans sa catégorie, de sa solide communauté de développeurs et de son adoption mondiale massive : des startups aux entreprises du Fortune 500. Nous sommes reconnaissants à Jeff et Victor de nous avoir choisis comme partenaire dans cette aventure.

A lire également