本文翻译自微软Docs, 内嵌译者多年使用的参悟,如理解有误,请不吝赐教。前端
微软与社区专家合做,开发了功能齐全的云原生微服务示例应用eShopOnContainers。
该应用旨在展现使用.NET、Docker以及可选的Azure,Kubernetes技术来构建电商平台。
git
简要回顾eShopOnContainers应用的业务功能和技术目标,eShopOnContainers示例应用表明一个出售各类实体产品的(例如T恤和咖啡杯)电商平台。github
电商平台要实现的一些基本功能:后端
示例应用还具备如下非功能性要求:安全
Web或移动客户端经过HTTPS访问ASP.NET Core MVC服务器程序或API网关程序
。服务器
API网关具备多种优点,例如将后端服务与各个前端客户端解耦,并提供更好的安全性。app
该应用程序还利用了BFF模式(服务于前端的后端)
,该模式建议为每一个前端客户端建立单独的API网关。微服务
上面的体系图演示了基于请求是来自Web客户端仍是来自移动客户端的API网关
。翻译
示例应用的功能被分解为许多不一样的微服务:设计
这些独立的服务都有其本身的持久化存储,没有能够与全部服务交互的单个主数据存储,
服务之间的协调和通讯是经过消息总线
来完成的。
每一个微服务根据其各自的需求独立设计。所以它们的技术堆栈是能够不一样的(目前服务均是.NET构建并为云设计)。
简单的服务提供了基本的建立、读取、更新、删除访问(CRUD),而更高级的服务则使用领域驱动设计方法
和模式来管理业务复杂性。
由于eShopOnContainers示例程序使用微服务,在其GitHub存储库中包含许多单独的项目文件。
除了独立的项目方案和可执行文件以外,各类服务还被设计为在独立的容器中运行。
下图显示了完整的Visual Studio解决方案,管理组织了各类不一样的项目。
该代码被组织为支持不一样的微服务,而且在每一个微服务中,代码分为领域逻辑、基础设施以及用户界面/服务端点。