2009-07-27 7 views
0

Je crée une interface de gestion de serveur pour quelques-uns de mes serveurs (qui hébergent des serveurs virtuels) et je voulais connaître la meilleure façon d'implémenter une configuration maître-esclave pour cette interface.Quelle est la meilleure façon de créer une configuration maître-esclave pour une application Web?

Le serveur maître doit se connecter à tous les serveurs esclaves afin de récupérer des informations (fournir une vue d'ensemble de haut niveau) et leur envoyer des commandes (maintient la gestion centralisée). Cependant, le serveur maître lui-même peut également avoir des serveurs virtuels, c'est pourquoi je prévoyais de déployer la même application sur tous les nœuds physiques et de déterminer si le nœud est un maître ou un esclave.

// Side Note: presque semble être récursion de manière haha ​​

Quelques idées que j'avais à l'esprit:

  • schémas de base de données séparés pour un maître et un esclave, l'application vérifie le schéma pour déterminer le type de serveur.
  • Un champ dans la table de liste de serveur qui désigne un serveur dans le tableau en tant que maître ou esclave

Répondre

0

J'ai trouvé une solution simple à mon problème. Je viens d'ajouter un fichier SLAVE à l'installation d'un esclave, et le programme vérifie si ce fichier est là. Si c'est le cas, il désigne ce serveur comme un esclave ..... totalement pensé à cela ...

2

Alors que vous pouvez rouler votre propre solution, votre meilleur pari est une sorte de cadre d'automatisation de serveur/app comme Puppet ou Chef. Personnellement, je préfère le chef, mais il y a beaucoup de soutien pour les deux. À tout le moins, vous pourriez probablement avoir un aperçu de la façon d'y parvenir vous-même :)

Plutôt que d'entrer dans une grande explication de ce qu'ils font, je vous suggère de consulter les sites pour chacun:

Cependant, voici les textes de présentation d'introduction de chaque site ...


Chef est un framework d'intégration de systèmes, conçu pour apporter les avantages de la gestion de la configuration à l'ensemble de votre infrastructure. Avec Chef, vous pouvez:

  • Gérez vos serveurs en écrivant du code, pas en exécutant des commandes. (via les livres de recettes)
  • Intégrez étroitement avec vos applications, bases de données, répertoires LDAP, et plus encore. (Via les bibliothèques)
  • facilement configurer les applications qui nécessitent des connaissances sur votre infrastructure (« Quels sont les systèmes en cours d'exécution de ma demande? » « Qu'est-ce que le serveur de base de données maître actuel? »)

Puppet est un un langage déclaratif pour exprimer la configuration du système, un client et un serveur pour le distribuer, et une bibliothèque pour réaliser la configuration. Plutôt que d'approcher la gestion du serveur en automatisant les techniques actuelles, Puppet recadre le problème en fournissant un langage pour exprimer les relations entre les serveurs, les services qu'ils fournissent et les objets primitifs qui composent ces services.Plutôt que de gérer le détail de la manière de réaliser une configuration ou de fournir un service donné, les utilisateurs de Puppet peuvent simplement exprimer leur configuration en utilisant les abstractions qu'ils ont l'habitude de gérer, comme service et noeud, et Puppet est responsable de la configuration. ou fournir suffisamment d'informations à l'utilisateur pour résoudre les problèmes rencontrés.

+0

Merci pour cela, jamais entendu parler de ceux-ci. Pas tout à fait le problème que j'essayais de résoudre, mais certainement une bonne connaissance à reporter! – rnavarro

+0

Pas de problème, heureux de partager :) –

Questions connexes