Kuma:可应用于任何平台的开源服务网格框架
极客时间编辑部
讲述:初明明大小:3.55M时长:03:53
在构建任何软件架构时,我们都会不可避免地引入通过在网络上发出请求来实现彼此通信的服务。
每当我们的服务通过网络请求互连时,我们都将最终用户的体验置于风险之中。我们都知道,不同服务之间的连接可能很慢,而且无法预测。它可能不安全、难以跟踪,并会引发许多其他的问题(例如路由、版本控制、金丝雀部署)。
针对这种情况,开发人员通常会编写更多代码来解决问题,这导致了更多的技术债务,而且通常特定于具体的语言,妨碍了创新。另外,库有多种实现,长远来看会导致碎片化。当然,也有些开发者采用挎斗代理模型希望解决问题。
采用挎斗代理模型需要一个控制平面,使团队可以配置数据平面的行为并跟踪其服务的状态。采用挎斗代理模型的团队要么从头开始构建一个控制平面,要么使用市场上现有的通用控制平面,比如 Kuma。
与数据平面(DP:和服务平行部署的挎斗代理)不同,控制平面(CP)并不位于服务交互请求的执行路径上,它用于配置数据平面并从中检索数据(如可观察性信息)。
Kuma 是一个面向服务网格的通用开源控制平面,使用 Kuma,主要是为了减少构建可靠的架构所必须编写和维护的代码。因此,Kuma 采用了挎斗代理模型,利用 Envoy 作为其挎斗数据平面技术。
通过将所有的连接性、安全性和路由问题外包给挎斗代理,这样可以带来以下好处:
加速应用程序构建
专注于服务的核心功能,推动更多业务
通过减少碎片化构建更安全的标准化架构
通过减少团队需要编写和维护的代码,就可以一点一点地实现应用程序的现代化,而不需要花费太多精力。
Kuma 以 Envoy 为基础构建,可以用于管理任何 L4/L7 流量,保护、观察、路由及增强任何服务或数据库之间的连接。它可以通过 CRD 在 Kubernetes 本地使用,也可以通过 RESTful API 在其他环境中使用,而且不需要更改应用程序的代码。
据悉,Kuma 的存在是为整个组织和每个团队提供一个实用的服务网格实现之旅:既面向运行在现代 Kubernetes 环境中的应用程序,也面向运行在更传统平台(如虚拟机和裸机)上的应用程序。Kuma 可以做到平台通用、易于使用、易于部署、企业就绪。Kuma 社区也提供了实时沟通和支持的渠道。
与其他控制平面不同,Kuma 很容易使用。任何人都可以通过三个简单的步骤跨传统的单体应用程序和现代化的微服务实施 Kuma,通过开箱即用的策略和 Kuma 强大的标签选择器,我们可以在各种拓扑中实现各种行为,类似于多云和多区域架构。
到目前为止,服务网格一直被认为是架构现代化的最后一步,而在此之前,架构已经转换到容器或 Kubernetes。这种方法完全向后兼容。这使得服务网格的采用和业务价值只有在实现了其他大规模转换之后才能实现,而与此同时,这些转换可能会出错。而 Kuma 官方希望服务网格在实现其他转换之前已经可用,这样就可以在这个过程中保证网络的安全和可观察性。
不过话说回来,虽然 Kuma 在 2019 年 9 月开源,是时下非常新鲜的云原生项目。但是换个角度而言,其成熟度较低,最新版本是 0.1.2,是一个非常早期的版本,其性能与 Istio 及其他服务网格产品相比缺乏数据支撑。若要在生产环境应用,Kuma 尚需要一段时日验证。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 云学生产环境还是用Istio 作为service mesh框架
收起评论