p
u
b
l
i
c
i
t
é
Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux
3   0


 Discussion forum

Le Huffington Post passe au Web 2.0 avec un SI en Scala
MongoDB et AngularJS, une évolution en accord avec l'époque ?

Le , par olivier.pitton, Expert Confirmé
Le Huffington Post passe au Web 2.0 et remet à neuf tout son système d'information
A coup de NoSQL, Play et AngularJS


Il y a une décennie, l'avènement des technologies PHP / MySQL / JavaScript battait son plein. Il existe aujourd'hui des millions de sites basés sur ces technologies. Rappelons que Facebook est aussi passé par là. Mais cet engouement atteint ces limites et aujourd'hui on ne parle que des nouvelles bases de données NoSQL, de scalabilité, de temps-réel, ...

Le Huffington Post a décidé de ne pas se laisser devancer et a remis à plat son ancien système, Movable Type, abrégé MT, pour le remplacer par Athena. Athena est basé sur MongoDB, Scala, à travers le Play Framework et AngularJS. Mais pourquoi un tel changement quand un système fonctionne depuis 8 ans de manière sûre ?

John Pavley, CTO du Huffington Post, explique point par point les raisons de ce changement. La pile d'outils choisie à l'époque (PHP / MySQL / JavaScript) ne correspond plus aux enjeux d'aujourd'hui : la nouvelle vague d'utilisateurs créent des milliers d'heures de vidéo, des milliards de like et des millions de tweet tous les jours. C'est donc pour le futur, dirigé par les nouveaux usages des technologies informatique, que MT a été abandonné au profit d'Athena.

Le CTO explique chacun des choix des technologies choisies et pourquoi abandonner la précédente.

Tout d'abord MySQL au profit de MongoDB : John Pavley explique que l'équipe de développement voulait un nouveau système flexible, permettant de modéliser très facilement les nouveaux besoins en termes d'articles journalistiques. Quel lecteur ne voudrait pas avoir des images, vidéos, tweets et autres post Facebook pour appuyer l'histoire du journaliste ? Or MySQL requiert une planification bien trop élevée pour représenter une collection de champs différents, tandis que MongoDB est fait pour cela. La flexibilité de stockage permettra de mieux se préparer aux changements des années à venir.

Pour ce qui est de l'abandon de PHP vers Scala (et Play), le CTO dit que PHP a du mal à supporter la charge pour un très grand volume d'utilisateurs, à moins d'avoir une équipe d'ingénieurs comme Facebook. Scala se situe au-dessus d'un environnement très bien testé depuis longtemps : Java. De plus, il est bien plus difficile d'écrire du code réutilisable et simple en PHP qu'en Scala. Cette idée apporte donc une meilleure maintenabilité d'Athena.

Enfin pour ce qui est d'AngularJS, l'équipe avait des besoins de collaboration temps-réel. Selon elle, JavaScript est très bien si l'on utilise un excellent framework pour faire abstraction de tous ces points négatifs. De plus, Athena devait être complètement orienté temps-réel et dynamique. Enfin, la réduction de la taille du code et la maintenabilité offerte par le framework JS sont des avantages indéniables qui ont permis ce choix.

Mais pourquoi cette volonté de temps-réel et de dynamisme ?

Car l'objectif était de pouvoir éditer les articles de presse à plusieurs sur la même plateforme et éviter les outils tiers. Le CTO dit qu'utiliser Google Documents pour la collaboration en ligne, pour ensuite envoyer l'article dans le système d'informations est une perte de temps avec les moyens d'aujourd'hui. La pile MySQL / PHP / JavaScript nécessitait beaucoup trop de temps et de code, quand une pile MongoDB / Scala / AngularJS le réduit de manière drastique.

Quand est ce que les prochains gros sites d'informations s'y mettront ?

Source : Blog du Huffington Post

Et vous ?

Que pensez-vous de ce changement et des choix faits par l'équipe technique ?
Pensez-vous que la fin de PHP / MySQL / JavaScript arrive pour les gros éditeurs ?
L'avènement des nouvelles technologies est-elle réellement arrivée ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de heid heid - Membre éclairé http://www.developpez.com
le 14/08/2013 à 13:18
Et en bonus tu attire les profils talentueux avec ce genre d'archi.

