服务部署-单实例单节点

1 定义

Single Service Instance per Host(单实例单节点)是一种常用的微服务部署模式,微服务的一个实例独立部署在一台主机之上,实例独占该主机运行。该模式有两种变体:Single Service Instance per VM(单实例单虚拟机)和Single Service Instance per Container(单实例单容器)。

2 上下文和问题

系统采用了微服务架构模式并将系统划分为一组服务,为了吞吐量和可用性每个微服务部署多个实例。考虑服务具有下面的特点,如何打包和部署服务是一项挑战:

  • 服务使用不同的编程语言,框架或不同版本的框架编写
  • 为了提高吞吐量和可用性,每个服务有多个实例
  • 服务必须独立部署和扩展
  • 服务实例互相隔离
  • 需要快速构建并部署一个服务
  • 服务使用的资源(cpu和内存)可控制
  • 监控每个服务实例的行为
  • 服务部署是可靠的
  • 尽可能经济高效的部署服务

3 解决方案

采用单实例单节点的模式部署服务实例,每个实例独占主机,两种相关的变体便是:单实例单虚拟机和单实例单容器,现在容器技术应用的越来越广泛,单实例单容器部署模式得到了广泛的应用。

3.1 单实例单虚拟机部署

将服务打包为VM镜像,每个服务实例都是使用该镜像启动的VM实例。


image.png

单实例单容器部署

将服务打包为容器镜像,并将服务实例以容器的方式部署。


image.png

4 优缺点

4.1 优点:

  • 服务互相隔离
  • 不存在资源和依赖冲突
  • 一个服务实例最多消耗一个虚拟/容器的资源
  • 监控、管理、部署服务的每个实例非常的简单直接

4.2 缺点:

  • 资源利用率不高
  • 需要更多的虚拟机/容器

你可能感兴趣的:(服务部署-单实例单节点)