背景
您已应用微服务架构模式并将系统架构为一组服务。每个服务都部署为一组服务实例,以实现吞吐量和可用性。
问题
如何打包和部署服务?
诉求
- 服务使用各种语言,框架和框架版本编写
- 每个服务由多个服务实例组成,用于吞吐量和可用性
- 服务必须可独立部署和扩展
- 服务实例需要彼此隔离
- 您需要能够快速构建和部署服务
- 您需要能够约束服务所消耗的资源(CPU和内存)
- 您需要监视每个服务实例的行为
- 您希望部署可靠
- 您必须尽可能经济高效地部署应用程序
解决方案
使用部署平台,这是用于应用程序部署的自动化基础架构。它提供服务抽象,这是一组命名的高可用性(例如负载平衡)服务实例。
例子
- Docker编排框架包括Docker swarm模式和Kubernetes
- 无服务器平台,例如AWS Lambda
- PaaS包括Cloud Foundry和AWS Elastic Beanstalk
相关模式
- 某些部署平台提供Service Registry和服务器端发现
- 在内部,部署平台可能使用使用容器或虚拟机来部署服务。 Docker编排框架当然是明确的基于容器的