IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[4.x] Besoin d'avis


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut [4.x] Besoin d'avis
    Bonjour

    Je me permets de poster un message ici, car la communauté éclairé que vous êtes pourra peut-être m'aider à répondre à mes interrogations.

    Pour faire simple la société dans laquelle je travaille envisage la réécriture d'un de ses logiciels.

    A l'heure actuelle le logiciel est déployé chez 800 clients environ et sa réécriture n'est pas une mince affaire.
    Nous envisageons de le faire avec Symfony mais une question importante nous trotte dans la tête.

    Est-ce qu'il est envisageable de créer une espèce de super application capable de gérer ces 800 clients (800 BDD indépendante) ?
    Ou est-ce que la seule solution viable est la duplication du projet qui gérera sa propre base de données ?

    D'autres frameworks ou langages orientés Web seraient plus adaptés selon vous ?

    J'espère que ma demande est assez claire, sinon n'hésitez pas.
    Merci d'avance.
    Djilow

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Il faudrait en savoir plus mais un bdd par client semble être une erreur de conception.
    N'est il pas possible d'avoir qu'une seule base les 800 clients étant des utilisateurs de l'application, chacun ne voyant que ce qui le concerne ?

    Gérer 800 bases c'est possible mais ca semble fastidieux et dupliquer 800x l'application n'en parlons pas. Il faut bien penser que aujourd’hui c'est 800 mais peut être que demain ça sera 8000 ...

    A l'heure actuelle le logiciel est déployé chez 800 clients environ et sa réécriture n'est pas une mince affaire.
    Quand tu parle de logiciels c'est client lourd ou c'est déjà un applicatif php ?
    Quand tu dis déployé chez le client , c'est une installation par client , ou chaque client à accès au même applicatif via un navigateur ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Bonjour

    Merci pour le retour.

    C'est un client lourd effectivement, et nous aimerions faire en sorte de ne pas repartir sur ce modèle pour la nouvelle version.

    La base unique ne nous semble pas être une solution car comment faire un backup de celle-ci en cas d'un problème sur un client spécifique sans impacter les autres ?

    De plus vu le nombre d'enregistrements par client, j'ai peur que les requêtes soient fortement ralenties.

    Peut-être que nous devrions nous orienter vers un autre langage ou un autre framework plus à même de répondre à nos besoins

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    La base unique ne nous semble pas être une solution car comment faire un backup de celle-ci en cas d'un problème sur un client spécifique sans impacter les autres ?
    Quel genre de problème tu as en tête ?
    Si tout est centralisé (en mode SAAS) , la backup est valable pour tout le monde. Si il y'a un crash serveur , tu rebackup tout.
    Si c'est un utilisateur qui fait n'importe quoi (oups j'ai supprimer ça , alors que je voulais pas) c'est plus délicat effectivement. Il faudrait alors plutôt mettre n place un système d'historisation des actions pour pouvoir revenir en arrière sur certaines actions, ne pas réellement supprimer les données mais les rendres indisponibles , etc ...
    Maintenant je sais pas comment se comporterait un serveur de bdd avec 800+ base.Peut être que c'est pas un problème.
    Mais d'un point de vue maintenance c'est l'enfer. Une mise à jour doit être répercutée autant de fois que t'as de base , ça me semble quand même délicats.

    De plus vu le nombre d'enregistrements par client, j'ai peur que les requêtes soient fortement ralenties.
    C'est un faux problème. Une base bien conçu ça supporte plusieurs millions d'enregistrements sans aucun problème particulier et sans différence de performance entre 10 et 10M d'enregistrements.

    Peut-être que nous devrions nous orienter vers un autre langage ou un autre framework plus à même de répondre à nos besoins
    Tu vas avoir les même contraintes quelque soit le langage et avec ce que tu présente pour le moment PHP et/ou Symfony ne sont pas forcément un mauvais choix.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Il est tout a fait possible de travailler avec plusieurs BD avec Symfony 4 comme avec Laravel ou n'importe quel autre framework PHP. N'importe quel langage( PHP y compris) couvre votre cas d'utilisation.La seule limite de PHP dans le cas des multiples BD c'est le support des transactions distribuées(XA) que PHP ne supporte pas mais dans votre vous n'aurez pas besoin de XA.

    2 approches se dégagent dans le cas d'un seul projet Symfony et 800 BD:

    - Associer la BD au nom de domaine( ou sous domaine) du client:
    en effet chaque virtual host(vhost) doit pouvoir définir la config de sa BD( bd, user, password,port) au moyen des variables d'environnement apache du serveur Web( apache ou nginx). Symfony va directement lire les variables d'environnement apache puis va les passer à doctrine. Symfony n'aura pas besoin de lire la config de la BD de son propre fichier de config(fichier .env).
    Cette approche offre des avantages notamment sur la performance car l'application se comporte comme si elle avait une seule BD. Pas besoin de spécifier la BD à choisir pour chaque requête SQL.
    Après pour créer 800 domaines ou sous domaines( y compris ssl/tls) il y a des outils qui te permettent d'automatiser ces tâches depuis ton poste client.

    - Persister l'information de la BD à choisir pendant la connexion de l'utilisateur:
    Ici la BD sera choisie en fonction de l'utilisateur connecté.Cela consiste à créer une nouvelle BD, BD par défaut, qui va contenir les utilisateurs et chaque groupe d'utilisateur sera associé à la BD du client. A la connexion de l'utilisateur, il faut identifier son groupe pour en déduire la BD associée.
    Cette approche n'a que des inconvénients car chaque requête SQL nécessite d'aller lire dans le fichier de config Symfony pour choisir une BD parmi les 800 (et le jour où y en aura 8000?).

    La doc Symfony te donne un exemple de config de doctrine pour le multiple database

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Bonjour

    Désolé j'étais en déplacement à l'étranger depuis quelques jours d'où ma réponse tardive.

    Encore merci pour ces toutes ces précisions.

    armel18 je vais aller faire un tour du côté du lien que tu as noté dans ta réponse.

    Je vois aussi que vous parlez du Framework Laravel, celui-ci semble plus simple à appréhender que Symfony ? Est-ce le cas ?

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Je vois aussi que vous parlez du Framework Laravel, celui-ci semble plus simple à appréhender que Symfony ? Est-ce le cas ?
    c'est certain que la courbe d'apprentissage de Symfony est bien plus élevée que celle de Laravel. C'est donc un élément à prendre en compte au moment de choisir un framework.Après Symfony 4 s'inscrit dans la mouvance des micro-framework censés faciliter la création des API REST.

Discussions similaires

  1. Besoin d'avis sur PC
    Par ren29 dans le forum Ordinateurs
    Réponses: 28
    Dernier message: 11/12/2005, 21h32
  2. Besoin d'avis sur un offre d'embauche en SSII
    Par Anne_so2121 dans le forum SSII
    Réponses: 14
    Dernier message: 25/07/2005, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo