9
votes

Techniques d'écriture d'un site Web évolutif

Je suis nouveau dans le domaine de l'évolutivité du site. Pouvez-vous me suggérer des techniques de fabrication d'un site Web évolutif pour un grand nombre d'utilisateurs?


0 commentaires

10 Réponses :


17
votes
  1. Testez votre site Web sous charge lourde.
  2. Surveillez toutes les statistiques
  3. Trouver un goulot d'étranglement
  4. réparer le goulot d'étranglement
  5. retourne à 1

    bonne chance


0 commentaires

3
votes

Vous voudrez peut-être examiner cette ressource- HighScalability.com .


0 commentaires

0
votes

Développez votre site à l'aide de techniques Solid OOP. Vous aurez besoin de votre site pour être modulaire, car tous les goulots d'étranglement de la performance ne sont pas évidents au début. Soyez prêt à refacturer des parties de votre site lorsque le trafic augmente. La première phrase que j'ai écrite vous aidera à le faire plus facilement et en toute sécurité. En outre, utilisez le développement axé sur les tests, car le refacteur signifie de nouveaux bugs introduits et le bon TDD est bon pour les attraper avant d'entrer dans la production.
Séparez autant que possible code côté client du code côté serveur, car ils seront susceptibles de servir de différents serveurs, si votre trafic de site justifie cela.
Lisez des articles (lire les conseils Yslow par exemple).

gl


0 commentaires

4
votes

Check out Cette conversation par rasmus lerdorf (créateur de PHP)

spécialement page 8 et au-delà.


0 commentaires

10
votes

Si vous vous attendez à ce que votre site augmente au-delà des capacités d'un seul serveur, vous devez planifier avec soin. Concevoir de sorte que ce qui suit sera possible: -

  • Faites-le donc que votre base de données puisse être sur un serveur séparé. Ce n'est normalement pas trop dur.
  • Assurez-vous que tout votre contenu statique peut être déplacé vers un CDN, car cela tirera normalement beaucoup de chargement de vos serveurs.
  • Soyez prêt à dépenser beaucoup d'argent sur le matériel. Plus de béliers et de disques plus rapides aident beaucoup.
  • Il devient beaucoup plus difficile lorsque vous devez diviser la base de données ou le PHP à partir d'un seul serveur à plusieurs serveurs, d'optimiser tout, à partir de votre code, de votre schéma de base de données, de votre configuration de serveur et de tout ce que vous pouvez penser à Mettez cette dernière étape pour le plus longtemps possible.

    Autre que cela, tout ce que vous pouvez faire est que le stress testez votre site, calculez où les goulots d'étranglement sont et essaient de les concevoir.


2 commentaires

D'accord, j'ajouterais que la mise en cache est probablement la première chose à faire lors de la création d'un grand site.


Oui. Assurez-vous que les fonctions de cache de MySQL sont bien configurées et utilisez un cache robuste pour votre code. Il y a plusieurs mentionnées dans d'autres réponses qui sont excellentes.



1
votes

Très similaire: Comment PHP a-t-il fait la bonne voie?

L'évolutivité n'est pas un petit sujet et certainement plus important que ce qui peut être raisonnablement couvert dans une seule question.

Par exemple, avec quelques types d'applications, des jointures (en SQL) ne font pas échelle, ce qui soulève toutes sortes de stratégies de mise en cache et de barres.

Beanstalk est un autre outil d'évolutivité et de performance dans des sites PHP haute performance. Comme le memcache (type différent).


0 commentaires

1
votes

par ordre d'importance:

  1. Si vous exécutez PHP, utilisez un cache de fonctionnement comme APC . (Il est suffisamment important d'être intégré dans la prochaine génération de PHP.)

  2. Utilisez Yslow ou Vitesse de la page Google pour identifier les goulots d'étranglement. (Cela révélera des problèmes structurels avec votre site Web qui affectent les performances du client et du serveur.)

  3. Assurez-vous que votre serveur Web envoie un en-tête d'expiration approprié pour le contenu statique (images, JavaScript, CSS), de sorte que le navigateur puisse la mettre en cache correctement. (Yslow vous avertira aussi à ce sujet.)

  4. Utilisez un accélérateur HTTP, tel que vernis . ( Cette image dit tout - et ils déjà avaient un http accélérateur en place.)


0 commentaires

2
votes

Un certain nombre de personnes ont mentionné des outils pour identifier des goulots d'étranglement, ce qui est bien sûr nécessaire. Vous ne pouvez pas dépenser du temps productif accélérant quelque chose sans savoir où il est lent. Mais l'autre chose que vous devez savoir est l'endroit où votre évolutivité cible réside. Est-il en rapport qualité-prix pour passer quelques mois à rendre votre échelle de votre site au même nombre d'utilisateurs que Twitter si elle sera utilisée par trois personnes à HR? Avez-vous un taux de transaction connu, ou une latence de réponse ou un nombre d'utilisateurs, dans les exigences du produit? Si tel est le cas, ciblez ces chiffres avec votre stratégie d'optimisation. Sinon, trouver ceux-ci avant de poursuivre le rat de performance dans le trou.


0 commentaires

1
votes

Le plus gros problème d'évolutivité est généralement des ressources partagées telles que les DBMS. Le problème se pose car les DBMS n'ont généralement aucun moyen de détendre des garanties de cohérence.

Si vous souhaitez augmenter l'évolutivité lorsque vous utilisez quelque chose comme MySQL, vous devez modifier votre conception de schéma pour détendre la cohérence.

Par exemple, vous pouvez séparer votre schéma de base de données pour que votre modèle de données normalisé pour écrit et une pièce de lecture répliquée en lecture seule pour les 90% des opérations de lecture. Les données en lecture seule peuvent être diffusées sur plusieurs serveurs.

Un autre moyen d'augmenter l'évolutivité d'une base de données est de partitionner les données, par ex. Séparez les données dans une base de données pour chaque ministère et les agrégez dans l'ORM ou dans le SGBD.


1 commentaires

Les données d'agrégation de la couche ORM introduisent la complexité du niveau d'application qui pourrait être lente pour des langues telles que Ruby et PHP. De plus, c'est plus difficile à gérer.



0
votes

En plus des autres suggestions, examinez vos sites dans des niveaux, comme dans architecture multitère . Si cela est bien fait, vous pouvez ensuite utiliser un serveur par niveau.


0 commentaires