Google、IBM 和 Lyft 开源其大型微服务系统管理工具 Istio

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:

谷歌、IBM 与 Lyft 三方已经共同公布了 Istio 项目的首次公开发行版。Istio 是一个开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。我们目前的发行版主要面向 Kubernetes 环境 ; 当然,在后续的升级当中,我们还将逐步实现对虚拟机以及 Cloud Foundry 等其它环境的支持能力。

Istio 项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。这款软件利用久经考验的 Lyft Envoy 代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。Istio 项目是一款强大的工具,可帮助 CTO/CIO 们立足企业内部实施整体性安全、政策与合规性要求。

项目背景

编写具备高可靠性、松散耦合的微服务式生产级应用程序往往存在一定程度的挑战。随着整体式应用程序被拆分为微服务,软件团队必须面临并应对在分布式系统当中实现服务集成所带来的诸多难题:其必须考虑服务发现、负载均衡、容错性、端到端监控、面向功能实验的动态路由以及最为重要的两大前提——合规性与安全性。

目前行业中处理上述挑战的方法多种多样,往往由各类库、脚本乃至 Stack Overflow 片段拼凑而成,这直接导致其包含大量不同编程语言与运行时,功能可观察性差且往往会令最终安全性受到负面影响。

其中一类解决方案在于立足常规 RPC 库(例如 rRPC)实施标准化调整,但其全面采用会给企业带来高昂成本,同时亦会迫使其放弃部分根本无法变更的旧有应用程序。很明显,运营人员需要一套灵活的工具包,确保其微服务始终具备安全性、兼容性、可追踪性以及高可用性 ; 与此同时,开发人员则需要能够在生产环境中尝试不同功能或者部署金丝雀版本(canary releases),并保证其不会影响到整体系统。

解决方案:服务网格

想象一下,如果我们能够以透明化方式在服务与网络之间插入一个基础设施层,借此为运营人员提供必要的控制能力,同时帮助开发人员不必在其代码当中引入分布式系统带来的专用解决方案,那么前面提到的诸多挑战将迎刃而解。正如微服务架构能够帮助各功能团队实现彼此解耦,服务网格则能够帮助运营人员从应用程序功能开发与发布流程当中解耦出来。Istio 项目即因此而生,它能够以系统化方式将代理机制接入至网络路径当中,从而将不同微服务转化为综合性服务网格。

谷歌、IBM 与 Lyft 三方联手开发出的 Istio 项目基于我们为内部及企业客户构建及运营大规模微服务架构中积累起的丰富经验,旨在为微服务架构的开发与维护工作提供可靠基础。谷歌与 IBM 双方长久以来一直在在内部应用程序中采用此类大规模微服务架构,同时亦具备丰富的高敏感度 / 监管环境企业客户服务经验。而 Lyft 则开发出 Envoy 以解决其内部可操作性挑战。Lyft 在经过一年的成功使用之后,决定将 Envoy 推向开源,其能够管理超过 100 项服务、跨越上万套虚拟机且每秒可处理 200 万条请求。

Istio 的优势

集群规模可视性:在故障状况出现时,运营人员需要利用多种工具以始终关注集群运行状况并分析微服务状态图表。Istio 项目能够监控与应用程序及网络活动相关的数据,利用 Prometheus 与 Grafana 对这部分数据加以渲染,而后将相关指标与日志记录发送至任何收集、聚合与查询系统当中以实现功能扩展。Istio 项目亦利用 Zipkin 追踪分析性能热点并对分布式故障模式加以诊断。

弹性与效率:在开发微服务时,运营人员需要假设网络本身处于不可靠状态。运营人员能够利用重试、负载均衡、流量控制(HTTP/2)以及断路补偿等方式解决由网络可靠性低下所造成的各类常见故障模式。Istio 项目则提供一种统一方法以配置上述功能,使得运营人员能够更为轻松地运作高弹性水平服务网格。

开发人员生产力:Istio 项目能够确保开发人员专注于利用已选择的编程语言构建服务功能,从而极大提升其生产能力。另外,Istio 项目则负责以统一化方式处理弹性与网络挑战。开发人员无需将解决方案的分布式系统问题解决机制引入编写的代码当中。Istio 项目还能够支持 A/B 测试、金丝雀部署以及故障注入等常用功能,旨在进一步提高生产效率。

政策驱动型运营:Istio 项目能够授权具有不同职能的团队以实现独立运作。其将集群运营人员与功能开发人员进行周期性剥离,从而在无需更改代码的前提下提升安全性、监控能力、扩展性与服务拓扑水平。运营人员能够精确控制生产流量中各个子集的路由方式,从而匹配新的服务版本。另外,运营人员还能够在流量中注入故障或者提高延迟水平,用以测试服务见长的弹性 ; 同时设置速率限制以防止服务过载。Istio 项目还可用于强制执行合规性要求,例如在服务之间定义 CL 以确保仅具备授权的服务间可相互通信。

