技术干货:如何基于Istio构建微服务管控平台

2022-12-19

97

什么是服务网格(Service Mesh)?


服务网格是您将应用程序添加到的专用基础架构层。服务网格为您的云原生微服务架构提供集中管理。通过这种方式,您可以在通信、路由、可靠性、安全性和可观察性等方面优化您的应用程序。


微服务架构面临哪些挑战?


微服务与另一种应用程序风格(单体应用程序)进行比较。单体应用程序通常内置了所有业务逻辑,包括入口规则。当您从单体架构迁移到微服务架构时,您最终会得到许多较小的服务。这些“微”服务中的每一个都执行您应用程序的独立功能。根据您的单体应用程序的大小,微服务的数量可能非常多,有时达到数百或数千。单体应用解决了流量如何进入应用的问题(南北流量)。相比之下,微服务还相互组合或重用功能(东西向流量)。


如果没有服务网格,每个微服务不仅需要业务逻辑,还需要连接逻辑。连接性挑战包括如何发现和连接到其他微服务、如何交换和保护数据以及如何监控网络活动。此外,微服务无需完全重新部署即可快速更改。它们通常在 Kubernetes 集群中动态移动。您的应用程序甚至可能分布在多个集群、可用性区域或区域中以实现弹性。


因此,微服务架构中的一些最大挑战包括:

- 跟踪应用程序之间的变化,尤其是随着微服务数量的增长。

- 在所有服务和集群中实施安全性和合规性标准。

- 使用一致的策略控制网络流量。

- 排除网络错误。


让我们看一下没有服务网格的微服务架构。除了实现业务逻辑,每个微服务还必须确保它可以与其他微服务通信;确保通讯安全;应用重试、故障转移和转移策略;根据请求发送到哪个微服务来操作标头;捕获指标和日志;最重要的是跟踪微服务架构的变化。虽然您可以跨几个微服务管理这些任务,但随着您向生态系统中添加更多微服务,复杂性会增加。


服务网格如何解决这些挑战?


服务网格不会为每个微服务实现通信、安全、指标和其他层。为了抽象服务到服务的通信,服务网格使用代理。代理,也称为边车,与您的微服务一起部署。例如,代理可以是与您的应用位于同一 Kubernetes pod 中的容器。代理构成了服务网格的数据平面。通过拦截微服务之间的每一次通信,您可以控制流量。例如,您可以创建规则来转发、保护或操纵请求。


每个 sidecar 代理的配置包括流量加密、证书和路由规则。服务网格指定并应用跨微服务的代理配置。这样,您就可以在整个微服务架构中获得一致的网络连接、安全性和合规性。所有代理都将网络流量指标发送回您可以使用 API 访问的控制平面。然后,您可以确定服务网格的健康状况。


服务网格有哪些优势?

- 分离业务和网络逻辑:

- 设置一次策略并在您需要的任何地方应用它们

- 确保高可用性和容错能力

- 轻松扩展您的微服务架构

- 监控服务网格的健康状况和性能


什么是SolarMesh?


虽然服务网格有这么多优势,并且直到今天已经有很多的用户将服务网格使用在自己的业务系统中,但是对于很多的常见的用户而言使用和运维这样的一套系统还是过于复杂,在通常的使用中,可能我们只需要做一次灰度发布,这时候就涉及不同规则的配置,非常容易出错,如何定义好应用的VirtualService、DestinationRule等规则对于大部分使用者而言都需要很高的学习成本,为了减少使用的成本和运维难度,SolarMesh通过高度的产品化能力将服务网格的能力推出,只需要按照常见的思路去操作控制台,即可轻松的完成比如灰度发布、故障注入、熔断限流等能力。


什么是SolarMesh?SolarMesh是基于服务网格构建的微服务监管平台。SolarMesh基于 Istio 及容器技术,提供微服务流量监控和管理,提供完善的非侵入式服务治理解决方案,在提供Istio流量管理等基础能力外,还提供多集群纳管、监控告警、Wasm插件、注册中心、虚拟机、接口流量、访问日志、Istio组件金丝雀升级等能力,帮助企业在纷繁复杂的微服务调度中快速定位问题,提高研发效率。


Solarmesh的特点


SolarMesh 有如下四大特点:

轻量:组件包含控制端1个服务、业务端1个服务,资源占用低,维护简单

直观:通过流量视图直观掌控单集群、多集群服务状态

便捷:安装便捷(solarctl)、配置Istio规则便捷、查看微服务状态便捷

规范: SolarMesh使用标准的istio规范操作,支持多版本istio接入


SolarMesh支持哪些应用场景?


1.云上应用故障的可视化排查

SolarMesh提供流量视图来体现服务的可观察性。流量视图页面显示网格内服务和工作负载的拓扑,并通过实时的网络流量、延迟、吞吐量等对其进行展示。加上SolarMesh接口流量能力,可以将线上故障精确到接口,能快速排查故障。


2.流量管理

通过SolarMesh,可以轻松实现基于配置的流量管理:将流量管理与基础设施管理分隔开来,并提供了许多独立于应用代码之外的流量管理功能,在部署规模逐步扩大的过程中帮助简化流量管理。


3.业务可观测

通过SolarMesh,可以轻松实现服务之间的可观测性,借助强大可靠且易于使用的监控功能,快速有效地检测和修复问题。SolarMesh提供服务、负载、容器、接口级别全方位的监控能力,提高诊断效率。


4.服务安全

通过SolarMesh,可以轻松实现服务之间的双向TLS认证:双向TLS认证在实现过程中不需要更改服务代码,可以为每个服务提供基于角色的强大身份认证机制,以实现跨集群、跨云端的交互操作。


SolarMesh有哪些基本功能?

- 多集群纳管

- 流量管理

- 接口流量

- Wasm

- 虚拟机

- 注册中心

- 监控告警

- ……






SolarMesh,基于Istio构建的微服务监管平台,点击立即免费体验>>

技术交流
我们建了一个云原生技术交流群,其中有来自Oracle、Citrix、华为、腾讯等国内外云计算专家,立即扫码,拉你进群。目前已有1000+开发者加入我们......
云原生厂商 云原生技术服务商
在云原生时代,行云创新致力于通过赋能开发者,实现企业快速迭代与交付,大幅提升创新效率。
免费试用