软件开发人员正在采用基于Kubernetes的微服务架构来构建更多的现代化应用程序。现在,谷歌有限责任公司正试图通过在其企业级谷歌Kubernetes引擎平台上添加开源服务网络Istio,以帮助开发人员更轻松地管理这些微服务。
自该项目启动以来,Google一直走在Kubernetes发展的最前端。该项目最初是作为Borg公司的一个内部项目开始的,然后在2014年作为Kubernetes发布给开源社区。从那时起,它已经成为编排软件容器的工具,用于打包应用程序,以便让这些应用可以在任何平台、他们的微服务或这些应用程序的组件上运行。
Kubernetes用于协调多个容器集群,因此它们可以可靠地进行扩展,但它无法管理在其中运行的大量微服务,Istio的出现则解决了燃眉之急。
在一篇博客文章中,Google Cloud基础设施副总裁Eric Brewer和Google Cloud工程副总裁Eyal Manor解释说,Istio使开发人员能够更轻松地连接、管理和保护这些微服务。这很重要,因为微服务实际上是应用程序的松散耦合组件,这意味着它们会给开发过程带来新的复杂性挑战。
“现在有很多很多的服务,而不仅仅是Kubernetes所接管的每个容器中的单一服务,”Brewer在接受采访时告诉SiliconANGLE:“Istio管理了很多的服务:将一个服务验证到另一个服务[服务授权],以及管理负载[负载转移]。”
Constellation Research Inc.首席分析师兼副总裁Holger Mueller表示,为了更好地了解Istio的作用,可以将软件容器看做是“汽车”,这会很有帮助。
“Kubernetes已经铺好了道路,但汽车不知道自己在哪里,不知道它们的行驶速度、它们之间的相互作用或最终目的地是什么,”他解释道:“企业都会遇到上述的类似问题。对于谷歌来说,Istio是一个合乎逻辑的步骤,并且标志着下一级部署是关于企业运营的可管理性、可见性和意识,这种透明度对于公司的管理人员来说至关重要。”
具体来说,Istio所做的是它消除了对于操作机制的需求,这些机制对于将微服务构建到应用程序代码来说是不可或缺的。相反,它在各个模块之间建立了一个连接层,从而起到了相同的作用,但没有对代码进行任何重大修改。
Istio本身使用了一组程序控件进行管理,这些控件提供了配置负载均衡器以在应用程序组件之间分配流量的功能。它还包含故障转移功能,以帮助从可能导致应用程序出现问题的任何问题中恢复,并且可以准确指定数据应如何在整个网络中流动。此外,它有助于确保一致的策略,这些策略必须与各个服务分离,以便它们可以在这些微服务中更加统一和能够进行独立更新。
“简而言之,Istio将服务的运营与服务的实施分离开来。”Brewer解释道他还补充道,因此,Istio目的是与Kubernetes互补,而不是取代它。
下个月将在Google Kubernetes Engine上推出测试版的Istio,将允许Google的客户在其现有的Google Kubernetes Engine集群上添加服务网格,并收集更多关于它们的遥测数据。这意味着用户还可以通过流量、错误率和延迟等信号来监控这些群集的运行状况。
谷歌计划在未来几个月内在其它的一些服务上启用Istio的功能,包括GKE On-Prem,即GKE的二进制兼容版本,公司可以在他们自己的私人数据中心运行该版本。
“无论你采用的是原生云,还是刚开始考虑让你的IT环境现代化,在Kubernetes和容器上构建应用程序都需要很长的时间,”Brewer在博客文章中写道:“但你还需要考虑如何管理超出你最高期望的环境。Istio可以协助你走完余下的道路。”
原文作者:MIKE WHEATLEY