Bien joué le Huffington.
Avatar de paclick paclick - Membre du Club http://www.developpez.com
le 14/08/2013 à 14:33
Et en bonus tu attire les profils talentueux avec ce genre d'archi.

Faudrait un peu arrêter...
Avatar de FelipeVervena FelipeVervena - En attente de confirmation mail http://www.developpez.com
le 15/08/2013 à 17:49
Faites l'effort de jeter un œil sur le code source de la page principale (le balisage) et vous allez découvrir le profil talentueux
Avatar de Yalalaaaa Yalalaaaa - Inactif http://www.developpez.com
le 15/08/2013 à 22:25
scala > java
Avatar de _skip _skip - Expert Confirmé Sénior http://www.developpez.com
le 16/08/2013 à 7:48
Citation Envoyé par Yalalaaaa  Voir le message
scala > java

Alors franchement ça se discute largement...

En nombre de features il est certainement supérieur. En productivité c'est discutable quand on voit la lenteur du compilateur qui rappelle du C++, puis au sujet de la facilité de relecture du code d'autrui qui est très importante en maintenance, c'est pas forcément le pied.

Moi je trouve pas qu'un langage est meilleur qu'un autre juste parce qu'il ajoute des kilotonnes d'opérateurs, de features et de concepts.
Avatar de batataw batataw - Membre Expert http://www.developpez.com
le 14/10/2013 à 22:38
Il est où le temps réèl ?
Avatar de ccyborg ccyborg - Invité de passage http://www.developpez.com
le 13/03/2015 à 10:03
Ok pour mongoDB et AngularJS mais l'apport de Scala à part pour les "évangéliste" JAVA je vois pas !
Avatar de Saverok Saverok - Expert Confirmé Sénior http://www.developpez.com
le 13/03/2015 à 11:42
Angular JS est un framework javascript
Ce n'est donc pas du tout un abandon de javascript, bien au contraire, juste l'utilisation d'un framework.

Cela aurait différent s'ils étaient passés à Dart ou à typescript.
Mais là, ce n'est pas du tout le cas.
Avatar de psychadelic psychadelic - Membre Expert http://www.developpez.com
le 14/03/2015 à 12:32
Hum…
A mon avis, cette histoire n’est pas finie, et on en reparlera tôt ou tard :

Le cocktail des technos m’ont un peu l’air d’avoir été fait plus par des « coup de cœur » que par un choix raisonné.

Par exemple passer directement de MySQL à MongoDB : c’est un peu violent.
Je conçois parfaitement qu’on puisse atteindre des limites de performance avec des bases MySQL, surtout pour une boite de presse, mais de la à croire que MongoDB va tout résoudre, j’ai un gros doute.
Même si perso je ne suis pas fana d’Oracle (le mieux c’est d’utiliser teraData), faut tout de même reconnaitre que les performances sont au rendez-vous ; bien sur, faut se payer un staff de DBA; mais y pas de secret : savoir structurer les données et établir des requêtes propres, c’est un métier.
Avec MongoDB, les données deviennent très vite chaotiques, les créations d’indexes internes explose pour en arriver à des temps de réponses médiocres, qui finissent par nécessiter des processeurs ultra performantes et de vraies fermes de machines : n’est pas Google qui veut.
Passer du SQL au NoSQL, est un quasiment billet sans retour !

Quand à choisir AngularJS, j'en tombe des nues !
Parce que Google lui-même à reconnu que sa techno souffrait de gros défauts de jeunesse et que la version 2 serait très différente de la 1, au point que la réécriture de ce qui à été développé en v1 serait inévitable.

Bien sur, toutes ses nouvelles techno sont super alléchantes, mais pour moi, elles ne sont pas encore arrivées à maturité.
En tout cas pas suffisamment pour jouer sur un coup de dés l’avenir informatique du Huffington Post.
Offres d'emploi IT
Data scientist h/f
CDI
AXA - Ile de France - La Défense
Support de Proximité Helpdesk N1/N2 (H/F)
CDI
Synchrone technologies - Rhône Alpes - St-Paul-Trois-Châteaux
Ingénieur Développement Java/J2ee H/F
CDI
AFERSYS - Ile de France - Paris (75014)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Accueil : le Service Publications -