web-dev-qa-db-fra.com

Recommandations d'infrastructure de serveur

Voici la chose: j'ai besoin d'une infrastructure fiable, rapide et bon marché capable d'évoluer de manière dynamique (comme Amazon S3: stockage en nuage). Je pense à 3 types de "serveurs" différents.

  1. Serveur d'application

    • Devrait pouvoir exécuter CentOS (ou un autre léger Linux-distr.)
    • Devrait être capable de faire tourner Apache
    • Devrait être capable d'exécuter PHP
    • Devrait être capable de lancer Gd (donc, cela dépend de son processeur).
    • Devrait être extrêmement fiable et rapide.
  2. Serveur de base de données

    • Devrait être capable de faire tourner MySQL
    • Devrait pouvoir ... eh bien, ne rien faire d’autre: P.
    • Devrait être extrêmement fiable et rapide.
  3. Serveur de stockage

    • Doit être capable d'exécuter une sorte de fichier de transfert de fichier (comme FTP, CouchDB, etc.)
    • Ne devrait pouvoir faire rien d'autre.
    • Devrait être extrêmement fiable et rapide.

Donc techniquement, en transférant toutes les données statiques sur 2 serveurs/services différents, le serveur d'applications peut totalement se concentrer sur les pages Web.

Mes questions:

  • Quels services recommandez-vous?
  • Qu'est-ce qui est meilleur marché, plus rapide et plus fiable: utiliser mon propre serveur ou utiliser un service de stockage/d'informatique en nuage (comme Amazon S3, CloudFiles, etc.)?
  • Comment puis-je empêcher l'utilisation abusive de la bande passante (comme les attaques par attaque causant une facture extrêmement élevée)?
  • Quelle est la différence entre "CDN inclus" et "CDN exclu"? Il semble que le prix ne diffère pas chez CloudFiles?
  • Devez-vous payer "y compris CDN" + "hors CDN" lorsque vous décidez d'activer le réseau de distribution? Ou avez-vous seulement à payer "y compris CDN"?
  • Devrais-je aussi utiliser mon propre serveur de noms ou puis-je utiliser les serveurs de noms de mon hébergeur de domaine? Quelles sont les spécifications logicielles minimales d’un serveur de noms? Puis-je écrire un logiciel moi-même? Quelqu'un at-il une bonne description de protocole?

J'espère que vous pourrez répondre à mes questions.

Réponses

  • Je ne devrais pas écrire mon propre logiciel de serveur de noms. Au lieu de cela, je devrais utiliser quelque chose comme bind. (http://osspro.com/2010/05/04/linux-create-your-own-domain-name-server-dns/).
1
Tim van Elsloo

quelques réponses pour commencer:

Utiliser "cloud" est plus exagéré qu'utile pour le moment. Vous devez disposer de serveurs de base stables et en fonctionnement, avec des sauvegardes complètes plusieurs fois par jour, et configurer votre logiciel de manière à pouvoir le développer avec plusieurs ordinateurs en nuage pendant les heures de pointe, si nécessaire. Les ordinateurs en nuage ne sont pas très rapides et ils commencent à être très coûteux avec le trafic. Vous pourriez dire que le prix n'est pas fiable.

La virtualisation n'est généralement utile que pour le développement. Ce n'est pas pour une utilisation en production, car la vitesse du système/disque est variable.

Obtenez des serveurs dédiés gérés afin que quelqu'un d'autre remarque que le système est en panne et répare le matériel. Assurez-vous que les fichiers de démarrage sont en place et que le système se restaure au démarrage.

Ce qui est rapide dépend de l'application. Si votre base de données est lourde, optez pour les processeurs xeon. Si votre disque est lourd, allez sur les systèmes raid-5 ou raid-10 et/ou les SSD.

Assurez-vous d’obtenir des sauvegardes quotidiennes sur un emplacement externe, ainsi que des sauvegardes plus anciennes jusqu’à 6 mois.

CDN est probablement l'utilisation de Coral ou d'un autre réseau d'ordinateurs en cache distribuant vos données statiques. Inquiétez-vous lorsque votre site est entièrement opérationnel.

Vous pouvez utiliser vos propres serveurs de noms en tant que serveurs de noms en cache pour accélérer les opérations. Je ne pense pas qu'il soit inutile d'héberger vos propres domaines dans vos propres serveurs de noms, car vous les obtiendrez ailleurs très gratuitement ou gratuitement.

En fait, garder vos données hors du Web/serveur de dbs sur un autre serveur FTP ralentira probablement votre site plus que d'avoir le démon ftp en cours d'exécution sur le serveur Web.

J'espère que cela t'aides.

Parmi les exigences que vous décrivez, vous voudrez peut-être jeter un coup d'œil à Rackspace Cloud . Dans de nombreux environnements de serveurs Cloud (VPS), lorsque vous souhaitez agrandir votre ordinateur (augmenter la RAM, le CPU, etc.), vous devez provisionner un nouveau serveur, puis migrer de l'ancien vers le nouveau. Rackspace vous offre la possibilité d'augmenter les ressources selon vos besoins sans avoir à provisionner un nouveau serveur et à migrer.

Vous avez une tonne d'options pour configurer votre infrastructure. Cloud Files vous offre des capacités de stockage de fichiers avec l’avantage supplémentaire d’être distribuées globalement sur un CDN (inclus dans le service). Le trafic entre les niveaux de votre application, de votre base de données et des fichiers ne compte pas dans vos frais de bande passante.

En plus de pouvoir évoluer (en augmentant la taille de chaque serveur), avec ses options Cloud Load Balancer maintenant disponibles, vous avez également la possibilité d’agrandir (en ajoutant des serveurs à un niveau particulier). Les clouds privés gérés sont disponibles si vous ne souhaitez gérer aucun des aspects de la gestion des serveurs.

Pour mémoire, je ne suis affilié à Rackspace d'aucune façon, mais j'ai utilisé leurs services par le passé. La performance a été extrêmement bonne.

En fin de compte, la solution que vous choisirez dépendra en définitive de vos besoins, de votre budget et de votre niveau de confort avec un fournisseur donné. Cela pourrait être Rackspace, Amazon ou n'importe quel autre fournisseur.

0
Rob