Forum général.général Elaboration Projet loadbalancing serveur frontaux server de données répliqués ou clustering + sauvegarde

Posté par  .
Étiquettes :
0
12
sept.
2006
Bjr,

j'ai un projet de construction d'un site, mais avant de me lancer
j'aurais bien avoir un aiguillage .

Voici ce que je me suis décidé à faire :

Monter une architecture qui permette d'avoir un débit confortable
tant au niveau des users connectés que des requetes surportés par les serveurs qui vont gérer les bases données, avec une sauvegarde derrière.

Pour ce faire je pense me tourner vers une architecture en mode load balancing,: avec des serveurs frontaux load balancés , un serveur qui fera office de load balancer ( plus une copie de serveur en mode actif au cas ou le load balancer tombe ) et deux serveurs de donnée répondant aux réquetes sur un même réseau ( load balancés eventuellement avec un autre serveur à voir avec les nodes )

Je pesne me tourner vers Postgresql ou mysql pour les serveurs de données.

Les serveurs frontaux répondront à du http sur des domaines qui peuvent être différents ( eg : http://www.voicilesite.Com et http://www.celuila.com ) sans réelle limite de nombre domaine pouvant être inclus.

Ces domaines seront stockés sur les serveurs frontaux load balances et interrogeront les serveurs mysql ou postgresql pour répondre aux requetes optimisés.

Je suis un peu perplexe quand à la méthodologie à employer mais je pense gràce à cette architecture pouvoirr travailler tranquillement au déploiement ; mais quelques interrogations subsistent :

Pour les serveurs frontaux :

solution software ?
choix de réplicaton? solution comme openssi?
solution matériel ? ( cisco .. )

comment lors de mise à jour de code mettre à jour les deux serveurs ( ou plus ) administrés à distance ?


Pour les serveurx de données :

j'aurais problablement besoin de procédure stockée pour mysql ou postgresql mais :

comment décider quelel solution prendre pour avoir au miminum
deux serveurs répondant aux requetes ( l'un tombe l autre prend sa place ou les deux répondent simultanément ce qui peux poser des problèmes avec la gestio ndes sessions et donc un code en amont prévu pour )

choix de réplication ?
choix de clustering ?// indique une loadbalancer suppplémentaire
fiabilité des données ?

concernant la sauvegarde :

choix d'un serveur de sauvegarde annexe pour sauvegardés les bases de données et le contenu des serveurs frontaux.

Evidemment il a un question de cout derriere, pour pourvoir démarrer l'activité sereinement et j'avais pensé prendre des serveurs dédiés à coût faible , ce qui me permettrait d'en ajouter au fûr et à mesure des besoins.

Voila j'espère que quelques conseils ou partage d'expérience sur ce sujet délicat pourront m'aider à y voir plus clair...
MERCI
  • # Quelques pistes

    Posté par  . Évalué à 2.

    Bonjour,

    Voici quelques pistes (non exhaustives) :

    Utiliser les scripts d'UltraMonkey en commencant par exemple par ( http://www.ultramonkey.org/3/topologies/sl-ha-lb-overview.ht(...) ) avec 2 machines virtuelles (vmware, vserver, xen ...) pour faire quelques tests.

    Ces scripts gèrent très bien le load-balancing pour les requetes http et pour mysql.

    => installation de xen vmware ou vserver au choix
    => installation de 2 serveurs virtuels
    => installation d'UltraMonkey
    => installation d'apache (http://www.debianhelp.co.uk/ultramonkey.htm)
    => installation de mysql ( http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql(...) ) par exemple. Cherche "circular replication mysql" et tu trouveras surement ton bonheur (Attention toutefois, va sur le site de mysql, lis un peu leur doc sur les avantages inconvenients d'une telle solution pour un cluster ! choisit bien ta version de mysql aussi !)

    et faire des tests de load balancing (cherches un peu de doc sur mysql + ultramonkey , tu trouveras facilement des info pour la conf à faire).

    Pour la replication Mysql, c'est dans la poche si tu as réussis à comprendre la doc ci-dessus.
    Pour la réplication d'Apache... je suis sur que tu réussiras à écrire quelques scripts avec du rsync dedans ;)

    Une fois que toutes tes install et tout tes tests sont concluant, tu peux pousser un peu la config en regardant par la : http://www.ultramonkey.org/3/topologies/hc-ha-lb-overview.ht(...) ... encore quelques machines virtuelles pour les test ;)

    Pour la sauvegarde... des bases Mysql, si tu a compris comment répliquer A -> B -> A tu sauras surement comment faire A -> B -> (A && C) 'C' étant le serveur de sauvegarde
    Pour la sauvegarde des apaches... bah scripts rsync comme pour la réplication ;)

    bonnesssss installssss

    P.S. Même si tu n'ulises pas UltraMonkey, essaie les machines virtuelles avant d'aller plus loin, ca ne coute pas très cher et ca permet de tester ta solution de cluster
    • [^] # Re: Quelques pistes

      Posté par  . Évalué à 1.

      merci grandement , je pars à l'assaut )
      • [^] # Re: Quelques pistes

        Posté par  . Évalué à 1.

        - bjr

        Voici que maintenant et pour être compétitif sur un marché international, je veux désormais internationaliser mon application.

        Par reconnaissance ip + detection des variables passées par le navigateur , en utilisant une solution à base de laodbalancing je me suis posé la question à savoir si je pouvais louer des serveur hebergés à différents endroits géographiquement différents

        Ceci afin de diminuer le temps d'accès des visiteurs en fonction des marchés que je veux conquérir.

        Avec ivs il semble qu'une solution permette de faire du laodbalancing via tunneling de manière assez baique qui pourriat me convenir dans un premier temps.

        ainsi il peut être envisageable de router vers des serveurs situés aux U.S. pour mon application de cuisine Française ainsi traduite..

        Le visiteur US arrive sur mon loadbalancer celui ci detecte ( si possible ) sa provenance , sa langue; passe ensuite les variables nécessaires qui vont bien et renvoi celui ci vers l'un de serveurs US.

        Idem pour un visiteur Français..

        Les serveurs US vont donc répondre à cet utilisateur, et le gérer de manière autonome.

        Les contenus des différents serveurs frontaux vont donc avoir tous le même contenu synchronisé avec tel ou telle méthode.

        C'est la seul solution que j'ai trouvé pour démarrer avec des coûts pas trop énormes mais il y deux questions majeurs :

        Pour mon système les utilisateurs qui visitent les sites

        non reconnus ( non enregistrés )

        pourront avoir des variables stockés sur le cookie mais de manière légère ( type ajax léger ), et néanmoins des sessions possibles..( je pense passer le maximun de données via url )

        ils interoggent donc le sgb uniquement en mode lecture.

        Ma question est :

        une fois le site frontal prenant en charge un visiteur, comment se comporte ensuite le loadbalcaner pendant la navigation du visiteur ? laisse t il le serveur frontal s occuper du visiteur jusqu'a un time out ? ou bien reprend t il "la main" à chaque changement de page ? peut on parler de connection persistante ( de serveur j'entends pas sgdb ). Ma question est surtout de savoir si l'utilisateur ne risque pas se retrouver gérer par un autre serveur quelques minutes après le début de sa navigation, un élement à prendre enn compte au niveau du dépoiement du software..



        Les serveurs frontaux n'ont pas de contenus de sgbd ( ou bien on peut envisager qu'il soit également slave SGBD d'un modele repliqué pour la lecture ?)


        Les serveurs frontaux doivent quand meme interrogger le sgbd qui lui ( vu le cout de la répication,sauvegarde et maintenance ) sera herbergé en un seul point .


        En mode réplication, le serveur master sera d'une plus grande capacité et sera autorisé à répondre uniquement au serveurs frontaux et au serveurs slave, mais là je suis un peu perdu av ec cette architecture, ne vais pas perdre du temps en connection si certains des frontaux interrogent le sgcb en wan en mode écriture depuis un point géographiquement éloigné ?

        Pour les utilisateurs qu i s'enregistrent ( login + pass ) le cookie sera utilisé et obligatoire pour bénéficier de leur interface d'admin.

        Je pense que l'on aura pour le SGBD 60% lecture , et 40 % écriture, dont 25 % d'écriture par le système lui même ( cron job de fichiers externes ) et 15 % par les utilisateurs eux mêmes.

        Les images j'aimerais pouvoir les stocker sur un autre type de serveur pas sous apache mais quelque chose de plus simple et plus rapide, akaima certe c est bien mais hors busdget j ep ourrais imaginer additionner des serveurs fontaux pour cela , completement isolé par domaine géographique..

        Si vous pouviez me donner vos points de vues sur le sujet , would be cool !

        merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.