Amazon web services 微服务爆炸的治理方法

Amazon web services 微服务爆炸的治理方法,amazon-web-services,architecture,aws-lambda,microservices,Amazon Web Services,Architecture,Aws Lambda,Microservices,微服务是现在的趋势,其中大部分是在云上开发的。我遇到的情况是,我们正在将大多数单片服务分解为域级微服务。每个问题域都只有少量服务 在Amazon云中,每个单独的服务将进一步实现为多个lambda函数。因为将有100个函数每个函数执行特定类型的活动,由每个管道作业部署 在不久的将来,功能量可能会增加到1000秒左右。相比之下,我们现在有40个单片应用程序是否有任何方法可以分组、可视化、客户使用指标、成本等? 这种情况与我们在早期版本spring framework中看到的xml地狱相似或复杂。AW

微服务是现在的趋势,其中大部分是在云上开发的。我遇到的情况是,我们正在将大多数单片服务分解为域级微服务。每个问题域都只有少量服务

在Amazon云中,每个单独的服务将进一步实现为多个lambda函数。因为将有100个函数每个函数执行特定类型的活动,由每个管道作业部署

在不久的将来,功能量可能会增加到1000秒左右。相比之下,我们现在有40个单片应用程序是否有任何方法可以分组、可视化、客户使用指标、成本等?


这种情况与我们在早期版本spring framework中看到的xml地狱相似或复杂。

AWS Lambda支持标记。这是理解Lambda标签计费的最简洁的方法

您可以标记您的微服务以进行成本分配和计费

更多信息:


希望有帮助。

AWS Lambda支持标记。这是理解Lambda标签计费的最简洁的方法

您可以标记您的微服务以进行成本分配和计费

更多信息:


<>希望有帮助。

< P>首先,如果你要搬到LAMBDA上的微服务,你可能想考虑一个框架,比如圣杯。这将有助于减少服务的蔓延,有些情况下,但每种情况都是不同的,所有这些都取决于您在哪里绘制有界上下文

从一个与你所从事的工作类似的经历来看,你会希望在几个领域进行大量投资。首先,拥有一致的日志记录方法是关键。您希望将日志一致地发送到单个日志聚合服务,以便可以轻松地跨所有服务进行查询以获取度量。CloudWatch、相扑逻辑等可以帮助解决这个问题。还可以使用X射线获得更详细的信息

您还想考虑在Ci/CD管道中添加一些自动化,以生成SWAGER或类似的文档。这应该以一种结果是可搜索目录的方式来完成 提供所有服务,并提供所有必要的文件。我的经验涉及到在每个构建作业中生成和部署的Swigger UI和一些自定义HTML

最后一个建议是投资于测试。契约测试和向后兼容性测试是避免部署破坏性更改的关键。我还将添加功能切换作为另一个可以在这里手拉手的键


祝你好运 从一个与你所从事的工作类似的经历来看,你会希望在几个领域进行大量投资。首先,拥有一致的日志记录方法是关键。您希望将日志一致地发送到单个日志聚合服务,以便可以轻松地跨所有服务进行查询以获取度量。CloudWatch、相扑逻辑等可以帮助解决这个问题。还可以使用X射线获得更详细的信息

您还想考虑在Ci/CD管道中添加一些自动化,以生成SWAGER或类似的文档。这应该以一种结果是可搜索目录的方式来完成 提供所有服务,并提供所有必要的文件。我的经验涉及到在每个构建作业中生成和部署的Swigger UI和一些自定义HTML

最后一个建议是投资于测试。契约测试和向后兼容性测试是避免部署破坏性更改的关键。我还将添加功能切换作为另一个可以在这里手拉手的键


祝你好运

如果不需要将应用程序拆分为许多不同的Lambda函数,那么您不应该也不应该这样做。拥有不同Lambda功能的唯一原因是您需要强制执行不同的基础结构或安全要求

Lambdas与任何普通函数一样,将
事件
以及
上下文
作为输入。如果您在Lambda前面使用API网关,则会找到
路径
httpMethod
queryStringParameters
等。AWS生成了许多库,这意味着您不需要重构应用程序代码,并且可以将此事件转换为应用程序理解的HTTP请求

一个应用程序可以是一个Lambda函数。您还可以将库依赖项分解为多个层,这样还可以在简化CI/CD以获得文件大小限制时加快部署

您也不需要在API网关中定义每个API方法,只需使用
proxy
integration即可

在我看来,这是唯一明智的方法。随着需求的出现,您会相应地调整您的基础结构和Lambda,因此,如果您需要一个API调用来获得更长的超时时间,您可以定义此方法和一个新的Lambda函数。例如,如果一个
报告
端点应该只有读取权限,这将再次触发您创建另一个Lambda函数,该函数可能只在您使用的
iam
角色中有所不同。考虑使用无服务器框架或AWS山姆来减少您需要的锅炉板,这意味着您可以再次使用相同的S3 zip文件来减少维护。

我强烈建议您不要部署许多不同的Lambda功能,这将是一个需要支持的噩梦,将导致单个应用程序的不一致性,并在一个应用程序中协调部署