协调微服务和多容器应用程序以实现高可扩展性和可用性
如果您的应用程序基于微服务或只是跨多个容器拆分,那么使用面向生产的应用程序的编排器是必不可少的。如前所述,在基于微服务的方法中,每个微服务都拥有自己的模型和数据,以便从开发和部署的角度来看它是自治的。但是,即使您有一个更传统的由多个服务组成的应用程序(如SOA),您也将有多个容器或服务,这些容器或服务由一个需要作为分布式系统部署的业务应用程序组成。这些类型的系统在扩展和管理方面很复杂;因此,如果您想要有一个生产就绪且可扩展的多容器应用程序,您绝对需要一个编排器。
图23展示了部署到由多个微服务(容器)组成的应用程序集群中的过程。
图23 容器集群
为每个服务实例使用一个容器。Docker容器是“部署单元”,容器是Docker的实例。主机处理许多容器。这看起来是一种合乎逻辑的方法。但是,如何处理负载平衡、路由和编排这些组合应用程序?