Hello,
On 21/01/2014 12:38, Alexandre wrote:
Quelles sont les possibilités pour absorber les montées en charge
ponctuelles d'une infrastructure web ?
Actuellement, nous migrons une partie de l'infra web qui était
principalement composée de serveurs apache + php5 + apc vers des
serveurs lighttpd + php5-cgi + memcache. Cette migration partielle nous
a permis de maitriser la charge des machines. Cependant, lors d'un
évènement ponctuel, le trafic est si important que notre infrastructure
est au maximum de sa puissance de calcul même après y avoir placé des
revers proxy sous varnish. Le service est rendu mais lent. Nous avons la
possibilité de désactiver des fonctionnalités à la volée pour soulager
le traitement, mais cela reste une façon de contourner le problème. Nous
avions pensé à "muscler" notre infra en y ajoutant plus de machines.
Au-delà du prix, je me demande l'intérêt d'avoir une puissance de calcul
aussi élevée pour 3 semaines max d'utilisation. J'ai donc pensé à des
machines (type cloud) qui seraient préparées en amont et qui pourraient
être activées sur demande (via une api ?) avec une facturation à
l'utilisation.
D'expérience, le problème est souvent lié à des lacunes au niveau de la
capacité de l'applicatif à tirer pleinement partie des caches.
Typiquement, un varnish en front d'un applicatif qui n'a pas été prévu
pour n'apportera (quasiment) rien.
Il est par ailleurs important de bien identifier les bottlenecks. Le
pire cas que j'ai vu : une homepage s'écroulant à 30 req/s supportait
finalement plus de 4000 simplement en virant le cookie (inutile) qui
rendait le cache inopérant. La solution consistant à multiplier les
fronts n'étaient clairement pas la bonne ! ;)
Ce service doit surement exister chez amazon, gandi, ovh ... L'avez-vous
déjà utilisé ? En êtes-vous satisfait ? Quelles sont les limites de ce
service ? Avez-vous d'autres solutions qui seraient plus adaptées ?
Sinon, le cloud ... quand il s'agit de régler un problème de perfs, bof
bof. À moins bien sûr que l'applicatif est été développé en tenant
compte des spécificités de ce genre de platformes.
S'il faut vraiment ajouter de la CPU à certains moment _prévisibles_
(saisonniers), j'ai tendance à préférer louer des machines pour
l'occasion. Avec un coup de puppet/chef/whatever pour déployer la stack.
Et "poubelle" une fois que l'opération est terminée.
--
Olivier
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/