L’un des faits qui peuvent susciter la curiosité sur des pans de l’histoire de WhatsApp Inc est sans doute la réalisation d’un si gros succès avec une équipe aussi réduite. Quand Facebook a racheté l’entreprise, elle comptait 35 ingénieurs et avait franchi la barre des 450 millions d’utilisateurs actifs par mois. Aujourd’hui, elle en emploie un peu moins de 50 mais a quand même réussi à doubler son quota d’utilisateurs actifs. Précisons que WhatsApp continue de fonctionner de façon autonome.
WhatsApp n’a pas pour habitude de beaucoup communiquer sur ses différentes opérations. Cependant, durant l’édition 2015 de la conférence Scale qui a eu lieu à San Jose, l’un des ingénieurs dans son équipe, Jamshid Mahdavi, a parlé des méthodes plutôt peu communes de WhatsApp.
« J’ai commencé à travailler avec WhatsApp il y a deux ans et j’ai eu le plaisir de voir une manière complètement différente de concevoir une infrastructure à grande échelle »va-t-il confié. D’une part, WhatsApp a opté pour utiliser le langage de développement Erlang pour son infrastructure serveurs, mais WhatsApp s’est également battu pour rendre les opérations le plus simple possible : « ce fût une révélation de voir une approche minimaliste qui consistait à résoudre uniquement les problèmes qui ont besoin d’être résolus ». Si Erlang s’avère particulièrement bien adapté pour gérer les communications des utilisateurs et permet également aux ingénieurs de déployer un nouveau code à la volée, Mahdavi a insisté sur le fait que l’attitude est aussi importante que la technologie.
Sam Schillasse, SVP of Engineering de Box, une entreprise américaine de partage de fichiers et de collaboration en ligne, s’est exprimé sur des langages qui sont particulièrement bons pour le parallélisme. Il a cité par exemple Facebook qui utilise Haskell pour son nouveau système anti-spam. Si, comme Erlang, Haskell est un langage issu en fin des années 80 et n’est plus autant utilisé qu’avant, il s’avère très efficace pour ce qui concerne le traitement des tâches parallèles. D’ailleurs Kevin Scott, SVP of Engineering & Operations chez LinkedIn, va remarquer que Google et Mozilla cherchent à arriver à un résultat similaire avec Go et Rust.
« Au lieu d’inventer un langage pour chercher à savoir quoi en faire par la suite, ils se sont décidé à inventer un langage qui viendrait résoudre un problème spécifique », a avancé Francesco Cesarini, le fondateur et Directeur Technique d’Erlang Solutions, en faisant référence à Erlang. Puis de continuer en disant que « le problème était celui de l’évolutivité massive et la fiabilité. Les réseaux téléphoniques étaient les seuls systèmes de l’époque qui devaient afficher ces propriétés ». Dans ses fonctionnalités, Whatssap se veut être un service qui vient remplacer le service de MMS traditionnel et répond donc bien aux critères recherchés par Ericsson à l’époque où le langage a été créé. Sans compter le fait qu’Erlang donne la possibilité de déployer un nouveau code dans une application même si elle est exécutée.
Cependant, l’un des problèmes avec Erlang c’est la rareté relative des développeurs. De plus, il ne concorde pas nécessairement avec une grande partie du code déjà développé par les entreprises internet. Par exemple, l’application originelle de chat de Facebook était écrite en Erlang, mais l’entreprise a dû la repenser pour qu’elle puisse mieux s’ajuster au reste de son infrastructure. A ce propos, Jay Parikh, VP of Engineering de Facebook, expliquait que « vous aviez cette petite île qui était Erlang et il était assez difficile de construire suffisamment de bateaux une fois sur l’île pour que tout puisse s’y accrocher ».
Bien entendu WhatsApp n’a pas eu à intégrer son infrastructure existante de cette manière. De plus, Mahdavi pense que la rareté relative des codeurs Erlang n’est pas un problème : « notre stratégie de recrutement est de trouver les meilleurs et les plus brillants ingénieurs. Nous ne les embauchons pas spécifiquement parce qu’ils connaissent Erlang. Nous nous attendons à ce que l’ingénieur commence à se familiariser avec le langage dès la première semaine et qu’il apprenne à utiliser l’environnement. Si vous embauchez des personnes intelligentes, elles seront en mesure de le faire ».
Quand il lui a été demandé les leçons qui pouvaient être utiles pour d’autres entreprises, Mahdavi a avancé que « la première est d’être très focalisé sur ce que vous devez faire. Ne perdez pas beaucoup de temps à être distraits par d’autres activités, technologies et même par des choses qui se passent au bureau comme des réunions qui ne sont pas nécessaires, des choses qui vous empêchent de rester focalisé sur votre objectif ».
Source : YouTube
Et vous ?
Qu'en pensez-vous ?