Robert Whiteley translate by Grace
基于微服务的架构是未来的趋势,但是实现这种架构会面临许多困难。现代应用架构远比过去的架构复杂,因此实现微服务架构将会带来了一系列特殊的挑战,而服务网格可以帮我们解决很多问题。
最近一段时间,管理者不再专注于除错单个应用程序伺服器,相反,现代系统就像是一群牛,研究整体的行为远比单个的伺服器有意义,分散式系统就是一个典型。
微服务是一种分散式架构,目的在于通过不断调整自身以适应当前流量状况的变化,例如,有一组处理客户端请求路由的容器,改变这组容器,反过来也意味着路由表在不断变化,由此反映了应用程序端点的变化位置。与此同时,在任何架构体系中都会有过去的遗留物,从必须使用单个大型资料库伺服器的应用程序到捆绑API以使其看起来是以服务为重点的遗留系统。
而服务网格是当前最先进的微服务模式。它建立在容器以及容器编排之上,配有处理内部服务通讯的专用控制面。它负责协调分散式网格的微服务所需的安全性,路由,身份验证,授权和类似功能,服务网格将这些功能从应用程序(或应用程序的服务元件)中剥离出来作为可程式设计的基础元件。虽然不是所有的公司都需要如此复杂的服务网格(尽管这些公司大部分都执行著成百上千的服务),但服务网格正迅速成为那些希望执行生产级微服务的公司的预设架构。
以下是八种实现服务网格的方法,可以帮助您平滑过渡到微服务
1、改进微服务的讯息处理机制。服务网格确保你能监控到整个架构层,不仅可以跟踪到网路中的伺服器地址,还可以跟踪到传达伺服器地址资讯的讯息。例如,你可能想要跟踪“失败”讯息,但这些讯息在传统云架构中通常会丢失。服务网格的好处是既可以确保讯息的传递,又会在讯息未到达目的地时返回错误资讯。
2、利用与传统应用程序相同的运维方式。对于企业级网路来说,可定制性和灵活性是最重要的。服务网格是为适应现代分散式应用程序而设计的。但是底层的技术如入口控制器,负载均衡器,以及代理都和传统单体应用的资料层面的技术相同。在实现服务网格的过程中,组织可以利用到与运营现代、基于软体的应用程序交付基础设施相同的技术与技能。
3、灵活使用多种云服务。服务网格解决了现代应用的云网络问题。支撑起服务网格的资料平面和控制平面的技术独立于任何特定架构,因此它们可以在无论是裸机,容器还是虚拟机器的公有或私有的架构上执行。这种灵活特性甚至允许服务网格处理未来的应用程序架构,从而发挥其规模化、全球复制以及深层效能调节等优势。您的服务网格将成为运作模式化云架构场景下,一切潜在优势的实现保障。
4、提高对微服务的可见性。分散式系统的指标对于我们而言就像是一个黑盒子,而网格服务为我们提供了一种更深入观察分散式系统的指标的途径。它会随时间收集效能指标,为团队提供服务可用性的长期指标。这为操作员提供了一种观察服务可靠性和效能的方式,使他们能够逐步优化系统。
5、更高效的运维以及更有效的执行SLA(服务等级协议)。服务网格提供的追踪功能对除错和故障排除至关重要,与此同时,它也确保服务执行了服务等级协议(SLA)。服务网格执行了很多工,包括执行策略以及追踪检视这些策略是否被满足。它为管理者提供了一个可以在网路层实施云应用管理和策略的场所。
6、简化微服务实现。服务网格的另一大优点是可以轻松部署它们。过去的解决方案要求开发人员将服务内功能编码到每个微服务中。这需要重写应用程序并在不同的程式语言中维护各种库。而服务网格帮开发人员抽象了这些事务。开发人员可以简单地呼叫必要的讯息传递和服务发现功能就可以轻松的部署它们,而微服务的原始码只用包含业务逻辑相关的程式码。
7、加快新服务的上线时间。过去的库解决方案,如Finagle、Hystrix和Stubby,需要开发人员长时间的介入并且迫使开发人员将冗余功能编码到每一个服务中。另一个更简单的方法是在每个微服务中放置一个sidecar代理并将它们连线在一起,这正是服务网格所擅长的,因此未来将会有更多的云应用选择服务网格架构。简而言之,服务网格保证了开发者的生产力,使他们能够更快地将更多的服务推向市场。
8、保障服务间的通讯安全。服务之间通讯有可能跨云,跨资料中心,或者跨大陆,而服务网格保障了这些通讯的安全,它封装了所有的通讯,并且在控制器层面协调这些通讯,通过管道内加密,联络人策略和服务许可权解决了安全问题。
阅读更多
开源PaaS Rainbond原生支持Service Mesh服务网格,用非入侵、透明化的方式解决服务发现和注册、弹性伸缩与负载均衡、容错处理(断路器与限流)、监控与警报、数据存储与共享、日志分析等等微服务架构难题,提供开箱即用、简单强大的微服务体验。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。