Lorsque les temps sont incertains, il est toujours bon de regarder en arrière et de repenser à l’essentiel. Je voulais prendre le temps de vous parler de la création de la plateforme Nuxeo. Je publierai prochainement plusieurs articles relatifs à notre vision : notre objectif initial, ce qui rend notre approche vraiment différente et comment nous envisageons l’avenir.

Mais concentrons aujourd’hui sur les débuts de notre entreprise. Quel a été notre point de départ ?

Nuxeo en 2006 - Les débuts

Dès nos débuts, l’approche open source nous a semblé évidente afin de développer des applications pour nos clients. C’est non seulement un moyen de s’appuyer sur une communauté et sur les composants qu’elle a créés, mais aussi d’améliorer son système à partir de cas d’utilisation réels et de partager son code pour le tester. Baptisé CPS, notre framework initial était écrit en Python sur un serveur d’application Zope. Cela peut sembler dépassé aujourd’hui (et ça l’est), mais à l’époque, ce stack technologique était moderne pour plusieurs raisons : architecture de services de contenu modulaire, éditeur d’objets REST et infrastructure intégrée.

En 2006, ces choix technologiques nous ont permis de déployer des projets personnalisés dans des délais bien plus courts que la moyenne. Mais avec l’augmentation du nombre de nos clients, l’évolution du paysage technologique et l’explosion du contenu d’entreprise, nous avons commencé à rencontrer de nouveaux défis.

Notre capacité à monter en charge

L’une des conséquences de notre croissance a été l’apparition de projets de grande envergure : plus d’utilisateurs, plus de documents à stocker, des types de fichiers plus variés et des recherches plus complexes.

Même si notre infrastructure était innovante pour l’époque, la gestion de centaines de milliers de documents s’est rapidement avérée compliquée :

  • la base de données des objets devenait inutilisable
  • le système d’index ne répondait plus

L’augmentation du nombre d’utilisateurs et de la capacité de traitement ont également engendré de nouveaux défis :

  • problèmes de cohérence des données
  • problèmes de concurrence sous Python (GIL)

Ainsi, notre capacité à monter en charge est devenue notre priorité. Nous avons multiplié les efforts sur le plan technologique afin de concevoir des solutions personnalisées et innovantes pour nos clients. Mais il était à la fois épuisant et frustrant pour les équipes de passer autant de temps à travailler sur l’infrastructure au lieu de développer de nouvelles fonctionnalités de gestion de contenu. Quelque chose devait changer.

Accepter la nouveauté

Travailler sur de plus gros projets impliquait également de collaborer avec des services IT plus mûrs. À l’époque, ceux-ci connaissaient Java, .NET ou encore Cobol.

Mais Zope et Python ne faisaient pas partie de leur univers. Je me souviens avoir imaginé une présentation pour expliquer que « Python ne désigne pas (seulement) un serpent » et que Zope n’est pas le nom d’un super-héros.

Zope is not a superhero

Les équipes de nos clients s’attendaient à un environnement WebSphere exécuté sur DB2 et notre proposition reposait sur Zope et une base de données orientée objet : leur réaction initiale n’a pas toujours été enthousiaste.

Les convaincre et les rassurer sur le potentiel de notre technologie était devenu un poste à temps plein. Mais notre objectif était ailleurs : nous aurions préféré passer plus de temps à résoudre leurs problématiques métiers qu’à apaiser leurs craintes.

Voici pour notre situation en 2006 et les raisons qui nous ont poussés à créer la plateforme Nuxeo. Même si nos technologies étaient appréciées et que notre base de clients ne cessait de s’agrandir, nous savions qu’il était temps de changer. Il était temps de soutenir des entreprises confrontées à des problèmes de gestion de contenu et à des technologies en constante évolution. Dans mon prochain article, je vous expliquerai comment nous avons remodelé la solution Nuxeo pour répondre à ces nouvelles exigences. Un changement effrayant, mais nécessaire pour nous.

Vous pouvez en apprendre plus sur notre histoire sur notre page Wikipédia.