Pourquoi l'open source ?

Pour notre communauté comme pour notre entreprise, l'open source est une force. Ce n'est pas un hasard s'il est au cœur de tout ce que nous entreprenons. Nous vous expliquons pourquoi.

Des centaines, puis des centaines de millions

L'open source, c'est ce qui fait qu'un projet comme Elasticsearch passe de quelques téléchargements en 2010 à plus de 250 millions en 2018. C'est ce qui abaisse les barrières à l'entrée, car le code est à la fois libre et ouvert, ce qui facilite son adoption fulgurante.

Mais l'open source n'est pas seulement un moyen de distribution logicielle efficace. C'est aussi un excellent moyen de développer les meilleurs produits qui soient. En effet, chaque téléchargement est l'occasion d'améliorer et de faire évoluer le projet. Sa sécurité se renforce à mesure que les utilisateurs passent le code au crible. Il gagne en fiabilité et en résilience grâce aux tests rigoureux qu'ils effectuent dans différentes architectures et environnements. Il devient plus extensible à mesure qu'ils essayent de nouveaux cas d'utilisation et y ajoutent des intégrations, des modules complémentaires, des plug-ins et des frameworks qui viennent étendre d'autant sa portée initiale.

Ce n'est pas en cachant le code au reste du monde jusqu'à ce qu'il soit parfait qu'un projet open source comme Elasticsearch devient ce qu'il est aujourd'hui. Si Elasticsearch est devenu ce qu'il est, c'est justement parce que nous l'avons placé dans ce formidable incubateur qu'est l'open source et que nous l'avons laissé évoluer naturellement, téléchargement après téléchargement.

... Puis une communauté qui rime avec collaboration

Développer un logiciel, c'est bien. Développer une communauté autour de ce logiciel, c'est mieux. Avec l'open source, une communauté se forme dès le premier téléchargement. Ce premier téléchargement conduit à un premier contact direct entre l'auteur et l'utilisateur, que ce soit via un forum ou un canal IRC, ce qui donne lieu à des questions ou des observations. S'ensuit la première question ouverte, puis la première pull request, et enfin, la première amélioration ou la première optimisation. Ensemble, l'auteur et l'utilisateur auront peut-être corrigé un bug ou une coquille trouvée dans la documentation. Quelle que soit la modification apportée et son importance, le logiciel s'améliore grâce à la collaboration. Imaginez maintenant le même processus après des millions de téléchargements.

Tout le monde travaillant sur le même code, nos produits évoluent suivant une sorte de sélection naturelle – une approche BDFL, comme disent certains. Bien sûr, plusieurs versions d'une même fonctionnalité peuvent apparaître dans la communauté, mais seul un petit groupe de personnes prend la décision finale quant à ce qu'il convient ou non d'intégrer (d'où l'appellation de "Benevolent Dictator for Life" ou BDFL, (littéralement, "dictateur bienveillant à vie") précédemment évoquée). En d'autres termes, l'open source n'est pas synonyme de fonctionnalités arbitraires : nous ne retenons que celles qui renforcent et améliorent le produit.

Maintenir une aussi grande communauté demande parfois autant de travail que maintenir le code. Mais nous avons beaucoup appris au fil des ans. Nous avons appris qu'il est important de créer une communauté accueillante, dans laquelle chacun se sent chez lui. Nous avons appris que nous devons tendre l'oreille, pour que chacun se sente réellement entendu (même lorsque nous devons gérer en même temps des demandes diamétralement opposées). Et nous n'en avons pas fini d'apprendre.

... Jusqu'à quelque chose de complètement inédit

Au tout début de cette aventure, il n'était pas difficile de définir Elasticsearch : un moteur de recherche vraiment remarquable conçu pour les entreprises. Mais avec l'open source, les utilisateurs peuvent facilement orienter le produit et son utilisation dans une nouvelle direction.

C'est ce qu'ont fait Jordan Sissel et Rashid Khan. Ces deux sysadmins que séparaient plusieurs États américains se sont demandé ce qui se produirait si on transférait des fichiers de logs vers Elasticsearch et qu'on tentait de les visualiser. Ce qui fut dit fut fait : ils développèrent le pipeline d'ingestion de données Logstash et le moteur de visualisation Kibana. Avec eux, apparut aussi l'ébauche d'un nouveau cas d'utilisation (le logging) pour ce qui devait devenir une suite logicielle plutôt qu'un produit autonome.

De ce côté-ci de l'Atlantique, Monica Sarbu et Tudor Golubenco se sont quant à eux attelés au transfert de paquets de données réseau depuis des machines en périphérie vers Elasticsearch. Ils développèrent donc Packetbeat. Ce dernier donna ensuite naissance à toute une gamme d'agents légers conçus pour le transfert de différents types de données (les agents Beats).

