2016-06-25 2 views
-1

Je suis en train de concevoir un site Web en nuage pour une nouvelle solution que mon entreprise cherche à proposer. J'ai essayé de répondre à quelques questions et n'ai pas eu de chance, alors quand à Rome.Site Web entièrement évolutif avec micro-applications

D'abord, je ne veux pas que le site soit bloqué dans un cadre particulier. Je sais qu'il n'y a aucun moyen de prouver complètement l'avenir d'un site Web, mais je préférerais ne pas mettre tous nos œufs dans le même panier.

Deuxièmement, je veux avoir une séparation entre l'avant et l'arrière entièrement. J'ai une liste de raisons pour lesquelles je cherche à faire cela, je ne veux pas nécessairement entrer dans la conversation de ce qu'ils sont. Le rendu côté serveur est pour la plupart hors de question.

Alors, où cela me laisse-t-il? Mes premières réflexions sur la conception sont d'avoir une API REST accessible pour tous les appels d'API (cela pourrait être tourné vers GraphQL dans le futur).

Les décisions de conception que je suis le plus en train de prendre sont pour le frontal. Le site Web sera un système de type tableau de bord, où les locataires peuvent se connecter et voir des écrans pour eux. Je pensais que j'aurais une sorte de coquille, qui s'accroche à l'index.html. Cela aurait son propre routage, ce qui rendrait les micro-applications complètement séparées de la logique du shell.

Ainsi, par exemple, si je charge index.html, le chemin étant "/"

Il a quelques itinéraires que c'est responsable de, permet de dire "/ todos" "/ compte"

Si J'ai accédé à la route/todos, mon application shell rendrait cette application micro. Cette application serait complètement séparée du shell, à l'exception de certaines données qui pourraient être chargées via la fenêtre. Une fois cette application rendue via l'application shell. Donc, ma route todos, par exemple, pourrait être une application redux indépendante. Il pourrait avoir son propre routage, etc.

Est-ce une architecture courante? Y a-t-il des exemples de cela? Y a-t-il une meilleure façon d'y parvenir?

Merci pour votre avis!

Répondre

1

Cela ressemble à votre puits et vraiment sur l'ingénierie de cette bête.

Vous pouvez adopter une telle architecture pour une construction ÉNORME avec de nombreuses équipes de développement travaillant toutes séparément. Petite équipe agile, ce qui précède créerait beaucoup de frais généraux dans la norme et la douleur au cerveau dans la commutation de contexte entre chaque "application"

L'architecture de micro-service est vraiment génial. Ne le cassez pas trop petit, lisez bien votre cas d'utilisation et cassez vos services en conséquence.

Par exemple: nous sommes une équipe de 3.Nous avons une application assez grande ish conçu dans:

  1. Php API
  2. interface de gestion de backend (Redux)
  3. site web frontend (html, réagir, php)
  4. service de recherche (recherche élastique)
  5. cache (Redis)
  6. magasin de données (mysql)

Tous sur en mode multiple font conteneurs Cker sur plusieurs hôtes. Tirez vers le bas le backend .. Fine le site Web de frontend est encore opérationnel!

+0

Appréciez votre perspicacité. Je pense que je devais prendre de l'avance sur moi-même tout en pensant à la mise en place de micro-applications dans le futur, qui ne correspond peut-être pas au même cadre. – BJacobs

+0

Si vous futur preuve que beaucoup, le futur n'arrivera jamais ;-) – AndrewMcLagan