PaaS中是否可能存在SOA云?

6
我目前正在设计一项新的服务云,使用面向服务的架构。其思路如下:
  • 一个包含10个服务的云。
  • 3层完全不同的业务逻辑(BL),可以自由地混合和匹配这些服务。
  • 业务逻辑处理授权和访问管理,而服务只接收并响应。
问题在于是否能够使用PaaS(最好是Heroku或Google App Engine)来实现这种设置,主要问题是如何拥有多个非公开服务,但同时又可从不同的应用程序(BL)中访问它们。
基本上:如何保护服务免受公共访问(最好不需要进行身份验证和令牌),但同时又让我的任何应用程序都可以访问它们?
2个回答

2
你可能想要查看WSO2云。它由一个应用程序云和一个API云组成。对于你的情况,你可以使用WSO2 API云来隔离你的服务云。你可以通过WSO2 API云公开你的服务云,并仅向你的租户域提供一些API。在WSO2应用云中,你可以部署你的公开可访问应用程序,它们可以使用被隔离到你的域的服务云API。
另外,WSO2应用云不仅提供托管,还提供开发平台。你可以从头开始开发服务和应用程序。它提供构建设施、数据库配置、编辑器等。
以上两个云都具有自动缩放能力(你不需要担心)。应用程序云提供开发、测试和生产环境,以管理你的应用/服务生命周期。WSO2 API云允许你不仅在开发者社区内创建、管理和发布你的API,还可以在云中共享它们。
更多信息请参阅: https://docs.wso2.com/display/AppCloud/WSO2+App+Cloud+Documentation https://docs.wso2.com/display/APICloud/WSO2+API+Cloud+Documentation 请注意,WSO2云目前是测试版服务。
免责声明:我在WSO2云工作。

1
对于在App Engine中使用SOA,我建议查看https://cloud.google.com/appengine/docs/python/microservices-on-app-engine
在GAE中,人们使用完全不同的项目或项目内的不同“模块”来进行服务,并且这些可以有不同的“版本”,用于AB测试和更容易的回滚。
一个模块及其不同版本都有单独的URL并使用HTTP进行通信。
使用模块确实意味着您最终会拥有共享的全局数据库,您需要记住不要以一种可能导致“共享数据库架构”的方式构建结构,例如每个服务库应该是访问该服务数据的唯一方法(尽量不要直接访问服务数据库的http接口/数据访问层)。
对于其他诸如任务队列之类的事物也是如此,您将能够让模块使用彼此的队列,因此您应该警惕并为每个模块的队列使用不同的命名空间。
使用Heroku,您可以选择使用完全不同的Heroku项目,这些项目使用配置环境变量的共享库来与其他代码的共享Heroku项目进行通信,或者使用一个大型Heroku项目。Heroku非常遵循http://12factor.net/,并且可以很好地设置使用他人的微服务addons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接