web-dev-qa-db-fra.com

Comment héberger un seul site web sur plusieurs serveurs?

Je prévois de publier une application iOS qui télécharge des vidéos depuis mon serveur. Si des centaines de personnes tentent de le faire le jour du lancement, mon site Web et les services fournis par mon serveur s'effondreront. Comment hébergez-vous un site Web sur plusieurs serveurs? Lorsque quelqu'un tente d'accéder à mon site, comment sa demande est-elle transmise à un serveur disponible? Comment Apple et Google le font-ils? Merci de votre aide.

10
abcd

Pour ce qui est des gros joueurs (Google, Apple, etc.), ils disposent d’un matériel sophistiqué et coûteux pour le trafic.

Une solution plus simple consisterait à configurer plusieurs hôtes et à avoir un seul hôte qui permette la rotation des demandes.

Supposons que nous ayons 5 serveurs pour héberger la vidéo, nommés VideoHostN, et que nous ayons un seul serveur distinct de ceux qui gardent une trace de leur utilisation, nommée RoutingHost.

Le premier client iOS demande l'adresse pour obtenir la vidéo de RoutingHost. RoutingHost renvoie l'adresse sur VideoHost1.

Deuxième demande du client iOS. RoutingHost répond avec VideoHost2.

Donc, jusqu'à atteindre notre hypothétique max, VideoHost5, et réinitialiser à VideoHost1.

Vous avez juste besoin d’un simple code côté serveur pour savoir quel VideoHost utiliser ensuite et y retourner l’adresse.

C'est un moyen facile et peu coûteux de répartir les utilisateurs. Cela ne garantit pas que certains utilisateurs ne seront pas obstrués par un VideoHost donné. Il est fort probable que plusieurs utilisateurs avec des connexions lentes pourraient tous tirer au même endroit, mais c'est un début.

5
Chris

Vous pouvez effectuer un équilibrage de charge conformément au lien de @ PeeHaa vers l'article de Wikipedia pour plus d'informations ici . Cela nécessite un certain savoir-faire, de l'argent et du temps à mettre en place. Les grandes entreprises comme Google et Apple utilisent la technologie qu'ils ont écrite pour eux-mêmes et essayer de les imiter est une solution onéreuse et excessive. Si vous effectuez un équilibrage de charge, vous voudrez utiliser quelque chose de beaucoup plus petit que ce qu’ils font.

Vous pouvez également utiliser des serveurs cloud pour héberger vos vidéos ou d’autres contenus. Ils s'appellent Content Distribution Networks (CDNS) et peuvent faire beaucoup plus que simplement héberger des fichiers. L'avantage de ces sites réside dans le fait qu'ils utilisent une technologie similaire à celle créée par Google pour créer un équilibrage de charge. Ils vous vendent le service en fonction de la quantité de données ou de cycles que vous consommez sur leurs serveurs. Cela signifie que vos coûts augmenteront au même rythme que votre utilisation. Aussi longtemps que vous aurez un bon modèle de revenus, vous aurez toujours les fonds nécessaires pour payer le service. Quelques grandes entreprises pour les petits utilisateurs sont:

Ils sont beaucoup plus que ces trois. En outre, l’avantage supplémentaire de CDN est que votre contenu n’est pas sur un serveur, mais sur un réseau à travers le monde. Les CDN font cela pour que le contenu vienne toujours du serveur le plus proche de l'utilisateur. La configuration de 2 serveurs ou plus sur un même site ne vous apportera jamais les mêmes avantages qu'un CDN en termes de rapidité de livraison.

Pour mémoire, je ne travaille pour aucune de ces entreprises. J'ai utilisé les services Web d'Amazon pour l'hébergement de vidéos sur le site Web de mon entreprise et cela a été un énorme avantage.

6
Ben Hoffman

Un logiciel d'équilibrage de charge gratuit tel que ZenLoader ferait l'affaire. C'est un logiciel open source, vous ne payez que si vous avez besoin d'assistance.

J'ai entendu dire que cela couvrirait vos besoins si vous avez déjà acheté les serveurs.

1
liam

J'utiliserais Scalr sur ec2 pour surveiller vos serveurs automatiquement. Il est open source et fonctionne très bien avec les services AWS. Donc, si votre serveur d’application commence à recevoir trop de trafic, Scalr fera automatiquement apparaître plus de serveurs et équilibrera la charge pour vous. Il sauvegardera aussi automatiquement vos bases de données si vous vous retrouvez esclave en tant que maître. Ainsi, vos serveurs d'applications et vos serveurs de base de données sont tous surveillés et mis à l'échelle en fonction des besoins.

La mise à l'échelle de sites Web est difficile et coûteuse. En utilisant la puissance du Cloud Computing, Scalr adapte automatiquement l’infrastructure de votre site Web: il adapte votre base de données, vos serveurs d’application et même ajoute et configure des serveurs d’équilibrage de charge et de mise en cache!

http://code.google.com/p/scalr/

1
Anagio