默认安全:分布式计算当中经常存在着大量网络安全问题。Istio 项目允许运营人员利用 TLS 连接以认证并保护各服务之间的所有通信,而不会给开发人员或者运营人员带来由证书管理造成的额外负担。我们的安全框架与新的 SPIFFE 规范保持一致,事实上谷歌公司一直在内部广泛使用类似的保障性系统。

增量化采用:我们在设计 Istio 项目时充分考虑到网络内所运行各服务的透明性,允许团队随着时间推移逐步采用 Istio 提供的各项功能。采用方可以先从启用集群范围内可视性起步,并在 Istio 在环境中的表现感到满意后根据实际需要启用其它功能。

加入我们共同开启新的旅程

Istio 属于完全开源之项目。今天,我们发布了其 0.1 版本,适用于 Kubernetes 集群。未来我们计划每三个月进行一次主要版本更新,其中包括支持其它环境。我们的目标是帮助开发人员与运营人员以敏捷性、底层网络全面可视性以及立足一切环境的统一化控制与安全保障能力为前提,发布并运营属于您自己的微服务体系。我们期待着与您在 Istio 社区中并肩协作,并以合作伙伴的角度共同实现各项发展目标。如果您有兴趣,请以下链接查看我们的发展路线图。

本文来自开源中国社区 [http://www.oschina.net]

目录
相关文章
|
16天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
38 2
|
1月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
53 8
|
1月前
|
Kubernetes 负载均衡 安全
Istio在微服务中释放服务网格的力量
Istio在微服务中释放服务网格的力量
50 4
|
3月前
|
负载均衡 监控 安全
Istio:微服务治理的超级英雄,一键解锁你的服务网格超能力,让管理复杂变简单!
【8月更文挑战第31天】随着云原生技术的发展,微服务架构成为主流,但其复杂性与管理难题也随之增加。Istio作为开源服务网格平台,通过独特的数据平面和控制平面设计,实现了微服务通信的透明管理,简化了治理复杂度。本文将对比Istio与传统微服务管理方法,详细介绍Istio的架构及其工作原理,包括Envoy代理、服务发现、负载均衡、流量管理、安全认证以及监控等功能。Istio不仅简化了微服务治理,还提供了强大的流量控制和安全机制,使开发者能更高效地管理应用。
71 2
|
3月前
|
开发者 项目管理 开发工具
震惊!单人开发者如何成功过渡到团队协作?Xamarin 项目管理经验大揭秘,让你的开发之路一帆风顺!
【8月更文挑战第31天】Xamarin 是移动应用开发领域的热门跨平台工具,适用于个人开发者及团队。个人开发时需明确需求、运用版本控制(如 Git)并合理规划项目结构以增强代码可维护性。团队协作时,则需建立有效沟通渠道、统一代码规范、严格版本控制及合理分配任务,以提升开发效率与项目质量。
63 1
|
3月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
在5G电信领域,Kubernetes集群中部署微服务至关重要,但也带来了重大的安全挑战。Istio作为一个强大的开源服务网格,能有效地管理这些微服务间的通信,通过其控制平面自动将Sidecar代理注入到各微服务Pod中,确保了安全且高效的通信。Istio的架构由数据平面和控制平面组成,其中Sidecar代理作为Envoy代理运行在每个Pod中,拦截并管理网络流量。此外,Istio支持多种Kubernetes发行版和服务,如EKS等,不仅增强了安全性,还提高了应用性能和可观测性。
75 0
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
|
5月前
|
Kubernetes 监控 负载均衡
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
本文介绍了服务网格(Service Mesh)的概念及其在微服务架构中的重要性。微服务强调围绕业务构建团队和去中心化的数据管理,带来更高的灵活性和扩展性。然而,随着服务数量增加,网络通信成为挑战,包括服务发现、路由和安全等问题。 Service Mesh如Istio应运而生,通过边车代理解决服务间通信,提供服务发现、负载均衡、智能路由、安全和监控等功能。它与Kubernetes结合,增强了容器环境的服务管理能力。Istio的bookinfo示例展示了其在多语言微服务中的应用,简化了代码中的服务调用逻辑,使开发更专注于业务本身。
670 3
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
|
6月前
|
存储 弹性计算 大数据
【云计算与大数据技术】Google、亚马逊、IBM、阿里云等云计算应用平台介绍讲解(超详细)
【云计算与大数据技术】Google、亚马逊、IBM、阿里云等云计算应用平台介绍讲解(超详细)
389 0
|
Dubbo Java 应用服务中间件
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
1092 7
|
安全 前端开发 Cloud Native
Istio 探索:微服务的流量管理、安全性和策略加固
Istio 探索:微服务的流量管理、安全性和策略加固
97 0