面向服务的体系结构(SOA)是一个过度使用术语,对不同的人有不同的含义。 但作为一个共同的分母,SOA 意味着通过将应用程序分解为多个服务(通常为 HTTP 服务),将其分类为不同类型的(例如子系统或层)。
这些服务现在可以部署为 Docker 容器,这解决了部署问题,因为所有依赖项都包含在容器映像中。 但是,如果需要纵向扩展 SOA 应用程序,如果基于单个 Docker 主机进行部署,则可能面临可伸缩性和可用性挑战。 这是 Docker 群集软件或业务流程协调程序可帮助你的地方,如后面的部分所述,其中介绍了微服务的部署方法。
对于传统的面向服务的体系结构和更高级的微服务体系结构,Docker 容器非常有用(但不需要)。
微服务派生自 SOA,但 SOA 不同于微服务体系结构。 大型中央代理、组织级别的中央业务流程协调程序、 企业服务总线(ESB) 等功能在 SOA 中很常见。 但在大多数情况下,这些模式是微服务社区中的反模式。 事实上,有些人认为,“微服务架构是做好了的SOA。”
本指南重点介绍微服务,因为 SOA 方法的规范性低于微服务体系结构中使用的要求和技术。 如果知道如何生成基于微服务的应用程序,还知道如何构建更简单的服务型应用程序。