Istio对开发人员的帮助
Istio是近期由IBM、谷歌和Lyft联合推出的一个工具。它提供了一种用于连接、管理和保护微服务的方式。它还没有达到1.0版,但它正迅速成为一个热门话题,也是工程师们愿意深入了解更多的一个工具。最近我也投入了Istio的世界(大约上个星期),还有很多事情要做。是的,它为Devops提供了很多帮助,但我更惊讶于它给开发者提供的能力。它不仅简化了微服务体系架构的管理,而且也有助于一般的开发工作。我将深入研究一些我觉得很酷的特性,特别是从开发人员的角度来看。😎
Istio概述
首先,做个简要的概述,Istio是一个服务网格。那么,什么是服务网格?
通常用于描述构成这些应用程序的微服务网络以及它们之间的交互。
服务网格存在于微服务体系结构内,是负责服务与服务通信的基础设施层。Istio处理流量管理,提供安全性和认证,以及服务之间的策略处理。它为环境中的每个服务添加了一个“边车”sidecar代理,称为“Envoy”,而这些代理负责服务之间的所有通信。
现在,希望您对Istio有了一个基本的了解,我将和大家分享Istio所提供的,我认为对开发人员很重要的一些内容。
不必修改代码
所有的配置和设置完全在独立层中来管理,这很神奇。作为开发人员,我们不必修改我们曾花费了大量时间和精力完成的源代码。所有的配置都在别处完成,不涉及任何代码修改。作为DevOps工程师,你不需要筛选一堆代码来设置简单的配置。这对每个人来说都是双赢。
A/B测试
到目前为止,我认为A/B测试最有用的特性就是简单,也是大多数开发人员方便使用的特性。Istio提供了一种为服务设置路由规则的方法。例如,假设你有一个平台的最新版本,但你不想把它发布给所有的用户,你可以很简单的只显示给一小部分用户。将25%的用户引导到新版本,75%到旧版本。这是测试新特性并获得用户反馈的好方法。
还可以注明其他的条件,如对于平台免费还是付费,或根据移动设备显示特定的接口,提供不同的路由。有大量不同的场景可以运行。希望这能利用最少的时间和资源得到最好的场景。A/B测试可以完全在DevOps配置中进行管理,而不需要开发人员的支持。
编程语言无关
在一个微服务体系架构中,通常使用许多不同的配置和编程语言。每一种服务都可以使用不同的语言,Istio可以用任何语言工作。它并不限制开发人员使用某些工具或特定的编程语言。它使开发人员能够灵活地选择他们认为最适合他们解决方案的语言和工具。
监控和报告
为每个服务和总体服务网格提供监视和度量。Prometheus是Istio内置的一个工具,用于收集数据,Grafana用于显示仪表盘视图中的数据。在其他指标中,它提供查看指定的HTTP状态代码、服务响应时间和成功率的数量。这些指标可以帮助开发人员衡量性能、服务的健康状态,并确定哪些服务需要改进。
资源链接
以上是Istio能实现的几个例子。还有更多的功能,尤其适用于DevOps。下面列出了一些有用的资源,这些资源可以帮助您了解Istio更多的信息,以及如何部署使用。
· What is Istio?
· Set up Istio
总结
如果您选择使用Istio,可以将开发和部署分开,轻松地进行A/B测试,使用所需的任何语言和框架,并可视化所有的服务指标。还有其他方面的收益,例如服务间通信的安全性、预环境检查和执行内部测试。希望你发现Istio的优势并开始使用它。