Istio介绍

来源:互联网 发布:智能时代的数据化企业 编辑:程序博客网 时间:2024/06/08 07:57

Google,IBM和Lyft自豪地宣布Istio的第一个公开发布:一个开源项目,提供统一的连接,安全,管理和监控微服务的方。 我们目前的版本针对Kubernetes环境; 我们打算在未来几个月内为虚拟机和Cloud Foundry等其他环境增加支持。 Istio将流量管理添加到微服务中,并为增值功能(如安全性,监控,路由,连接管理和策略)创造了基础。 该软件使用来自Lyft的经过测试的特使代理构建,并提供对流量的可见性和控制,而不需要对应用程序代码进行任何更改。 Istio为CIO提供了强大的工具,可以在整个企业中实施安全性,政策和合规性要求。

介绍

编写可靠,松散耦合的基于微服务的生产级应用程序可能具有挑战性。随着单片应用程序分解成微服务,软件团队必须担心在分布式系统中集成服务所固有的挑战:它们必须考虑服务发现,负载平衡,容错,端到端监控,功能实验的动态路由,也许最重要的是遵守和安全。

解决这些挑战的不一致尝试,从图书馆,脚本和Stack Overflow片段中拼凑出来,导致了跨语言和运行时差异的解决方案,具有差的可观察性特征,并且常常会最终导致安全性受损。

一个解决方案是在一般的RPC库(如gRPC)上实现标准化,但是组织采用批发并丢弃可能几乎不可能改变的棕色应用程序,这可能是昂贵的。运营商需要一个灵活的工具包,使他们的微服务安全,兼容,可跟踪和高可用性,开发人员需要能够在生产中尝试不同的功能,或部署金丝雀版本,而不会影响整个系统。

解决方案: 服务网格

想像一下,如果我们可以在服务和网络之间透明地注入一层基础设施,为运营商提供所需的控制,同时让开发人员不必将分布式系统问题的解决方案解决到他们的代码中。这种统一的基础设施层结合服务部署通常被称为服务网格。正如微型服务器有助于将功能团队相互分离的一种,服务网格可以帮助操作人员脱离应用程序功能开发和发布过程。 Istio通过系统地将代理注入到其中的网络路径中,将不同的微服务转变为综合服务网格。

基于我们为内部和企业客户构建和运营大规模微服务的常见经验,Google,IBM和Lyft联手创建Istio,希望为微服务开发和维护提供可靠的基础。 Google和IBM在自己的应用程序中与这些大型微服务机构有丰富的经验,并在敏感/监管的环境中与企业客户有丰富的经验,而Lyft开发了特使来解决他们内部的可操作性挑战。 Lyft开源的Envoy在成功使用它一年以上,可以管理超过100个服务,跨越10,000个虚拟机,处理2M请求/秒。

Istio好处

  1. 范围的可见性:发生故障,运营商需要工具来保持群集的健康状况和微服务的图形。 Istio生成关于使用Prometheus&Grafana呈现的应用程序和网络行为的详细监控数据,可以轻松扩展,将度量标准和日志发送到任何收集,聚合和查询系统。 Istio可以使用Zipkin跟踪分析性能热点和分布式故障模式的诊断。
  2. 灵活性和效率:在开发微服务时,运营商需要假设网络不可靠。 运营商可以使用重试,负载平衡,流量控制(HTTP / 2)和断路以补偿由于不可靠的网络导致的一些常见故障模式。 Istio提供了一种统一的方法来配置这些功能,使其更容易操作高度弹性的服务网格。
  3. 开发人员的生产力:Istio通过让他们专注于以所选择的语言构建服务功能,大大提升了开发人员的生产力,而Istio则以统一的方式处理弹性和网络挑战。 开发人员无需将解决方案的分布式系统问题解决到其代码中。 Istio通过提供支持A / B测试,canarying和故障注入的常用功能,进一步提高生产力。
  4. 政策驱动行动:Istio授权不同领域的团队独立运作。 它将集群运营商与功能开发周期分离,允许改进安全性,监控,扩展和服务拓扑,无需更改代码。 运营商可以路由精确的生产流量子集,以符合新的服务版本。 他们可以在流量中注入故障或延迟,以测试服务网格的弹性,并设置速率限制,以防止服务超载。 Istio还可用于强制执行合规性规则,在服务之间定义ACL,以允许只有授权的服务相互通信。
  5. 默认安全:网络安全是分布式计算的常见错误。 Istio使运营商能够使用相互的TLS连接来认证和保护服务之间的所有通信,而不会对开发人员或运营商造成麻烦的证书管理任务负担。 我们的安全框架与新兴的SPIFFE规范保持一致,并且基于在Google内广泛测试的类似系统。
  6. 增量采用:我们将Istio设计为对网络中运行的服务完全透明,允许团队随着时间推移逐步采用Istio的功能。 采用者可以从启用车队范围的可视性开始,一旦他们对环境中的Istio感到满意,他们可以根据需要切换其他功能。
原创粉丝点击