另请查看有关微做事的其他NGINX资源:
A very useful and popular series by Chris Richardson about microservices application designThe Chris Richardson articles collected into a free ebook, with additional tips on implementing microservices with NGINX and NGINX PlusOther microservices blog postsMicroservices webinarsMicroservices Solutions pageTopic: Microservices先容NGINX从一开始就参与了微做事运动。 NGINX的轻巧,高性能和灵巧性非常适宜微做事。
NGINX Docker映像是Docker Hub上排名第一的运用程序映像,您本日在Web上找到的大多数微做事平台都包含一个演示,它以某种形式支配NGINX并连接到欢迎页面。

由于我们认为转向微做事对付客户的成功至关主要,我们NGINX已经启动了一个专门的程序来开拓支持Web运用程序开拓和交付这种地震转变的功能和实践。我们还认识到,实现微做事有许多不同的方法,个中许多方法都是新颖的,并且特定于各个开拓团队的需求。我们认为须要利用模型来使公司更随意马虎开拓和交付自己的基于微做事的运用程序。
考虑到这统统,NGINX专业做事部门正在开拓NGINX微做事参考架构(MRA) - 一组可用于创建自己的微做事运用程序的模型。
MRA由两部分组成:三个模型中的每一个的详细描述,以及实现我们的示例照片共享程序的可下载代码,Ingenious。三种型号的唯一差异是用于为每种型号配置NGINX Plus的配置代码。这一系列博客文章将供应每个模型的概陈说明; Ingenious示例程序的详细描述,配置代码和代码将在今年晚些时候推出。
我们构建此参考架构的目标有三个:
为客户和行业供应随时可用的蓝图,用于构建基于微做事的系统,加速和改进开拓创建用于测试NGINX和NGINX Plus中新功能的平台,无论是内部开拓还是外部开拓,分布在产品核心中或作为动态模块为了帮助我们理解互助伙伴系统和组件,我们可以从整体上理解微做事生态系统微做事参考架构也是NGINX客户专业做事产品的主要组成部分。在MRA中,我们尽可能利用NGINX开源和NGINX Plus共有的功能,并在须要时利用NGINX Plus特有的功能。 NGINX Plus依赖关系在更繁芜的模型中更强,如下所述。我们估量,MRA的许多用户将受益于NGINX专业做事的访问以及NGINX Plus订阅的技能支持。
微做事参考架构概述我们正在构建参考架构以符合Twelve-Factor App的原则。这些做事设计为轻量级,短暂的和无状态的。
MRA利用行业标准组件,如Docker容器,各种措辞 - Java,PHP,Python,NodeJS / JavaScript和Ruby - 以及基于NGINX的网络。
迁移到微做事时,运用程序设计和体系构造的最大变革之一是利用网络在运用程序的功能组件之间进行通信。在单片运用程序中,运用程序组件在内存中进行通信。在微做事运用程序中,该通信通过网络进行,因此网络设计和履行变得至关主要。
为了反响这一点,MRA已经利用三种不同的网络模型实现,所有这些模型都利用NGINX或NGINX Plus。它们的范围从相对大略到功能丰富且更繁芜:
代理模型 (Proxy Model)- 一种大略的网络模型,适用于实现NGINX Plus作为微做事运用程序的掌握器或API网关。该模型建立在Docker Cloud之上。路由器网格模型(Router Mesh Model ) - 一种更强大的网络方法,每台主机上都有一个负载均衡器,可以管理系统之间的连接。该模型类似于Deis 1.0的体系构造。织品模型 (Fabric Model) - MRA的皇冠上的明珠,面料模型在每个容器中都有NGINX Plus,处理所有入口和出口交通。它适用于高负载系统,并支持所有级别的SSL / TLS,NGINX Plus供应减少的延迟,持久的SSL / TLS连接,做事创造以及所有微做事中的断路器模式。我们的目的是您利用这些模型作为您自己的微做事实现的出发点,我们欢迎您供应有关如何改进MRA的反馈。 (您可以从添加到下面的评论开始。)
以下是每种模型的简要解释;我们建议您阅读所有描述,以便开始理解如何最好地利用一个或多个模型。未来的博客文章将详细描述每个模型,每个博客文章一个。
代理模型简介代理模型是一种相对大略的网络模型。它是初始微做事运用程序的出色出发点,或者是转换中等繁芜的单片遗留运用程序的目标模型。
在代理模型中,NGINX或NGINX Plus充当入口掌握器,将要求路由到微做事。当创建新做事时,NGINX Plus可以利用动态DNS进行做事创造。当利用NGINX作为API网关时,代理模型也适宜用作模板。
如果须要进行做事间通信 - 并且大多数运用程序都处于任何繁芜程度 - 做事注册表供应集群内的机制。 (有关做事间通信机制的详细列表,请参阅此博客文章。)Docker Cloud默认利用此方法;为了连接到另一个做事,做事查询DNS并获取IP地址以发送要求。
常日,代理模型适用于大略到中等繁芜的运用程序。它不是负载平衡最有效的方法/模型,特殊是在规模上;如果您有严重的负载平衡哀求,请利用下面描述的模型之一。 (“Scale”可以指大量的微做事以及高流量。)
编辑器 - 有关此模型的深入探索,请参阅MRA,第2部分 - 代理模型。
路由器网格模型路由器网格模型中等繁芜,非常适宜强大的新运用程序设计,也适用于转换不须要Fabric模型功能的更繁芜的单片遗留运用程序。
通过在每个主机上运行负载均衡器并主动管理微做事之间的连接,路由器网状网模型采取比代理模型更强大的网络方法。路由器网格模型的紧张优点是做事之间的更高效和稳健的负载平衡。如果利用NGINX Plus,则可以履行活动运行状况检讨以监视各个做事实例,并在关闭时优雅地限定流量。
Deis Workflow利用类似于路由器网格模型的方法在做事之间路由流量,NGINX实例在每个主机上的容器中运行。当新的运用程序实例被启动时,进程从etcd做事注册表中提取做事信息并将其加载到NGINX中。 NGINX Plus也可以在这种模式下事情,利用各种位置及其干系的上游。
编辑器 - 有关此模型的深入探索,请参阅MRA,第3部分 - 路由器网格模型(https://www.nginx.com/blog/microservices-reference-architecture-nginx-router-mesh-model/)。
末了 - Fabric模型,带有可选的SSL / TLS我们NGINX对Fabric模型最为愉快。它带来了一些最令人愉快的微做事承诺,包括高性能,负载平衡的灵巧性,以及无处不在的SSL / TLS,直到单个微做事的水平。 Fabric模型适用于安全运用程序,可扩展到非常大的运用程序。
在Fabric模型中,NGINX Plus支配在每个容器中,并成为进出容器的所有HTTP流量的代理。运用程序与本地(localhost)主机位置通信以获取所有做事连接,并依赖NGINX Plus进行做事创造,负载平衡和运行状况检讨。
在我们的配置中,NGINX Plus向ZooKeeper查询运用程序须要连接的所有做事实例。例如,利用DNS频率设置(有效)设置为1秒,NGINX Plus会每隔一秒扫描ZooKeeper,并适当地路由流量。
由于NGINX Plus中强大的HTTP处理功能,我们可以利用keepalive来掩护与微做事的状态连接,减少延迟并提高性能。当利用SSL / TLS来保护微做事之间的流量时,这是一个特殊有代价的功能。
末了,我们利用NGINX Plus的主动康健检讨来管理康健实例的流量,并且基本上免费构建断路器模式。
编辑 - 有关此模型的深入探索,请参阅MRA,第4部分 - 构造模型(https://www.nginx.com/blog/microservices-reference-architecture-nginx-fabric-model/)。
MRA的奥妙演示运用程序MRA包括一个示例运用程序作为演示:Ingenious照片共享运用程序。 Ingenious在三种模型中实现 - 代理,路由器网格和构造。 Ingenious演示运用程序将于今年晚些时候向"大众发布。
Ingenious是照片存储和共享运用程序的简化版本,la Flickr或Shutterfly。我们选择照片共享运用程序的缘故原由有以下几点:
用户和开拓职员都很随意马虎节制它的功能。须要管理多个数据维度。在运用程序中很随意马虎融入俊秀的设计。它供应了非对称打算哀求 - 高强度和低强度处理的稠浊 - 可以实现跨不同功能的故障转移,扩展和监视功能的真实测试。结论NGINX微做事参考架构对我们来说是一个令人愉快的发展,对付我们迄今为止共享的客户和互助伙伴而言。 在接下来的几个月里,我们将发布一系列博客文章,详细描述它,我们将在今年晚些时候推出。 我们还将在9月7日至9日在德克萨斯州奥斯汀举行的nginx.conf 2016上详细谈论。 请给我们您的反馈见地,我们期待着与您相见。
原文:https://www.nginx.com/blog/introducing-the-nginx-microservices-reference-architecture/
本文:http://pub.intelligentx.net/introducing-microservices-reference-architecture-nginx
谈论:请加入知识星球或者小红圈【首席架构师圈】