架构模式: 服务实例与虚拟机一一对应
架构模式: 服务实例与虚拟机一一对应
上下文
您已应用微服务架构模式并将系统架构为一组服务。每个服务都部署为一组服务实例,以实现吞吐量和可用性。
问题
如何打包和部署服务?
要点
- 服务使用各种语言,框架和框架版本
- 编写每个服务包含多个服务实例
- 用于吞吐量和可用性服务必须是可独立部署的
- 可扩展的服务实例需要彼此隔离
- 您需要能够快速构建和部署服务
- 您需要能够约束服务所消耗的资源(CPU和内存)
- 您需要监视每个服务实例的行为
- 您希望部署可靠
- 您必须尽可能经济高效地部署应用程序
解决方案
将服务打包为虚拟机映像,并将每个服务实例部署为单独的VM
例子
- Netflix将每个服务打包为EC2 AMI,并将每个服务实例部署为EC2实例。999
结果上下文
这种方法的好处包括:
- 通过增加实例数量可以直接扩展服务。Amazon Autoscaling Groups甚至可以根据负载自动执行此操作。
- VM封装了用于构建服务的技术的详细信息。例如,所有服务都以完全相同的方式启动和停止。
- 每个服务实例都是隔离的
- VM对服务实例消耗的CPU和内存施加限制
- AWS等IaaS解决方案为部署和管理虚拟机提供了成熟且功能丰富的基础架构。例如,
- Elastic Load Balancer -
- Autoscaling groups
- …
这种方法的缺点包括:
- 构建VM映像既缓慢又耗时
关联的模式
- 此模式是每个主机模式的单个服务的细化
- 每个容器的服务实例模式是另一种解决方案
- 无服务器部署模式是另一种解决方案。
posted on 2019-08-02 15:47 yaofengspark 阅读(379) 评论(0) 编辑 收藏 举报