Microservices 用于低预算/低流量项目的微服务体系结构

Microservices 用于低预算/低流量项目的微服务体系结构,microservices,Microservices,当实现一个微服务体系结构并使服务保持非常小的规模时,很快就会有很多服务,为了简单起见,可以说有100个。现在,将每个服务部署到AWS nano实例时,每月将花费约500美元,对于较小的项目或爱好开发人员来说,这是一笔相当可观的费用在仍然能够提供多种服务的情况下,我有哪些选项可以降低此价格? 我考虑在一个nano实例上放置多个服务(可能已停靠)。我可以舒适地在一个nano实例上安装~5项服务,因此价格将降低5倍。我遇到的问题是,我必须管理很多事情,但它似乎不能很好地扩展。有没有更好的方法或web服

当实现一个微服务体系结构并使服务保持非常小的规模时,很快就会有很多服务,为了简单起见,可以说有100个。现在,将每个服务部署到AWS nano实例时,每月将花费约500美元,对于较小的项目或爱好开发人员来说,这是一笔相当可观的费用在仍然能够提供多种服务的情况下,我有哪些选项可以降低此价格?

我考虑在一个nano实例上放置多个服务(可能已停靠)。我可以舒适地在一个nano实例上安装~5项服务,因此价格将降低5倍。我遇到的问题是,我必须管理很多事情,但它似乎不能很好地扩展。有没有更好的方法或web服务可以为我做到这一点?

AWS将为您提供最低的微服务项目总体拥有成本

它主要涉及AWS API Gateway和Lambda,您只需支付运营成本,而不是资本支出。

AWS将为您提供最低的微服务项目总拥有成本


它主要涉及AWS API Gateway和Lambda,您只需支付运营成本,而不是资本支出。

微服务作为一种工具

您可能需要考虑的一件事是,微服务是否是低流量小型项目的架构

微服务体系结构是一种解决高流量挑战的工具,在低流量的情况下,整体式可能是一种更具成本效益的方法。微服务也是有成本的(全方位的复杂性——设计、部署、服务发现和关系)

请记住,您的微服务不应该太小,根据最佳实践,您应该使用它们覆盖单个域(),而不是为了拥有微服务而将业务域拆分为多个微服务(除非这是一个培训项目,您想学习微服务体系结构的工具)

我不确定要面对100个微服务的挑战,您需要多大的解决方案,但也许您应该检查它们的设计,确保它们不是太小:)

关于这个主题的文章又好又短

Lambda

撇开微服务不谈,正如@Ashan所建议的,为了降低持续成本,您可能希望了解功能编程/lambda体系结构和。同样,无服务器框架部分解决了一个复杂性(因为您在分离部署包方面比使用微服务更深入),但您可以使用/Azure Functions/Google Functions等工具将功能作为服务运行并按使用付费(实际使用,而不是EC2中的保留)

带有Docker和AWS ECS的微服务


如果你想坚持使用微服务,请查看。这将允许您有效地使用AWS EC2实例来运行多个微服务。您可能需要将微服务作为一种工具来管理流量。

您可能需要考虑的一件事是,微服务是否是低流量小型项目的架构

微服务体系结构是一种解决高流量挑战的工具,在低流量的情况下,整体式可能是一种更具成本效益的方法。微服务也是有成本的(全方位的复杂性——设计、部署、服务发现和关系)

请记住,您的微服务不应该太小,根据最佳实践,您应该使用它们覆盖单个域(),而不是为了拥有微服务而将业务域拆分为多个微服务(除非这是一个培训项目,您想学习微服务体系结构的工具)

我不确定要面对100个微服务的挑战,您需要多大的解决方案,但也许您应该检查它们的设计,确保它们不是太小:)

关于这个主题的文章又好又短

Lambda

撇开微服务不谈,正如@Ashan所建议的,为了降低持续成本,您可能希望了解功能编程/lambda体系结构和。同样,无服务器框架部分解决了一个复杂性(因为您在分离部署包方面比使用微服务更深入),但您可以使用/Azure Functions/Google Functions等工具将功能作为服务运行并按使用付费(实际使用,而不是EC2中的保留)

带有Docker和AWS ECS的微服务


如果你想坚持使用微服务,请查看。这将允许您有效地使用AWS EC2实例来运行多个微服务。您可能需要投入资金来管理流量。

为了缓解管理上的困惑,您可以选择CoreOS或Tectronix。您仍然可以使用EC2实例或其他IAAS,但可以在其上运行上述程序,以减轻对CoreOS或Tectronix的管理困扰。您仍然可以使用EC2实例或其他IAAS,但根据我的知识和经验,在Hi@Lech上运行上述程序Lambda可以极大地扩展和支持非常高的负载,因此它也适用于高流量的web解决方案。@Ashan,感谢您指出这一点。是的,我百分之百同意你,根据我的经验,lambda scales真的(真的)很好:)我不确定lambda用于低流量的建议是如何结束的。已经纠正了@Ashan虽然Lambda绝对可以扩展并支持高负载,但在Lambda上运行高负载时,成本会非常昂贵。在一定的规模上,运行一个能够处理请求的持久化服务器进程要便宜得多。这有几个原因,例如Lambda对每个调用收取100ms min的费用,即使您的端点需要50ms的响应时间。因此,与在box上运行的持久节点服务相比,存在大量浪费