什么是Istio,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
我不知道在技术社区中有多少人有这样的观点,35年之后,我们的生活就会像是“银翼杀手”的续集。“银翼杀手”向我们展现了一个技术的未来,其中的许多视觉建筑,像动画广告板,视频通话,现在都是那么的普通,而这些是我们小的时候想都不会想到的东西。“银翼杀手”里面的场景竟然如此充分地实现了,这使得像我一样的人开始在思考云能做的事情,如果我们用心地在上面思考的话。
许多年来,这意味着大规模的应用-和许多可持续的工作。没有更多的东西了。其中一个当我们的技术深入到云原生架构的结果,就是我们更加强调基于微服务的应用,这意味这一个单一的服务可以微多个应用提供难以评估的益处-有点像是“代码复用”的终极版本。
但是,当你已经有了一个应用,这个应用包含了成千上完的独立服务,你这样才能管理好你的架构,以至于不让你的应用,至少你的理智-完全脱离轨道呢?我们需要的是一个架构,可以帮助我们连接,管理,还有保证这些微服务的安全,同事提供了负载均衡,身份验证和监控等等功能。
如果有这个的事情存在,你当然愿意参与进来,不是吗?当然你会。好的,你的机会来了。
Istio就是这样的一个开源项目,它完成了所有的这些事情。在周一,就是9月25号的时候,它们已经举办了一次用户测试的“黑客马拉松”活动。我想我们可以直接从那些参与到这项活动的人身上获得更多的细节,所以我们将会和Google的软件工程师Douglas Reid和Mandar Jog交流一下,他们一直致力于领导这些开发成果。
Nick Chase:先生们,非常谢谢今天花时间和我会谈。对于那么还不知道什么是Istio的人来说,请解释一下它。
Mandar Jog: Istio是一个服务网格,它提供了所有微服务需要的交叉功能。例如,你需要流量管理。你需要找到那些你需要触及的服务,有人必须决定你需要和那些服务对接。
然后接下来是可观测的,基本上就是遥测和指标。所以你需要找到某些东西被调用了多少次,同样的,可以追溯。日志都记录在同样的区域。
然后就是强制策略,就是访问控制,或者是任何种类的特定策略的制定,例如在什么样的条件下,一个特定的服务应该和另外一个通信。
最后,Istio验证提供了身份验证,所以你可以基于你整体的身份和身份验证故事实现服务对服务的验证和中央的验证。
Douglas Reid:这些只是一些功能上的东西,但是从另外一个不同的角度来看,我认为Istio是Lyft,IBM和Google这些公司在分布式环境中部署,管理和服务应用软件中用户经验积累的产品。这有些像是这些年来如何简单地去管理规模化,特别是分布式系统,积累的一些最佳实践。
NC: 所以基本上来讲,你拥有的就是这种微服务,Istio就是这样的一个请求编排器?
MJ:Istio 处于不同的服务之间。它解释了这些我们之前提到的请求。
NC:我很多时候同时听到关于Envoy和Istio的很多事情,这两者之间有什么区别?
DR:Envoy是Istio的一个组件.Envoy是服务的代理。它是Istio的数据平面层。Istio同样也有一个控制面板,叫做Pilot.Pilot控制Envoy的部署,然后帮助配置它们,同样的还有Mixer,帮助做出决策。Envoy 在请求时间调用Mixer。PPilot还控制Envoy用来保护流量的所有其他部分的部署。
NC: Istio 是专注于自己的领域,还是你们正和其它的项目建立联系来打造一个生态呢?
MJ:还无疑问。例如,LinkerD 现在也可以和Istio一起运行。它们可以调用Mixer,所以基本上LinkerD,从最简单的的角度上来说,可以取代 Envoy作为这个请求的解释器或者代理,然后正如Envoy调用Mixer去做决策,LinderD同样也可以调用Mixer去做决策。Nginx同样还是运行着,或者已经被通知,它们将会和Mixer进行通信,所有你可以使用Ngix作为你的代理,而不是Envoy.
事实上,Mixer和Envoy之间的协议是很好的被定义和发布的,这意味着理论上是不可替换的。所以作为Istio,我们定义的就是配置的界面,还有Envoy是如何和Mixer进行通信的。
DR:Mixer采用了Prometheus作为它内置的度量报告机制,我们同样也有给StatsD的插件,我确定这里会有其它的专有指标和遥测方案的插件。我们正在打算实行配额系统。我们有了一个配额系统。我认为现在它是建立在Redis上面,我们期待看到更多的第三方的开发,正如我们允许编写适配器的生态系统,从而建立和其它项目更多的联系。
MJ:同样的,从策略层面上来说,Istio正在和其它的几个伙伴一起合作。例如开放政策机构(OPA)就是我们正在合作的第一个策略适配者,你可以在新的半标准语言中去实现你的策略,这和社区工作的标准是一致的。
DR: 然后还有其它值得一提的项目就是,Istio正在和SPIFFE紧密合作,支持SPIFFE作为Istio的一项认证协议。
Me:所以Istio有点像是包罗万象的伞。
MJ:从一个运营者的角度,Istio是操作者可以进行交互的配置。你可以配置Istio去做一些网络工作,这里也有一些Istio支持的网络功能,例如路由规则,目的地策略,还有其它的事情。同样在策略管理和度量方面,这里也有其它的功能,是可以作为插件的。所以当它们发展的时候,Istio支持它们。有点像是Istio的大伞。
还有一个问题是如何配置代理。Pilot还公开了特使调用的配置接口,这是第三种接口。伞定义了接口和协议方面的东西,然后我们有一个工作系统中所有这些组件的实现。
NC:那么这个Istio用户hackathon是怎么回事?
DR:所以,在我们努力开发下一个版本的Istio时,我们离我们认为的所有组件的候选版本越来越近了,我们正在编写文档以及过去几个月所做的所有更改。这一事件实际上是为了让早期的收养者看一看它,尝试运行文档,告诉我们在我们考虑释放之前有哪些需要关闭的bug,看看特征空缺在哪里,这样我们就可以开始规划未来的ISTIO工作。
NC:下一个Istio版本是什么,你预计什么时候发布?
我们的目标是在九月底之前准备好。
NC:为了参加本次活动,您是否需要有类似kubernetes的经验或任何其他特定的先决条件?
MJ:一些kubernetes会有帮助,但这不是必需的。我们有设置说明,我们将带您了解如何设置kubernetes集群并开始工作,这样它就不会成为真正的障碍。
NC:是否有任何特定的硬件先决条件?
DR:我认为我们要做的是谷歌将提供一系列实验项目,这样你就可以建立集群,所以你不需要提供任何硬件。我认为IBM也会在Bluemix上这样做,因此应该有相当数量的可用基础设施用于测试。所以你需要一台笔记本电脑和运行Git的能力,甚至只需要安装程序就足够了。所以我认为我所知道的没有任何真正的硬件需求。
NC:一旦发布了这个版本,您认为Istio的生产规模在哪里?
MJ:Istio 0.2是一个发布版,我们有足够的功能,人们可以真正完成一些事情,所以我真的很期待反馈。生产准备、性能以及所有这些都是0.3的目标。
博士:在某些方面,这就像Istio和特使以及各种组件之间的区别。Istio的某些组件已经在生产环境中使用,我们非常了解它们的特性。在过去几个月里,随着我们学到了一些东西,其他人也经历了巨大的改写,我们仍然开始感觉到什么需要强化,什么需要解决。因此,根据您试图用它做什么,您可能对生产准备有不同的看法。我认为我们正在接近测试版的状态,但我们还没有达到。
NC:那么你认为Istio要去哪里?
DR:硅谷的答案是Istio最终将帮助世界上所有的服务提供动力,但我认为我们离这还有很长的路要走。在到达那里之前,我们有很多事情要做。我的意思是,我们在这个周期中所做的一个特性就是允许不属于任何Kubernetes集群的VM加入网格。因此,我们希望继续这样做,并扩展到更多的环境,同时支持多个环境。有点像混合场景。因此,这些是我们的一些近期目标。
乔丹:我认为道格涵盖了真正的长期和近期。有几个中间目标,但它们有点进入了重要的本质。我们真正希望看到的是一个强大的供应商社区,它建立在Istio之上或Istio的一边。Istio基本上做了一些事情,我们希望看到这些事情属于堆栈的哪个部分,然后Istio方面也有一些领域和任务,我们也希望看到一些东西出现在那里。
博士:我们真的很注重让更多的社区参与。我们一直在努力把东西拿出来,但我认为我们需要开始更多地关注我们如何使社区成为可能,我们如何激发社区,我们如何满足社区的需求,现在我们已经在世界上有了初步的立足点?
NC:那么你在社区中最需要什么样的参与?
DR:我们可以使用开发支持、文档支持、设计支持、流程支持…
MJ:我们还希望看到人们进行情景测试,看看我们认为相关的事情是否与人们实际做的事情相关。然后,我们希望看到人们真正尝试他们,并给我们一些反馈。我们真的很想得到反馈,尤其是在配置方面,因为这是操作员接触的表面,也是操作员与系统交互的方式,因此反馈对我们非常有价值
此外,混合器还有一个适配器
关于什么是Istio问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。