0

Im confus au sujet de ces trois différentes constructions dans google cloud et en essayant de comprendre comment ceux-ci s'emboîtent. D'abord, d'après ce que j'ai lu "modules" sont juste l'ancien nom pour "services" droit? Donc tout ce que je lis sur les "modules" google cloud s'appliquerait aussi aux services?Google Cloud modules vs namespaces vs services

Utilisez-vous les espaces de noms ET les services/modules ensemble ou sont-ils généralement mutuellement exclusifs?

Est-ce un bon exemple de la façon d'utiliser ces choses ensemble:

  • Mettre mes ressources partagées (stockage, DB, etc) dans un « espace de noms » et ainsi plusieurs modules/services peuvent y accéder. "Toute requête App Engine peut accéder à n'importe quel espace de noms", les ressources d'espaces de noms sont donc liées par leur conteneur de projet.
  • Créer des « services » qui ont accès aux ressources namespaced
  • Tout cela est en un seul « projet » qui est utilisé comme un environnement (donc j'aurais un projet « dev » et un « prod »

Répondre

1

, services et modules sont la même chose Notez le chemin d'URL réelle à l'intérieur de cette citation de App Engine Services as microservices.

Dans un projet App Engine, vous pouvez déployer plusieurs microservices comme services séparé, précédemment connu sous le modules dans App Engine.

espaces de noms sont pris en charge par just a few APIs que les services peuvent invoquer:

App Engine prend actuellement en charge les API dans les espaces de noms suivants:

Ils sont vraiment juste une façon de séparée/tranche (pas parts) données desservies par ces API et peuvent aider à prévenir les fuites de données accidentelles à travers les limites d'espace de noms. Voir par exemple Implementing Multitenancy Using Namespaces. Mais notez que la protection est aussi bonne que le code de l'application (les données vont fuir si le code ne définit pas le bon espace de nom). Les services n'offrent pas l'isolation des données, ils peuvent partager des données indépendamment du fait qu'ils se trouvent dans un espace de noms ou non, en définissant de manière appropriée l'espace de noms lors de l'appel de l'API respective. Donc, il ne place pas de données dans un espace de noms qui rend cette donnée partageable entre les services.

Les limites de projet s'appliquent à la fois aux espaces de noms et aux services.Mais il est possible de configurer les API et les projets pour autoriser l'accès même à travers les frontières du projet (voir par exemple How do I use Google datastore for my web app which is NOT hosted in google app engine?)

L'objectif principal de l'utilisation des services est d'obtenir l'isolation de code. Mais il a un prix - chaque service a ses propres instances. Aussi un peu plus difficile: les docs et même les outils sont souvent un peu en retard, beaucoup d'entre eux supposent un contexte d'application GAE à service unique.

Même si l'utilisation de services pour créer des environnements est proposée comme alternative dans Naming Developer Environments, je voudrais, comme vous le mentionnez, utiliser des projets séparés pour cela (pour avoir également l'isolation des données).