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

Architecture Discussion :

architecture microservice - compréhension


Sujet :

Architecture

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Points : 199
    Points
    199
    Par défaut architecture microservice - compréhension
    Bonjour,

    Je travaille sur une application web depuis un an (développement MEAN). On est sur une architecture classique monolithique et on commence à avoir des problèmes de charges (à cause de certaines parties uniquement) de l'application ainsi que des mises en prod difficile du fait du nombre de fonctionnalités présente.

    Du coup je me renseigne sur les architectures micro-services. Je pense avoir pas trop mal compris le concept et que ça correspondrait à mon besoin puisque je pourrais isoler les fonctionnalités sujettes aux problèmes de charge pour leur affecter plus de moyens.

    Ce que je ne comprend pas par contre c'est comment c'est géré niveau bdd. Il est marqué partout qu'il faut essayer au maximum d'avoir une base de donnée par service. Ça à priori ça ne me pose pas de soucis, on a donc des services qui ont à la fois un serveur web et une base de donnée. Mais du coup quand il y a monté en charge et qu'on rajoute des services, on rajoute à la fois le serveur web et la bdd. Et dans ce cas comment se passe la réplication des données?

    Si je prend l'exemple qu'on voit sur bcp de tuto du service pour gérer les commandes d'un site. On a une grosse monté en charge on double le service. Comment ce qui est enregistré sur la bdd1 se retrouve sur la bdd2 et inversement?

    Merci.
    Avec un bout de code ou une URL on vous aide plus facilement

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Salut,

    J'ai travaillé sur du microsevrice docker aws entre autre pour casser un monolythe php. L'avantage c'est que tu utilises la techno que tu veux chaque microsevrice est indépendant golang/php ... Pour la base de données https://microservices.io/patterns/da...r-service.html tu as des containers je ne crois pas que le containers de la base de données soit avec le containers de l'application. Après la force des containers c'est que avec la plus part des solutions cloud si tu as une monté en charge pour un microservice il suffit alors juste d'allouée plus de ressources pour ce microservice.

    Le problème c'est pour le refactoring, le management des solutions quand tu as beaucoup de microservices et bien d'autre

  3. #3
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    C'est une DB par service(donc un modèle physique par bouded context), pas par instance de service, ça veut dire que si tu scale horizontalement ton service, ils sont tous connectés sur la même DB.

    Tu peux aussi faire du scaling horizontal de ta persistence, mais ce sont d'autres techniques, indépendants de la notion de micro-service.

    Il y a également d'autres solutions pour la DB: une archi CQRS pour séparer la lecture de l'écriture, un broker qui fait buffer pour les écritures...
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Points : 199
    Points
    199
    Par défaut
    Merci à tous les deux.

    L'info que j'avais pas c'est que le container de la bdd est un container différent. Du coup effectivement en faisant ça quand on augmente le nb de serveur web ça n'augmente pas le nb de serveur bdd.

    Et si on veut scaller la bdd on met en place un système classique.

    Top!

    Merci.
    Avec un bout de code ou une URL on vous aide plus facilement

  5. #5
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    La première étape c'est d'abord d'être capable de lancer plusieurs instance de ta stack monolithique.

    Cette courte conf devrait t'aider :

    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    Juin 2012
    Messages
    859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 859
    Points : 2 449
    Points
    2 449
    Par défaut
    lance plusieurs instance de ta stack avant de penser
    a une stack microservice.....

    tu peux commencer à refactoriser ton application en une architecture hexagonale... externaliser la partie qui cause problème dans un ms dans un premier temps....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/08/2021, 22h14
  2. Réponses: 8
    Dernier message: 10/03/2016, 14h41
  3. Support de cours sur une introduction aux architectures microservices
    Par Mickael Baron dans le forum Architecture
    Réponses: 4
    Dernier message: 25/02/2016, 22h37

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