Rapide billet pour dire que je me demandais en quel langage était codé SoundCloud, et que j’ai cherché via les structures d’URL à le savoir, mais je n’ai pas réussi à trouver via ce biais. Les URL sont très propres, en terme de serveur utilisé, on est sur du Varnish+Nginx en front, mais c’est la seule chose que l’on peut voir. J’ai donc cherché dans les offres d’emploi disponibles sur le site (ici et ici par exemple). Et s’il y a un langage qui revient souvent, c’est bien le Ruby (ils disent d’ailleurs dans leurs offres d’emploi « SoundCloud Rails-based platform »). Donc on peut très bien imaginer que SoundCloud tourne sur un mod Phusion Passenger (mais habituellement on le voit dans les header, hors ici je n’en vois pas trace, donc c’est bizarre.).
On y voit aussi les combo Nginx/Thin/MySQL. Ne sachant pas ce qu’était Thin, j’ai cherché et j’ai vu que c’était un serveur web pour Ruby. il y a donc des chance s qu’ils ne se servent pas du tout de Phusion Passenger mais qu’ils utilisent plutôt Thin, leur stack étant alors tout simplement celle qu’ils énoncent sur leur site : Varnish/Nginx en front, puis Thin+Ruby et enfin une base MySQL.
On voit aussi trace de RabbitMQ, qui est un système de message/queue (un peu comme JMS d’après ce que j’ai compris). J’imagine qu’ils utilisent ce système pour traiter les morceaux uploadés par leurs utilisateurs.
Parmi les autres technologies, j’ai vu :
- du Git (qu’ils utilisent certainement pour leur versionning de code)
- HaProxy, dont j’ai vu sur le web que c’était un load balancer
- Memcached, un système de cache de base de données
- Graphite, Ganglia, Nagios, New Relic, Hoptoad pour les systèmes de monitoring (très honnêtement, j’y connais pas grand chose)
- ActionScript3 pour tout ce qui doit être players de musique ou système d’upload
- JQuery pour le framework JS
Et ça sert à quoi de connaître le langage ?? LOL..
S.
@syndrael: C’est par attrait pour la culture du code. Quand on aime un service, on le trouve efficace, on se dit que c’est un peu aussi grâce aux technologies qui le composent, et donc on cherche à savoir de quoi le service est composé 🙂