rpc微服务 DevOps

Service Mesh - Istio 1.5 拥抱单体,简化

2021-04-27  本文已影响0人  CatchZeng

原文:https://makeoptim.com/service-mesh/istio1-5

上一篇 向大家介绍了 Service Mesh 的代表 Istio。并且介绍了 Istio 的架构,在文中我注解了1.5 版本去掉了 Mixer 组件。 Istio 1.5 是一个具有“重建”性的版本。以往,Istio 的性能和易用性一直是被吐槽的。从 Istio 1.5 可以看出,Istio 团队开始正视这个问题,并在此版本中重建了控制平面,拥抱单体,简化了 Istio 的体系架构,改善了操作体验。

Istio 1.5 introduces the Istiod binary, which significantly simplifies Istio’s architecture, improving operational experience. – By Steven Dake

架构

在架构上,Istio 1.5 重建了控制平面,将原有的多个组件整合为一个单体结构 istiod,并废弃了 Mixer 组件。

istiod

istiod 是微服务架构模型的逆转。要了解 istiod 如何改善 Istio,让我们看一下它之前的结构。

Istio 1.4 控制平面包括五个服务和可扩展性插件:

Istio 1.5 将控制平面重组为一项服务,并重新实现了可扩展性:

如下图所示,Istio 1.5 的体系结构得到了简化:

需要注意的一点是,原有的多组件并不是被完全移除,而是在重构后以模块的形式整合在一起组成了 istiod

为什么选择 Istiod

功能更新

Istio 1.5 不仅仅简化了架构,同时也添加了新功能、优化性能、修复了一些 Bug。

流量管理

安全

遥测

配置管理

istioctl

小结

Istio 1.5 是一个“重建”性的版本。拥抱单体,简化架构,重建了整个控制平面,迎来了全新的 istiod;废弃了 Mixer,提高了性能。 Istio 1.5 的重建,不禁让我想起过早的优化是万恶之源

Donald Knuth 1974 年在 ACM Journal 上发表的文章 “Structured Programming with go to Statements” 中写道:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Istio

简言之,没有量化的性能测试检测到真正的性能问题之前,在代码层面各种炫技式优化,不仅可能提升不了性能,反而更会导致更多 bugs。而这些 bugs,在我看来不仅仅是代码上的问题,还包括可维护性、复杂性、问题诊断能力等。这顺应了一句老话,“永远没有完美的架构,只有最合适的架构”不单单产品设计的时候,需要考虑用户。软件设计也需要考虑用户(可能是运维、团队新人等),更何况,软件本身就是一种产品。产品需要有用户使用才能产生价值,软件设计亦然。

在重建的同时,Istio 团队不忘持续优化和引入新的功能。我相信,Istio 一定会越来越成熟,社区一定会越来越火。让我们一起期待,Istio 的下一次更新。

参考

上一篇下一篇

猜你喜欢

热点阅读