XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

Bareku, une PaaS juste pour moi

# By Loïc d'Anterroches, January 28, 2012.


Chose promise, chose due, voici une longue note sur le développement de Bareku. La disposition en interne d’une PaaS aide énormément le développement de nouvelles applications. C’est assez merveilleux dans la vie de tous les jours du développeur. Si vous avez des questions, n’hésitez pas à les poser ici.

La fin du CD

# By Loïc d'Anterroches, January 22, 2012.

Aujourd’hui, après avoir tenté de graver des CDs sur de vieux supports vierges sans succès, je viens de faire une chose que je n’aurais pas imaginé il y a bien longtemps. J’ai acheté une collection de cartes micro SD. Je voulais envoyer des films par la Poste à la famille et des amis, cela reviendra grosso-modo au même prix (2€ de différence par envoi car je gagne en frais de ports avec les cartes) et la carte peut ensuite facilement être réutilisée à l’arrivée. Le stockage ne vaut plus rien, le temps passé à copier les informations est maintenant le facteur limitant. Quand je pense que mon premier ordinateur avait 1 Mo de mémoire, j’aime le progrès pour certaines choses :)

Comparaison d'une page Nginx+FastCGI contre Mongrel2+Photon

# By Loïc d'Anterroches, January 24, 2012.

Deux pages d’accueil, l’une d’Indefero et l’autre de Cheméo. La comparaison tient assez bien la route car l’une comme l’autre ne font presque pas d’accès à une base de données. Comme le ping de test est toutes les minutes, cela veut aussi dire que les données sont bien mises en cache au niveau des OS pour les accès disques. Le ping est aussi fait de manière à ne pas prendre en compte la résolution DNS qui ajouterait un délais dès que la cache DNS se mettrait à jour. Le graph est celui du temps de réponse, c’est à dire :

  1. Démarrage du chrono ;
  2. connexion au serveur ;
  3. envoi de la requête GET / ;
  4. réception du début de la réponse ;
  5. arrêt du chrono.

Les deux serveurs ont le même ping depuis la VM faisant les tests (1 ms car tout chez OVH). Les résultats :

  • Nginx + PHP Fastcgi : autour de 28 ms (indefero.net sur le graph) ;
  • Mongrel2 + Photon : autour de 18 ms (chemeo.com sur le graph).

Indefero a plus de variance, mais la machine est plus chargée (même si la charge est très légère, toujours en dessous de 1, même sur un multiproc), donc on peut excuser cela. Mais dans tous les cas, cela donne une ligne de base de Mongrel2/Photon 35% plus rapide. C’est chouette, surtout que pour Cheméo, c’est déjà avec une infrastructure distribuée qui peut grandir. En effet une requête tape sur le front end Mongrel2 (VM1), qui passe la requête au serveur applicatif Photon (VM2) qui tape dans MongoDB (VM3) alors que pour Indefero seule la base de données est sur une autre VM.

Notez les perturbations sur Cheméo ce matin vers 9h UTC ? J’ai fait une série de push pour du nouveau code. La chose merveilleuse avec Photon est quand dans ce cas là, aucune requête ne se perd, il y a juste une mise en attente le temps de recharger les nouveaux processus Photon. Aucun message d’erreur, juste un léger ralentissement transparent pour l’utilisateur.

Note : Si vous comparez avec la performance du dispatch de Photon, cela veut dire que cela prend 10 ms environ de faire la connexion au serveur, le parsing de la requête par Mongrel2, la réception par Photon et le renvoi de la réponse par Photon à Mongrel2 et le passage de Mongrel2 au client.

Haute performance de Photon pour Cheméo

# By Loïc d'Anterroches, January 17, 2012.

Haute performance

Photon est construit pour assurer une haute performance. Le but est d’avoir une livraison des pages au serveur web la plus rapide possible. Le problème des applications web n’est pas la montée en charge, en effet avec une approche share nothing — c’est à dire ne rien partager, l’état de l’application se trouve stocké dans la base de données centrale, des cookies signés, mais est indépendant du serveur applicatif.

Le graph que vous avez en entrée correspond au temps de traitement des requêtes par Photon pour Cheméo dans les 24 dernières heures. Le trait rouge, c’est la moyenne pour la page d’un composant, le vert collé en bas c’est pour les images et CSS de l’application. Le point important à noter : la latence pour une page de données dans Cheméo est en moyenne de 7 ms. Je cherche l’effet d’affichage instantané pour que les gens n’hésitent pas à chercher plus et utiliser plus le site.

Aujourd’hui, pour de la haute performance en PHP vous pouvez utiliser une approche non conventionnelle. Si vous savez pourquoi vous faites cela, vous aurez un avantage sur la concurrence.

Mise à jour: Cheméo est encore petit, mais depuis qu’il tourne sur Photon et ma PaaS, il a quand même reçu plus d’1 million de requêtes et rien à signaler côté fuite de mémoire et stabilité.

Free Mobile un roaming 10 à 50 fois plus cher que les Allemands

# By Loïc d'Anterroches, January 13, 2012.

Si vous êtes un habitué à passer les frontières, vous pouvez mettre l’offre Free Mobile directement à la poubelle :

  • En Europe, roaming Free Mobile : 0,005€/ko, soit 5€/Mo.
  • En Europe, roaming Simyo: 0,49€/Mo sans engagement, 10x moins cher que Free.
  • En Europe, roaming 7 jours Simyo: 5€/50Mo valide 7 jours, idéal pour les vacances, 50x moins cher que Free.

Il faut noter que Free passe par les mêmes accords que Simyo (tous les deux des opérateurs non historiques) quand ils font de la donnée en dehors d’Allemagne et de France, donc Free se gave, tout simplement.

Logo of Plume CMS