+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Chroniqueur Actualités
    Avatar de Coriolan
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2016
    Messages : 356
    Points : 8 624
    Points
    8 624

    Par défaut JavaScript : Twitter a transféré tout son trafic mobile vers un nouveau stack

    JavaScript : Twitter a transféré tout son trafic mobile vers un nouveau stack
    Node.js, Express et React

    Un développeur de Twitter a publié un tweet indiquant que le réseau social a transféré tout son trafic mobile vers un nouveau stack Node.js, Express et React PWA. Toujours selon l’employé du réseau social, l’équipe de développement a travaillé pendant près d’une année pour assurer cette transition.

    Nom : capture.jpg
Affichages : 6732
Taille : 31,8 Ko

    La pile JavaScript de Twitter a été en production depuis neuf mois, a dit Nicolas (pseudonyme du développeur). Lors des deux dernières années, l’architecture servant les visiteurs déconnectés a été composée de Scala, Google Closure Templates, et un peu de JavaScript. Il y a quelques mois, un développeur front-end de Twitter a commencé à tester Node.js avec une fraction de ces utilisateurs. Enfin cette semaine, un autre développeur a finalisé le transfert de l’ensemble du trafic vers l’application JavaScript.

    L’équipe de développement n’a pas laissé tomber Scala pour le côté serveur, il s’agit juste d’une implémentation de Node.js en tant qu’intermédiaire entre le front-end et le back-end. Cette approche dite BFF (Backend For Frontends) a quelques avantages notamment au niveau de la performance. Au lieu de communiquer avec l’ensemble des services du back-end, chaque application client à un serveur d’orchestration qui reçoit tous les appels.

    Évolution de Twitter

    Lors de ses débuts en 2006, Twitter avait utilisé Ruby on Rails pour son stack back-end. Rails est un framework web libre écrit en Ruby. Il suit le motif de conception modèle-vue-contrôleur aussi nommé MVC. En tant que framework, il propose une structure au programmeur qui lui permet de développer plus vite et plus intuitivement.

    Nom : evolution-of-the-twitter-stack-19-638.jpg
Affichages : 4586
Taille : 77,5 Ko

    En 2008, le réseau social a dû implémenter Memcache et Redis pour faire face à des problèmes de performance. Mais c’est à partir de 2009 que la base d’utilisateurs du site a littéralement explosé favorisée par plusieurs évènements comme la coupe du monde de 2010. Cette augmentation massive des visiteurs a révélé de graves problèmes et défis de l’architecture du réseau social. Elle était fragile et les développeurs se plaignaient d’une API lente du service. Le service devait ajouter plus de serveurs pour répondre aux requêtes de plus en plus nombreuses et garder la performance du site. Au lieu de se consacrer au développement et à l’implémentation de nouvelles fonctionnalités, les développeurs étaient dans l’obligation de faire un compromis entre flexibilité et performance.

    Nom : nombre-d'utilisateurs-Twitter.jpg
Affichages : 4467
Taille : 26,2 Ko
    Évolution du nombre d'utilisateurs de Twitter depuis son lancement


    Le nombre d’utilisateurs continuait de croitre rapidement, pour cette raison, les ingénieurs ont décidé d’explorer de nouvelles voies d’optimisation de l’architecture du site. Ils se plaignaient surtout de problèmes de scalabilité de Rails. Après avoir testé JVM un moment, ils ont été éblouis par le niveau de performance atteint.

    Rails est une solution parfaitement évolutive aujourd’hui, mais ça ne veut pas dire qu’elle peut magiquement s’adapter pour chaque type d’application donné. Contrairement aux idées reçues, Twitter n’est pas passé à Java, mais plutôt à Scala qui est prévu pour être compilé en bytecode Java (exécutable sur la JVM). Il faut savoir que Scala est parfaitement adaptée pour les services de messagerie en temps réel qui fonctionnent un peu comme Twitter.

    L’utilisation de Rails au début de Twitter était-elle une erreur ?

    Le passage de Twitter d’une technologie à une autre est souvent mal interprété par les observateurs. Beaucoup pensent que le réseau social a fait une erreur lorsqu’il a opté pour Rails lors de ses débuts. Bien évidemment ces dires ne tiennent pas, parce que le réseau social tel qu’il est aujourd’hui est radicalement différent et a donc besoin de différentes technologies.

    Twitter a été lancé par deux personnes et la première version du site a été développée en quelques jours seulement. Ils avaient besoin d’une plateforme qui devait avoir un rendement considérable compte tenu des heures de développement investies. Cela leur a permis d’introduire des changements rapides pour répondre aux besoins des utilisateurs, car il n’avait aucune idée sur l’évolution à long terme de leur jeune plateforme. L’engouement pour Twitter était là, mais personne ne savait quelle direction prendre.

    Quelques années plus tard et les choses ont changé pour l’équipe de développement. Maintenant que le produit est plus stable et ne change plus au même rythme, leur principal souci aujourd’hui est de gérer l’énorme pression sur le service. La mise à jour en temps réel de la fonctionnalité de recherche par exemple a eu un vif succès que personne n’a anticipé.

    Alors que Scala/Java est probablement adapté aux besoins de Twitter aujourd’hui, il aurait été inconcevable de l’utiliser dès le début de la plateforme pour plusieurs raisons. De un, Scala a été encore jeune et immature et parce qu’aussi Java n’aurait pas pu donner la flexibilité et l’agilité assurées par Rails.


    Source : Twitter

    Et vous ?

    Qu'en pensez-vous ?
    Est-ce que vous aussi votre entreprise a migré vers JavaScript côté serveur ou pas ?
    Que pensez-vous de la performance de Node.js et Angular ?
    Est-ce que vous aussi vous avez trouvé Ruby on Rails peu performant ? Si oui, qu'avez-vous utilisé ?

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    mai 2008
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 1 391
    Points : 2 114
    Points
    2 114

    Par défaut

    Rails était bien sûr le bon choix pour faire du RAD/prototypage, terminer rapidement une application fonctionnelle, avec une main d'oeuvre relativement abondante (comparé à Scala). Il faut juste savoir évoluer son stack en fonction des besoins, et c'est ce qu'ils ont fait.

    Le principal intérêt de cette migration, c'est que c'est une pub énorme pour les Progressive Web Apps dans la lutte natif vs web apps.

Discussions similaires

  1. [Débutant] envoyer les sms entrant de son mobile vers une application C#
    Par versaille21 dans le forum Langages
    Réponses: 3
    Dernier message: 15/04/2014, 15h23
  2. Suivre tout le trafic internet de son pc
    Par BnLucky dans le forum Sécurité
    Réponses: 3
    Dernier message: 30/09/2013, 22h17
  3. Réponses: 12
    Dernier message: 09/09/2009, 17h22
  4. Rediriger tout le trafic d'un serveur vers un autre
    Par iowa dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 19/08/2008, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo