模式: 每个容器的一个服务实例

来源:互联网 发布:淘宝主图分辨率多少 编辑:程序博客网 时间:2024/05/29 12:35

原文地址:http://microservices.io/patterns/deployment/service-per-container.html


Context

您已经应用了Microservice架构模式,并将您的系统构建为一组服务。每个服务被部署为一组用于吞吐量和可用性的服务实例。

Problem

服务如何打包和部署?

Forces

•服务使用各种语言,框架和框架版本编写

•每个服务由多个服务实例组成,用于吞吐量和可用性

•服务必须可独立部署和可扩展

•服务实例需要彼此隔离

•您需要能够快速构建和部署服务

•您需要能够限制服务使用的资源(CPU和内存)

•您需要监视每个服务实例的行为

•您希望部署可靠

•您必须尽可能划算地部署应用程序

Solution

将服务打包为(Docker)容器映像,并将每个服务实例部署为容器

Examples

Docker正在成为一种非常受欢迎的打包和部署服务的方式。每个服务都打包成Docker映像,每个服务实例都是一个Docker容器。有几个Docker集群框架包括:

  • Kubernetes
  • Marathon/Mesos
  • Amazon EC2 Container Service

Resulting context

这种方法的好处包括:

•直接通过更改容器实例的数量来扩展和缩小服务。

•容器封装了用于构建服务的技术细节。例如,所有服务都以完全相同的方式启动和停止。

•每个服务实例都是隔离的

•容器对服务实例占用的CPU和内存进行限制

•容器构建和启动非常快。例如,将应用程序打包为Docker容器比将其打包为AMI的速度要快100倍。由于只有应用程序进程启动而不是整个操作系统,Docker容器的启动速度要比VM快得多。

这种方法的缺点包括:

•用于部署容器的基础架构不如部署虚拟机的基础设施那么丰富。

  • This pattern is a refinement of the Service Instance per Host pattern
  • The Service Instance per VM pattern is an alternative solution
  • The Serverless deployment pattern is an alternative solution.

阅读全文
0 0