- Istio最佳实战
- (美)克里斯汀·波斯塔等
- 1405字
- 2023-07-26 17:05:46
1 Istio服务网格
本章内容包括:
■ 利用服务网格解决面向服务架构的问题
■ 介绍Istio,以及它如何帮助解决微服务问题
■ 比较服务网格与其他早期技术
软件是当今公司的命脉。随着我们进入一个更加数字化的世界,消费者在与企业交互时期待获得便利的高质量服务,而软件将被用作传递这种体验的媒介。客户不能很好地遵守结构、流程或预定义的框架。客户的需求和需要是流动的、动态的和不可预测的,我们的公司和软件系统也需要具有这些相同的特征。对于有些公司(比如初创公司)来说,能否构建灵活的、能够应对不可预测的市场环境的软件系统,将决定其成败。对于其他公司(比如现有的公司)来说,若不能将软件作为一种区分标准,则将意味着增长放缓、衰落,并最终倒闭。
当我们探索如何更快地利用像云平台和容器这样的新技术时,我们过去遇到的一些问题将进一步被放大。例如,网络是不可靠的,当构建更大、更分布式的系统时,网络必须成为应用程序设计的中心考虑因素。应用程序是否应该实现网络弹性,如重试、超时和熔断?一致的网络可观测性呢?应用程序层安全呢?
弹性、安全性和指标收集是通用的关注点,不是特定于应用程序的,而且在不同的业务流程中也没有差别。开发人员是大型IT系统中的关键资源,他们的时间值得花在构建以不同方式交付业务价值的功能上。在实践中,应用程序网络、安全性和指标收集是必要的功能,但它们并不是非常有特色的功能。我们希望找到一种方法,以与语言和框架无关的方式实现这些功能,并将它们作为策略加以应用。
服务网格是一个相对较新的术语,用来描述分布式应用程序网络基础设施,让应用程序安全、有弹性、可观测和可控制。它描述了一个由数据平面和控制平面组成的架构,数据平面使用应用层代理来管理网络流量,控制平面用于管理代理。这种架构使我们能够在应用程序之外构建网络功能,而无须依赖特定的编程语言或框架。
Istio是一个服务网格的开源实现。它最初是由Lyft、谷歌和IBM创建的,现在它有一个充满活力、开放、多样化的社区,成员来自Lyft、Red Hat、VMWare、Solo.io、Aspen Mesh、Salesforce等公司。Istio允许我们构建可靠、安全的云原生系统,并在大多数情况下解决诸如安全性、策略管理和可观测性等难题,而无须更改应用程序代码。Istio的数据平面由基于Envoy的服务代理组成,这些服务代理与应用程序共存。它们作为应用程序之间的中介,并根据控制平面发送的配置影响网络行为。
Istio用于微服务或面向服务的架构(SOA),但并不限于这些领域。事实上,大多数组织都对现有的应用程序和平台进行了大量投资。他们很可能会围绕现有的应用程序构建服务架构,而这正是Istio真正发挥作用的地方。使用Istio,我们可以解决这些应用程序网络问题,而无须更改现有的系统。因为服务代理存在于应用程序之外,所以使用任意架构的应用程序都是受服务网格欢迎的“一等公民”。我们将在混合棕地应用环境中探索更多这方面的内容。
本书介绍了Istio及其实现,教你如何使用Istio构建更有弹性的应用程序,你可以在云环境中监控和操作这些应用程序。在此过程中,我们探索了Istio的设计原则,解释了它与以前的解决方案的不同之处,并讨论了什么时候不应该使用Istio。
当然,我们不想仅仅因为“新”、“时髦”或“酷”就开始使用新技术。但是作为技术专家,我们很容易对新技术感到兴奋;然而,如果不能完全理解何时使用或不使用一种技术,那么将对我们自己和我们的组织造成伤害。让我们花一些时间来理解为什么要使用Istio,它解决了什么问题,要避免什么问题,以及为什么这项技术的发展会令人兴奋。