2

我在使用Spring Cloud/Spring Cloud Netflix从单一的单一web服务到微服务集合的大迁移开始。通过我对微服务的研究,我明白服务之间的界限应该反映他们之间的关注点分离。影响分离的另一个因素是需要哪些服务单独扩展。微服务和云资源限制

作为具体的例子,这取决于粒度的需要的水平时,一个微服务环境最终可能是这样的:

  • (含有注册,登录,配置文件等)
  • 存储(含帐户产品,付款,报告,存货等)
  • 聊天/社会(含聊天室,用户状态等)
  • ...

或者它可以通过自己的微服务括号来表示每个关注的领域的结尾,例如:

  • 账户
  • 注册
  • 登录
  • ...

我相信微服务社区对于第二种方法有偏好,我倾向于同意。但是,我遇到的问题是托管和资源限制之一。

在迁移中,我想简化资源的供应和安装更新的服务。由于我们使用AWS堆栈,Elastic Beanstalk似乎是最佳选择。虽然研究Elastic Beanstalk虽然我很沮丧,发现每个帐户有25个应用程序的限制。不仅如此,EC2每个账户每个地区限制20个实例。看起来微服务架构很快就会达到这个限制,尤其是当您为每个服务添加多个环境(分段和生产)时,更不用说网站和内部工具了。

随着我在网络上看到有关微服务的所有令人惊叹的内容,我感到很惊讶,并且对于缺少关于超出其开发范围的实际托管微服务的信息感到有点失望。我错过了什么吗?有关于在AWS上部署多个微服务的任何信息吗?

我的理解是,Netflix使用AWS进行自己的微服务托管,除了要求亚马逊的额外资源并向其投资外,还有其他解决方案吗?他们的Asgard工具可以帮助解决这个问题(可能通过处理服务之间的实例共享)还是会导致相同的结果?

+0

AWS会很容易地提高这些限制。您可能还想查看ECS –

+0

您可以联系AWS以提高限制。我做了很多次这个过程比较快。他们只是想知道你的用例。 –

回答

3

正如上面的评论中提到的,如果您有合法的使用案例,AWS会提高您的限制 - 为什么他们不?他们正在出售你的服务。

但既然你问了比增加这些限制其他的建议,因为你是在设计解决方案的早期阶段,你应该考虑在泊坞窗或类似服务的另一个容器/容器基础的微服务架构的一部分(我自己喜欢的是AWS的容器服务)。根据您的解决方案的性质,即使在20个EC2实例(每个区域)的限制范围内,如果您有足够大的实例运行,您可以安装数十个(甚至数百个轻量级)码头映像,并在每个分配的20个实例上运行 - 因此可能会在这20个EC2实例上运行数千个被关闭的微服务。

对于您可能拥有的许多微服务中的每一种,使用整个EC2映像可能最终会比需要昂贵得多。

您还应该考虑在您的微服务体系结构的至少部分中使用AWS Lamba - 它也是由AWS提供的“超微服务”工具。

+0

只是为了进一步添加到上面的正确答案。从成本的角度来看,AWS ECS更具吸引力。最近发布的M4实例可能非常适合ECS群集。从直接经验来讲,这就是我们现在用于生产的东西。 – code