aws-lambda - 如何在AWS无服务器架构中设计和构建微服务?

标签 aws-lambda microservices serverless

我对微服务和 AWS 无服务器架构的概念完全陌生。我有一个项目,必须将其划分为应在 AWS Lambda 上运行的微服务,但我在如何设计它方面遇到了困难。

在搜索时,我找不到有关如何划分和设计微服务的有用文档,我看到的所有文档都将单体应用程序与微服务应用程序进行比较或在 aws lambda 上部署微服务。

就我而言,我必须开发一个 ERP(企业资源规划),它必须管理客户、管理库存、管理书籍、管理命令……所以我应该为客户提供服务,为书籍提供服务……并且然后,如果我注意到两个微服务之间有很多依赖关系,那么我会将它们合二为一? 对于数据库来说,对所有微服务使用一个数据库(dynamoDB)而不是对本例中的每个服务(ERP)使用一个数据库好吗?

非常感谢任何帮助。 如果有人有可以帮助我的有用文件,我将非常感激。 非常感谢。

最佳答案

我认为您的数据和服务的架构可能取决于以下几点:

  1. 使用/可用哪些数据源
  2. 您的要求/所需功能是什么
  3. 业务逻辑或任何其他限制/问题

为了减少服务的大小,我们希望将应用程序或其他服务访问该服务的原因限制为尽可能少。这减少了管理它的总体维护量,并且在使用其部署时为您提供了很大的灵活性。

例如:从多个源转换数据并通过 API 提供数据的服务可以使用具有新的、更干净的数据源的数据处理服务拆分为一个 API。这将防止过度依赖大型、较旧的服务和数据,并使应用程序更轻松地集成较新、较小的服务。

在您的场景中,您可能不需要单独管理客户、账簿和股票的服务,但这也取决于您的数据源的集成方式以及您已经可以使用哪些服务。您可能希望创建其他微服务或数据库来帮助减小大小并将数据组织成您想要的格式。

根据您的业务需求,组合或保持单独的两个微服务也可能取决于不同的事情。这些服务之一是否有可能对其他应用程序有用?它专门用于特定项目吗?保持服务独立、小型且集中,为您提供了根据需要扩展或缩小内容的空间。数据源也是如此。

总是有很多方法可以实现它。在选择某种工具来创建解决方案之前,首先考虑您的需求/问题是什么。

关于aws-lambda - 如何在AWS无服务器架构中设计和构建微服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59567934/

相关文章:

amazon-web-services - 在AWS lambda中运行 'git'

aws-lambda - 由于配置错误 : Invalid permissions on Lambda function,执行失败

microservices - SNS+云形成

google-cloud-functions - 如何在 8.0 版中使用 `target: "无服务器”`通过 Next.js 正确实现无服务器 SSR

amazon-web-services - AWS APIGateway Lambda代理集成-由于配置错误: Invalid permissions on Lambda function,执行失败

java - 在没有任何第三方客户端的分布式应用程序中使用什么 Oauth2 授权类型?

design-patterns - 微服务 : aggregate data : is there some good patterns?

amazon-web-services - 通过 ALB 和 Lambda 集成提供二进制响应

c# - 使用 Visual Studio 部署时如何将 Azure Functions 设置为最初禁用

node.js - 如何使用无服务器框架从另一个 lambda 异步调用 lambda