Une application Web est supposément présentée sur Digg ou Reddit, et la charge du serveur augmente immédiatement de quelques ordres de grandeur. Quel type de solution d'hébergement permettra au site Web de survivre à travers un flux aussi important? (et ne coûte pas une fortune)
L'hébergement via AWS semble être à la mode ces jours-ci. Cependant, beaucoup se plaignent du coût. Une solution d'hébergement VPS sera-t-elle également en mesure de passer à la vitesse supérieure tout en coûtant moins cher? Des alternatives? Merci.
Optimisez votre application avant d’optimiser votre infrastructure de serveur
Il est tentant de lancer plus de serveurs en cas de pics de trafic ou de payer trop cher des ressources que vous n'utiliserez peut-être jamais "au cas où". Une meilleure solution consiste à optimiser votre application pour qu'elle résiste aux pointes avant leur arrivée. Plus précisément:
Cache le code dynamique
Votre application doit servir des fichiers HTML statiques au lieu de ceux générés dynamiquement à l'aide d'un système de mise en cache. WordPress propose des plugins pour cela (par exemple, W3 Total Cache), mais il n'est pas trop difficile de lancer votre propre solution si votre application est développée par vous-même. (Recherchez "cache statique [langage de programmation]".)
Décharger les actifs statiques
Servez des images, des fichiers CSS et JavaScript ailleurs. Les packages Cloudfront et S d'Amazon sont des options populaires, mais je préfère Cloudflare, qui propose la mise en cache automatique d'actifs statiques et une liste des autres processeurs et de la bande passante. -saving avantages pour 20 $/mois.
Utilisez l'outil Page Speed Online de Google
Optimisez votre site avec l'outil Page Speed Online de Google. Il présentera des suggestions sur les mesures à prendre pour améliorer la vitesse de la page (et réduire la charge) sans toucher à l’infrastructure de votre serveur.
Quand vous avez fait tout ça
Ce n’est qu’alors que l’optimisation du matériel et de l’environnement mérite d’être examinée. Quelques options à considérer:
Si tout échoue ...
Envisagez de créer une page statique pour décrire votre service et collecter des adresses électroniques. Mettez cela à la place de l'application elle-même si votre site devait tomber en panne de trafic. J'utilise Wufoo ou MailChimp pour cela.
Si vous organisez l'urgence 'whoops! nous avons creusé! formulaire sur un compte d'hébergement partagé séparé (pas cher), vous pouvez utiliser basculement DNS pour rediriger automatiquement le trafic vers le formulaire statique si votre application principale tombe en panne. Ainsi, si Digg vous envoie 100 000 visiteurs et que vos applications sont étranglées, vous aurez au moins construit votre liste de diffusion et suscité l’intérêt de certains de ces visiteurs.
Cela dépend beaucoup de la façon dont vos serveurs frontaux répartissent la charge. Si ce n'est pas conçu pour ajouter de la capacité supplémentaire au passage d'un commutateur (ou peut-être mieux encore, automatiquement quand une pointe soutenue est détectée), la planification pour ce genre de chose est difficile.
Si vous concevez votre équilibrage de charge de manière à pouvoir basculer sur des serveurs supplémentaires en quelques minutes (par exemple via AWS), vous ne payerez que pour la capacité supplémentaire pendant que vous l'utilisez. Vous devrez effectuer une recherche de prix avec un scénario quelconque pour voir si le prix est correct.
CEPENDANT Si vous avez un pic de trafic soudain en raison de votre popularité, il y a pire au monde que de tomber brièvement, à moins que vous n'utilisiez un système d'assistance à la vie ou quelque chose du genre.
Si votre application/démarrage/projet est particulièrement sensible au coût, alors je vous suggère de construire ce dont vous avez besoin et de le garder. Si sa popularité explose et que vous devez passer deux jours à augmenter votre capacité, vous qualifieriez cela de bon problème.
En outre, si vous planifiez trop à l'avance pour une capacité dont vous n'avez pas encore besoin, vous dépenserez de l'argent maintenant que vous pourriez dépenser pour des ressources plus critiques.
À titre d'exemple, le premier site StackExchange (StackOverflow) a fonctionné sur un serveur unique jusqu'à peut-être l'année dernière, je crois. Jeff Atwood en parle dans son blog, et ils recevaient des millions de pages vues/jour avant d'ajouter une infrastructure supplémentaire pour le réseau StackExchange.