当实施微服务架构并保持服务非常小时,您很快就会有很多服务,为简单起见,我们说100。现在,当将每个服务部署到AWS nano实例时,这将花费约500美元/月,对于较小的项目或业余爱好者而言,这是一笔相当大的金额。 我还有哪些选项可以降低此价格,同时还能提供多项服务?
我考虑过将多个服务放在一个nano实例上(可能是dockerized)。我可以在一个纳米实例上轻松地适应~5个服务,因此价格会低5倍。我遇到的问题是,我必须管理很多事情,而且它似乎不能很好地扩展。是否有更好的方法或者网络服务为我做这个?
答案 0 :(得分:3)
微服务作为工具
您可能想要考虑的一件事是,微服务是否是低流量小项目的架构。
微服务架构是一种解决方案,例如高流量挑战和低流量单块可能是一种更具成本效益的方法。微服务也需要付出代价(全面复杂 - 设计,部署,服务发现和关系)。
请记住,您的微服务不应该太小,并且根据最佳实践,您应该使用它们覆盖单个域(https://martinfowler.com/articles/microservices.html),而不是仅仅为了一个域而将业务域拆分为多个微服务有微服务(除非这是一个你想要学习微服务架构工具的培训项目)。
我不确定您需要有多大的解决方案来挑战100个微服务,但也许您应该检查他们的设计并确保它们不会太小:)
有关此主题的简短文章 - Microservice Architectures: What They Are and Why You Should Use Them。
<强> LAMBDA 强>
除了微软服务之外,正如@Ashan建议的那样,对于低持续成本,您可能需要查看函数式编程/ lambda架构和serverless framework。再一次 - 由于无服务器框架部分地解决了一个复杂性(因为你在分离部署包方面比在微服务方面更深一层),但你有像AWS Lambda / Azure Functions / Google Functions这样的工具来运行你的作为服务和按使用付费(实际使用,而不是EC2中的预留)。
使用Docker和AWS ECS的微服务
如果您想坚持使用微服务,请查看Docker and Amazon EC2 Container Service。这将允许您有效地使用AWS EC2实例来运行多个微服务。您可能需要Application Gateway in front of AWS ECS来管理流量。
答案 1 :(得分:2)
AWS serverless stack将为您提供微服务项目的最低总拥有成本。
它主要涉及AWS API Gateway和Lambda,您只需为Opex而非Capex付款。