Quelles considérations techniques un administrateur système / réseau doit-il prendre en compte lorsqu'un site accède à des sites de partage de signets ou à des réseaux sociaux?

StackOverflow https://stackoverflow.com/questions/62403

  •  09-06-2019
  •  | 
  •  

Question

Je pose la question parce que Stack Overflow a été Slashdotted , et Rededitted .

Premièrement, quels sont les effets sur les serveurs d’un site Web? Deuxièmement, que peuvent faire les administrateurs système pour que leurs sites restent opérationnels au mieux?

Était-ce utile?

La solution

Malheureusement, si vous ne l'avez pas planifié avant, c'est probablement trop tard et vos utilisateurs auront une mauvaise expérience.

L’évolutivité est votre première préoccupation immédiate. Vous pouvez commencer à recevoir plus de hits par seconde que vous en obteniez par mois. Votre première ligne de défense est une bonne programmation et une bonne conception. Assurez-vous de ne rien faire de stupide, comme de recharger les données d'une base de données plusieurs fois par demande au lieu de les mettre en cache. Avant que le pic ne se produise, vous devez effectuer des tests de charge assez réalistes pour voir où se trouvent les goulots d'étranglement.

Pour un trafic absurdement élevé, envisagez la possibilité de basculer certaines pages dynamiques vers des pages statiques.

Il est également utile d’avoir une architecture de serveur pouvant évoluer. Les hôtes partagés ne sont généralement pas à l'échelle. Une seule machine dédiée n'échelle généralement pas. Utiliser quelque chose comme Amazon EC2 pour héberger peut vous aider, en particulier si vous planifiez un cluster de serveurs depuis le début (même si votre cluster est un seul ordinateur).

Votre prochaine préoccupation majeure est la sécurité. Vous êtes soudain une cible beaucoup plus grosse pour les méchants. Assurez-vous d'avoir un bon plan de sécurité en place. C’est quelque chose que vous devriez toujours avoir, mais cela devient plus important avec un usage intensif.

Autres conseils

Tout d'abord, demandez si vous voulez vraiment consacrer des semaines et des milliers de dollars à la planification de quelque chose qui pourrait ne pas se produire, et si cela se produit, dure environ 5 heures.

La solution la plus simple consiste à avoir un bon moyen de basculer vers une page permettant simplement une inscription. Les gens vont s'inscrire et vous pouvez les envoyer par courrier électronique une fois la tempête passée.

Des solutions plus élaborées reposent sur l’aptitude à évoluer rapidement. C’est d’abord un problème logiciel (pouvez-vous vous connecter à une base de données sur un autre serveur, pouvez-vous équilibrer la charge)? Deuxièmement, votre solution d'hébergement doit prendre en charge une expansion rapide. On pense à Amazon EC2, voire à slicehost. Avec les deux services, vous pouvez facilement démarrer de nouvelles instances ("Déplaçons la base de données sur un serveur différent") et développez vos instances ("Améliorons le serveur de base de données à 4 Go de RAM").

Si vous conservez toutes les données dans la base de données (y compris les sessions), vous pouvez facilement disposer de plusieurs serveurs frontaux. Pour la base de données, j'essayais généralement avec un seul serveur disposant des ressources les plus élevées disponibles, mais uniquement parce que je n'avais pas travaillé avec la réplication de la base de données et que c'était assez difficile à faire, du moins avec mysql. Les choses pourraient s'être améliorées.

Le concepteur d’application doit réfléchir à l’agrandissement (machines plus grandes avec plus de cœurs et performances supérieures) et / ou à l’extension (distribution de la charge de travail sur plusieurs systèmes). Le responsable informatique doit trouver le meilleur support pour cela. Le réseau est ce que vous regardez en premier, parce que, évidemment, tout y passe. À partir de la frontière, cela signifie généralement que les répartiteurs de charge réseau et les routeurs redondants sont desservis par plusieurs fournisseurs. Vous pouvez également consulter des services et des applications de mise en cache géographique tels que cachefly.

Vous souhaitez réduire autant que possible vos goulots d'étranglement. Vous souhaitez également concevoir l'environnement de sorte qu'il puisse être mis à l'échelle si nécessaire sans trop de travail. Faites le travail de conception à l’avant et cela vous évitera des maux de tête lorsque vous vous creuserez.

Quelques idées (de ce que j'ai utilisé dans les projets passés et en cours): Pour améliorer les performances (si nécessaire), vous pouvez placer un calmar de mise en cache par proxy inverse devant votre serveur. Bien sûr, cela ne fonctionne que si vous n'avez pas de clé de session et si les pages sont quelque peu statiques (signifie: elles ne changent qu'une fois par heure environ) et non personnalisées. Avec le calmar, vous pouvez améliorer un CMS gonflé et lent comme typo3, offrant ainsi la performance de sites Web statiques avec le confort d'un CMS.

Vous pouvez externaliser des fichiers volumineux vers des services externes tels qu'Amazon S3, en économisant la bande passante de votre serveur.

Et si vous êtes en mesure de dépenser quelques dollars (trois chiffres par mois), vous pouvez également utiliser un réseau de diffusion de contenu. Grâce à cela, vous disposez automatiquement de la mise à l'échelle, de la haute disponibilité et des faibles latences pour vos utilisateurs. Bien entendu, vos pages doivent être coachables, les clés de session et les pages personnalisées sont donc interdites. Si vous les concevez avec soin et en ayant à l’esprit les CDN, vous pouvez au moins mettre en cache certains contenus, tels que des images, des vidéos et des contenus statiques.

La charge augmente, comme d'autres réponses l'ont mentionné.

Vous obtiendrez également un afflux de nouveaux utilisateurs / commentaires de blog / votes de la part de gens ennuyés qui ne sont vraiment intéressés que par le vandalisme. Ceci est principalement un problème pour les blogs qui permettent des commentaires complètement anonymes, où des trucs terribles seront entrés. La plate-forme de blogs peut avoir des filtres anti-spam suffisants pour la bloquer, mais une intervention manuelle est souvent nécessaire pour nettoyer les traces restantes.

Même une petite barrière à l'entrée, comme exiger un nom d'utilisateur ou une adresse email même si aucune vérification n'est effectuée, réduira considérablement le volume du vandalisme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top