Je pensais partir sur une solution simple et je suis arrivé PostgreSQL + Memcached + Django + uWSGI + Nginx + Varnish (et peut-être HAProxy à venir).
Utiliser un logiciel bien adapté pour chaque tâche est souvent plus simple qu'un gros serveur qui fait tout.
Des fois je me dis que cela ressemble plus à de l'alchimie qu'à une science ! ;-)
Rien n’empêche de piloter son travail par des tests. C'est une démarche encore bien rare au niveau de l'administration système en général et de l’hébergement web en particulier.
La première question à se poser est celle de savoir comment je détermine si mon application fonctionne. Quels sont les scenarii de visite ? quels sont les temps souhaités d'affichage des différentes pages ? quel est le nombre de visiteurs attendu ? quel est le volume maximal de données attendu ?
A partir de ces données tu dois écrire au moins deux types de tests :
des scenarii de visite pour les tests de charge
des sondes applicatives pour le fonctionnement en production
La bonne exécution des tests ne comprend pas seulement leur réussite, mais leur réussite dans le temps impartie.
A partir de là si tu travailles en preprod avec des données abondantes, tu es blindé.
En second point, l'analyse des logs doit être systématique. Chaque erreur doit être comprise, reproduite et corrigée.
Enfin, il faut prévoir tous les cas de panne. Qu'est-ce que je fais en cas du :
failure d'un composant logiciel (serveur qui segfault, noeuds qui tombent en cascade).
bug applicatif plantant l'appli (requête magique qui fait péter python ...)
dépassement du type de visiteur (au fait tu sais quoi, on passe à la télé ...)
Chaque cas, doit faire l'objet à minima d'une procédure au mieux d'un traitement automatisé.
La même démarche doit s'appliquer à la sécurité.
Maintenant comme je te le disais, dans le monde du web, les gens voulant travailler ainsi sont bien rares ou on une taille telle que cela se justifie pleinement. Dans la plupart des cas, il faut se démerder au pifomètre sans même quelqu'un qui connait le code et dans se cas, effectivement, il vaut mieux avoir du métier.
[^] # Re: HAProxy + Nginx + Varnish + Webserver
Posté par Joris Dedieu (site web personnel) . En réponse à la dépêche HAProxy 1.5. Évalué à 5.
Utiliser un logiciel bien adapté pour chaque tâche est souvent plus simple qu'un gros serveur qui fait tout.
Rien n’empêche de piloter son travail par des tests. C'est une démarche encore bien rare au niveau de l'administration système en général et de l’hébergement web en particulier.
La première question à se poser est celle de savoir comment je détermine si mon application fonctionne. Quels sont les scenarii de visite ? quels sont les temps souhaités d'affichage des différentes pages ? quel est le nombre de visiteurs attendu ? quel est le volume maximal de données attendu ?
A partir de ces données tu dois écrire au moins deux types de tests :
La bonne exécution des tests ne comprend pas seulement leur réussite, mais leur réussite dans le temps impartie.
A partir de là si tu travailles en preprod avec des données abondantes, tu es blindé.
En second point, l'analyse des logs doit être systématique. Chaque erreur doit être comprise, reproduite et corrigée.
Enfin, il faut prévoir tous les cas de panne. Qu'est-ce que je fais en cas du :
Chaque cas, doit faire l'objet à minima d'une procédure au mieux d'un traitement automatisé.
La même démarche doit s'appliquer à la sécurité.
Maintenant comme je te le disais, dans le monde du web, les gens voulant travailler ainsi sont bien rares ou on une taille telle que cela se justifie pleinement. Dans la plupart des cas, il faut se démerder au pifomètre sans même quelqu'un qui connait le code et dans se cas, effectivement, il vaut mieux avoir du métier.