Dimensionnement

13 bonnes pratiques pour garantir la scalabilité

Posted in Dimensionnement, Développement, Performance, Scalabilité on septembre 8th, 2009 by Sébastien – Be the first to comment

AFK Partners ont fait paraitre un liste (parmi tant d’autres) « bonnes pratiques » au niveau de l’évolutivité des logiciels. En voici la traduction avec quelques petites adaptations d’interprétation :
1. Asynchrone - Utilisez des flux asynchrones dès que possible,
2. Cloisonnement – Concevez des « silos » matériel indépendants entre chaque client/projet,
3. Cache - Utilisez les technologies de « cache » sur chaque couche applicative,
4. Monitoring - Evaluez la performance de votre application aussi du point du vue du client,
5. Réplication - Utilisez la réplication pour la reprise en cas de panne mais utilisez aussi ces ressources pour alléger le serveur principal des lectures faites par plusieurs instances applicatives,
6. Sharding - Séparez votre application et vos bases de données par service et/ou client et affectez chaque instance à un « silos » matériel distinct,
7. Utilisez avec parcimonie les possibilités de votre SGBDR – Utiliser les bases de données interactive uniquement comme système de stockage persistent,
8. Déployez prudemment – Déployez votre code, idéalement sur un serveur de qualification, sans rendre indisponible le système complet en cas d’erreur,
9. Tests de charge et de performance – Testez les performances des nouvelles versions avant de les passer en production,
10. Capacity Planning / Connaissez vos limites – Prenez conscience de la puissance encore disponible sur chaque élément de votre infrastructure,
11. Rollback – Gardez toujours la possibilité de retourner à une version antérieure,
12. Analyse des avaries – Ne pas soigner les symptômes, mais les causes des problèmes,
13. Qualité – On ne rajoute pas la qualité à postériori, elle fait partie des bases.

L’architecture Facebook expliquée

Posted in Architecture, Dimensionnement, Développement, Performance, Scalabilité on juillet 27th, 2009 by Sébastien – Be the first to comment

Un contenu distribué, MySQL utilisé juste pour des tables contenants des couples entrées valeurs, un memcache « énorme » rempli des données les plus souvent consultées, etc.

Cette présentation est un bon exemple de design appli/archi poussé à l’extrême (mais nécessaire).

Ca se passe sur infoQ, ça dure une heure et c’est en anglais.

Tests de migration, la sortie d’e24.fr et slate.fr et la répartition de charge

Posted in Annonces, Architecture, Dimensionnement, Performance, Scalabilité on mars 26th, 2009 by Sébastien – Be the first to comment

Nous traitons chacun de ces sujets , et dans notre deuxième newsletter.

Bonne lecture.

Déploiement PHP avec Capistrano

Posted in Architecture, Dimensionnement, Déploiement, Scalabilité on mai 22nd, 2008 by Sébastien – Be the first to comment

Oxalide était sponsor du Railscamp de Paris. A cette occasion, en tant qu’infogérant / hébergeur, nous avons partagé notre retour sur expérience sur Capistrano.

On a fait une petite présentation qui synthétise en quelques slides les enjeux, les contraintes et les apports d’un déploiement d’une application PHP avec Capistrano.