Quelles meilleures pratiques devraient être entreprises pour un site Web qui doit "échelle" pour gérer la capacité? Ceci est particulièrement pertinent maintenant que les gens envisagent le nuage, mais peuvent manquer sur les fondamentaux.
Je suis intéressé à entendre parler de tout ce que vous envisagez de prendre une meilleure pratique des tâches au niveau du développement, de l'infrastructure, de la gestion.
Conception pour la concurrence
C'est-à-dire que vous codez, prévoyez d'avoir plusieurs threads. Planifiez l'état partagé (souvent juste le dB). Planifier plusieurs processus. Planifier la distribution physique.
Cela vous permet de distribuer votre système sur plusieurs machines et de multiples processus avec équilibrage de la charge. Il vous permet d'avoir des processus redondants en cas d'échec et au cas où vous avez besoin de modifier le système en place, vous n'avez pas à tuer tout service pour le faire.
Quelques choses que vous pourriez envisager:
Partager rien de l'architecture.
Avec cela à l'esprit, et contrairement à ce que vous pensez peut-être, ne sautez pas immédiatement à une solution d'échelle. La surcharge hors système contre un appel dans le système ne doit pas être sous-pesée. Par exemple, il faut beaucoup plus de temps pour créer une connexion de DB dans n'importe quelle interface réseau qu'elle ne pourra apporter un appel local. Budget Combien de temps dans la gestion, le pouvoir et l'effort de réglage sont nécessaires dans l'échelle de l'échelle par rapport à l'extra $ pour un véritable grand système.
Quoi qu'il en soit, je reste un excellent rapport qualité-prix dans les architectures "Partager" et vous pouvez calmer et élaborer vos systèmes lorsque le moment est venu.
Secure, rapide, fiable DNS
J'ai trouvé quelques sites Web de haute capacité à l'aide du serveur DNS du registraire, qui n'avait plus SLA pour disponibilité ou performance. De plus, leurs serveurs étaient situés en Inde et la latence seule augmente la chance que Le spoofer DNS pourrait empoisonner le cache de votre client ou de votre ISP intermédiaire. Cela entraînerait la redirection de votre trafic SSL protégé sans que personne sache.
La vitesse DNS affecte également la période de charge initiale de votre serveur, avant que les enregistrements soient mis en cache.
J'utilise des dyndns ou de Neustar à la plupart de mes clients car ils ont une infrastructure DNS assez solide (bien que cela coûte cher et que je n'ai aucune autre affiliation à ces entreprises).
parallèle des demandes sur plusieurs noms d'hôte
Une partie de la norme HTTP est une section indiquant que WebClients demandera un maximum de 2 sessions par hôte DNS. Voici une solution où vous et Alias sur votre site Web www.domain.com et obtenez une simultanéité de demande plus élevée, ce qui permet de charger votre page plus rapidement:
Fondamentalement, il implique de modifier votre gestionnaire HTTP ASP.NET pour alterner les hôtes cibles que vous envoyez des clients à ce que chaque hôte est un CName à "www".
Je pense que la clé va être simple:
Avoir un code simple. Cela signifie quelque chose que vous regardez et comprenez. Lorsque vous développez et modifiez les serveurs, vous devez savoir ce qui se passe. Vous pourriez également avoir besoin d'ajouter des codeurs qui doivent bien comprendre. Crochets et fichiers XML qui appellent du code aléatoire qui n'est pas évident est très mauvais.
Ensuite, vous pouvez tester et trouver les problèmes.
Regardez ici: http://blog.servint.net/2013/08/27/fra-big-how-to-scale-a-website-par--infrastructure-chat-scales/
Nous avons à Stellarbuild essayons de vous assurer que nos sites Web échouent sans temps de temps. Cela signifie que vous devez pouvoir savoir quel est votre code et où il le fait. Même si vous testez une machine différente, vous ne pouvez pas prendre trop de temps à l'échelle. La plupart des gens ne commencent que quand il est presque trop tard, malheureusement. Vous pouvez optimiser une fois que vous avez fait cela à mon avis.