Et ainsi de suite. Des fonctionnalités de machine learning au traitement automatique du langage naturel (NLP) en passant par les indicateurs de performances applicatives, la catégorisation des couleurs, les événements de sécurité et les KPI de blog, la communauté ne cesse de créer et d'inspirer des fonctionnalités, extensions, plug-ins, modules complémentaires et cas d'utilisation.

Nous n'avons pas eu besoin d'imaginer ce qui se produirait si un millier de personnes se mettaient à innover sur un code base. Nous l'avons vu de nos propres yeux.

Notre modèle open source

Développer une entreprise open source peut présenter des défis. Nous avons beaucoup appris en observant les autres.

Certaines entreprises open source adossent leurs résultats à un business model exclusivement centré sur le support technique. Selon nous, cette approche met en conflit direct les intérêts de l'entreprise et ceux de l'utilisateur : la première ne peut réussir que si le second en pâtit. Elle n'encourage pas la simplification du produit pour l'utilisateur, ni l'autonomisation de ce dernier, puisque le chiffre d'affaires de l'entreprise dépend du support technique dont le client aura régulièrement besoin.

D'autres entreprises open source bifurquent vers une offre commerciale (ou "Enterprise") initialement partie d'un projet open source. À nos yeux, cela revient à rompre le code du projet et entraîne aussi une rupture avec la communauté. Résultat, cela risque d'entamer la confiance de la communauté, de limiter les essais et d'amoindrir la qualité du produit, qui se retrouve au final en concurrence avec une entreprise qui a initialement gagné ses galons grâce à un logiciel open source.

Nous avons donc choisi une autre voie, une voie différente. L'objectif d'Elastic est d'atteindre le juste équilibre entre code open source et code commercial en une seule suite logicielle ouverte, que viennent compléter un support technique et des services additionnels. Nous considérons que c'est à nous de proposer à l'utilisateur des offres de valeur (et donc de lui donner de bonnes raisons) d'investir dans nos produits. Résultat, notre entreprise peut développer des produits fiables et simples à utiliser, autonomiser les utilisateurs, afin qu'ils engrangent compétences et connaissances, tout en restant performante.

Donner la priorité au développement sans s'enfermer dans une approche 100 % développement

À l'image de l'évolution organique de notre code, notre adoption en entreprise suit aussi une croissance organique. Tout commence en général par un "développeur zéro" qui essaye nos produits et apprécie l'expérience. Ses collègues se mettent ensuite à les utiliser, et ce qui était une modeste preuve de faisabilité se transforme rapidement en déploiement à grande échelle dont dépendent des systèmes stratégiques de l'entreprise.

Cela finit par susciter l'intérêt d'un décideur ou d'un cadre dirigeant, qui décroche son téléphone pour savoir s'il doit ou non investir sérieusement dans Elastic. Il recherche des outils générateurs de valeur, qui boostent l'efficacité de l'entreprise, et qui seront facilement adoptés par les développeurs dans toute l'organisation.

Le dénominateur commun est la valeur ajoutée. Si l'open source est à l'origine de l'adoption initiale, c'est bien la valeur qui génère l'investissement. C'est ainsi qu'Elastic peut commencer par un projet isolé de recherche dans une application, pour s'étendre à des cas d'utilisation relatifs au logging, ou encore à des projets d'identification des menaces, de monitoring des performances applicatives, et plus encore.

OSSFL : "Open Source Software For Life" (Open source un jour, open source toujours)

Nous croyons en l'open source, et nous continuerons résolument d'y investir. Au fur et à mesure de leur croissance, bon nombre d'entreprises open source finissent par tourner le dos à leurs premières amours. Pas nous. Nous avons clairement choisi de jouer la carte de l'open source et les mesures incitatives d'Elastic resteront alignées sur notre communauté open source.

C'est pourquoi nous avons ouvert le code des fonctionnalités propriétaires de la Suite Elastic à la lecture (jusque-là regroupées dans X-Pack). Un tel degré d'ouverture permet de se libérer de la complexité et des coûts indirects inutiles, ce qui accélère le développement, tout en renforçant l'engagement de toute la communauté.

Faire le choix de l'open source n'est pas toujours facile. Mais nous sommes intimement convaincus que c'est le meilleur moyen de développer des logiciels et d'assurer la réussite continue de nos produits, de notre entreprise et de notre communauté.

En savoir plus sur Elastic

Plongez au cœur d'Elastic : découvrez ce que nous faisons, comment nous l'appliquons dans la vraie vie et comment nous le partageons avec l'ensemble de la communauté.

Nos clients

Envie de savoir comment les entreprises utilisent Elastic au quotidien ?

En savoir plus

Notre culture

Nos motivations, nos projets....

En savoir plus

Nos produits

Découvrez ce que nous avons créé

En savoir plus