如何在app引擎中设置简单的微服务架构

时间:2016-05-06 20:20:01

标签: python google-app-engine

我已成功在应用引擎中设置了一个应用。 现在我想部署2-3微服务和

阅读一些关于这个主题的文章,但我真正想要的是一个简单的教程。

https://cloud.google.com/appengine/docs/python/modules/converting

任何人都可以发布一个简单的文件结构来说明如何执行此操作:

  • 的app.yaml
  • micorservice1
    • folder1中
      • LIB1
      • LIB2
    • 文件夹2
    • HTMLS
    • JS​​
    • CSS
    • app1.py
  • micorservice2
    • folder1中
      • LIB1
      • LIB2
    • 文件夹2
    • HTMLS
    • JS​​
    • CSS
    • app2.py
  • index.yaml中

但app.yaml究竟是什么?

如何准确地部署到每个微服务?

如何在微服务之间启用INTERNAL通信?我不希望直接向他们拨打外部电话,而是通过负载均衡器。

2 个答案:

答案 0 :(得分:7)

要求教程是关于SO的主题;)

微服务可以轻松实现为services(或modules,因为它们曾经被调用过。)

此Q& A 可能有助于你的目录结构研究 - New project structure for Google App Engine

每个模块都有自己的.yaml配置文件,其内容取决于模块应该执行的操作。传统上(单模块应用程序)文件名为app.yaml,该名称实际上不是强制性的:Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?

每个模块将作为单独的实例运行。多模块应用程序中的部署是通过指定要部署到部署实用程序的模块的.yaml文件来完成的。你在上面提到的帖子中有一个例子。

可以轻松实现模块间通信,例如使用任务队列。只能通过内部访问保护:GAE task, are the urls secure by design?

另见Microservices Architecture on Google App Engine

答案 1 :(得分:5)

到2018年,您可以在项目中创建多个服务。这些服务只不过是微服务。早些时候,GCP拥有微服务模块的概念。

例如:

GAE灵活的应用程序,app.yaml为

运行时:自定义
环境:flex

可以使用命令部署:
gcloud app deploy

此命令将启动服务为'default'的应用程序。它可以通过URL访问 - > http://your-project-id.appspot.com
您可以在Google Cloud Console上验证这一点。按照导航器链接App Engine - >服务

同样,您可以使用app.yaml作为(附加参数 - 服务)在同一项目中启动另一项服务

运行时:自定义
环境:flex service:your-service-id

可以使用相同的命令再次部署它:
gcloud app deploy

这将启动一个服务ID为your-service-id的新应用程序。可以通过网址http://your-service-id-dot-your-project-id.appspot.comhttp://your-service-id.our-project-id.appspot.com

访问该服务

按照相同的方法在同一个项目中创建更多服务。每个服务都是一个应用程序,它有自己的app.yaml