私有化输出的服务网格我们是这样做的

介绍

微服务开发的问题

微服务架构下我们在开发中遇到的常见的问题有以下 4 个:

  • 多语言问题:有多种编程语言,node.js, JAVA, GoLang…微服务需要为每种语言都维护一种中间件 SDK
  • 升级推动难:SDK 升级需要推动业务应用进行代码修改和发布,对业务有打扰,业务压力下推动成本高
  • 迭代速度慢:由于多语言多版本的存在,需要花费大量精力去维护历史版本,降低了迭代速度,升级速度慢 (在数据面选型上也考虑研发效能的问题)
  • 多版本问题:每种语言的 SDK 都面临版本升级,同时存在大量不同的版本互相访问,兼容性和测试维护成本巨大

为了解决这些问题,服务网格的 Sidecar + APP 模式是一个很好的方案

服务网格

Service Mesh 是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。服务网格的概念被提出也有很多年了,服务网格的也出现了很多不同类型的实现,比如 Istio、Linkerd,Open Service Mesh 等等,还有出现类似 ebpf + envoy,proxylessMesh 等等其他方式的服务网格实现,其实都是在想如何解决当下生产、开发中的问题,我们熟知的关注度最多还是 Istio,架构如下:

通过 Sidecar 和业务应用分离,控制面 Istiod 实现对整个流量的管控,基于 Istio + Envoy 的能力实现了微服务的连接、安全、控制和可观测,服务网格在微服务架构下体现了与应用解耦的平台级服务治理能力,推出来统一的多协议多语言的微服务治理,同时保持了基础架构与应用解耦,降低升级和运维的成本,而且实现了微服务间的安全可靠通信,让不同类型的微服务的通信具备可观测。

阿里云专有云服务网格能力

服务网格的优势被大家广泛认可,直到今天已经有很多的用户将服务网格使用在自己的生产业务系统中,但是对于很多的常见的用户而言使用和运维这样的一套系统还是过于复杂,在通常的使用中,可能我们只需要做一次灰度发布,这时候就涉及不同规则的配置,非常容易出错,如何定义好应用的 VirtualService、DestinationRule 等规则对于大部分使用者而言都需要很高的学习成本,为了减少使用的成本和运维难度,阿里云专有云服务网格通过高度的产品化能力将服务网格的能力推出,只需要按照常见的思路去操作控制台,即可轻松的完成比如灰度发布、标签路由、鉴权、全链路等能力。

下面是一张阿里云专有云服务网格的能力大图,覆盖了协议、环境、服务治理、可观测、安全生产几个方面:

接下来来介绍下我们的产品能力:

服务治理

  • 流量管理

流量管理的能力很多,包含了负载均衡、熔断、限流、超时、重试、流量镜像、连接池管理、故障注入、同 AZ 路由、服务 Mock。

限流的能力提供了单机的限流、基于 header 的限流、Path 的限流。

故障注入中除了开源社区的服务级别的故障外,还提供了针对服务单个 Pod 的故障注入,这样可以进行单个 Pod 的测试。

服务 Mock 的能力可以为开发人员 Mock 指定接口的返回,在接口还没有开发完成的时候,提高开发测试的效率,服务 Mock 的配置中可以选择请求的路径、端口号、方法、状态码、Header、返回 Json 数据。

  • 标签路由

通过标签路由可以选择好基线的版本,然后选择对应的路由版本,配置路由策略,比如基于权重的策略、基于内容的策略,通过简单的配置轻松完成路由规则的配置。

  • 服务注册

服务注册其实顾名思义就是将微服务注册到注册中心,这个能力主要是为了帮助一些非 Java 类型的服务实现跟已有 Java 类型服务的通信,比如 Spring Cloud 服务需要与非 Java 互通,为了方便代码编写,Spring Cloud 服务需要像调用其他 Spring Cloud 服务一样去调用非 Java 服务,因此就需要非 Java 的服务注册到对应的注册中心,这里我们支持了非 Java 服务注册到 Nacos、Eureka 注册中心。

  • 运行监控

展示服务的运行监控数据,比如平均处理请求的次数、请求的成功率。

  • 灰度发布

可以通过发布版本的方式发布一个灰度版本的镜像,填写对应的版本号、镜像,可以配置权重、内容路由规则,可以使用回滚、灰度成功能力。

  • 零信任安全

可以配置双向身份认证、请求的 JWT 认证,还可以配置对应的授权策略。

全链路路由

全链路路由可以实现在整条调用链按照指定规则路由,比如在测试某个服务是否符合预期,但是测试服务需要依赖其他服务,这时候可以通过全链路的能力,拉出一个开发环境的泳道,将指定 tag 标记的流量打到测试服务中,而其他请求还在基线环境中,这时候如果还有其他服务需要测试,也可以加入到这个泳道中一起测试,全链路路由的好处就是可以任意路由到服务链路中间服务,在基线环境外研发/测试人员可以轻松部署一套独立环境,提升研发测试效率,降低运维成本。

  • 创建泳道

创建一个属于对应服务网格的泳道,即为不同的环境(创建泳道前先确定号基线版本环境)。

  • 发布服务/导入服务

创建好泳道后可以发布一个服务到泳道中,也可以导入部署的服务。

选择入口的应用,配置规则(什么样的流量特征的请求可以进入泳道中)。

入口网关

通过服务网格的 Istio Ingress Gateway 的能力可以将服务网格内服务暴露出去,协议上我们支持 HTTP、HTTPS、GRPC,除了暴露之外,我们还支持配置路由规则,这样可以对入口服务的流量进行管理。

外部服务

通过外部服务纳管将网格外的服务纳管进来管理,可以配置服务的协议、地址、EndPoint,还可以配置服务不同 EndPoint 的标签。

服务拓扑

结合 Prometheus + Kiali,可以展示整个调用链路的拓扑结构,其中包含了调用的服务、版本等信息。

网格管理

  • 集群管理

可以通过简单的接入集群的能力,将已有的 K8s 集群加入进来,加入进来后,可以通过网格管理中创建网格的能力,在对应的集群中部署服务网格,创建网格时候可以配置网关、控制面 Istiod 的高可用能力、配置集群中服务的 Sidecar 资源(也可以单独配置)、是否打开 AccessLog 日志等能力。

  • 网格配置管理

创建好服务网格后需要对网格进行管理、配置,在高级选项中可以看到常见的配置,比如网关高可用、控制面高可用、网关的资源、控制面资源、服务访问限制、可观测等。

除了这些外,还提供了服务网格对接注册中心的能力,这里我们支持了常见的 Nacos、Eureka、Zookeeper、Consul 注册中心对接到服务网格中。

  • 多集群管理

单集群的可以满足大部分用户的要求,但是为了容灾,多集群的管理、互通也非常重要,服务网格的多集群能力在社区版本中也支持,但是配置复杂,我们的产品中提供了一键管理多集群的能力,通过多集群配置-纳管集群的能力,轻松的实现多个集群之间应用的互通、治理。

部署和输出

我们支持通过阿里云混合云企业版输出、CNStack 输出,同时我们也支持独立部署输出,只需要一个 K8s 集群,可以快速轻松拉起专有云服务网格的能力,体验产品化的服务网格能力。

作者:古琦

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术解读:Dragonfly 基于 P2P 的智能镜像加速系统

背景 网络下载 提起网络下载领域,你应该首先会想到基于 TCP/IP 协议簇的 C/S 模式。这种模式希望每一个客户机都与服务器建立 TCP 连接,服务器轮询监听 TCP 连接并依次响应,如下图: 上世纪末期,基于 C/S 模式的思想&…

Kruise Rollout:灵活可插拔的渐进式发布框架

前言 Kruise Rollout 是 OpenKruise 社区开源的渐进式交付框架。Kruise Rollout 支持配合流量和实例灰度的金丝雀发布、蓝绿发布、A/B Testing 发布,以及发布过程能够基于 Prometheus Metrics 指标自动化分批与暂停,并提供旁路的无感对接、兼容已有的多…

最小生成树的Prime算法的思想

Prime算法的核心步骤是:在带权连通图中V是包含所有顶点的集合, U已经在最小生成树中的节点,从图中任意某一顶点v开始,此时集合U{v},重复执行下述操作:在所有u∈U,w∈V-U的边(u,w)∈E中找到一条权值最小的边…

一线技术人应该关注的四种思维能力

引言 作为长期奋战在一线的技术人,我深刻体会到如下几个思维能力对技术人成长的重要性,熟练运用这几种思维可以帮助我们快速的进入到新的领域,在分析、定位和解决问题上有很大帮助。 抽象思维:帮助我们快速抽取面对问题的关键要素…

Nacos 企业版如何提升读写性能和可观测性

概述 微服务引擎 MSE 发布 2.0.4.0 版本,新版本主要在性能和可观测能力升大幅提升,也加固了安全性。性能方面,基于 Dragonwell 进行构建,服务发现和配置性能提升达 40%以上;可观测方面,提供了服务注册的轨…

「技术人生」第9篇:如何设定业务目标

写在前面 上一篇文章讲了如何构建业务大图,看到有评论说这和设定 OKR 差不多啊。希望其他读者不要被类似的看法带偏。业务大图是业务顶层设计,是战略目标、业务长期价值、业务维度拆分、业务组织设计、业务长期发展方向、关键业务战役、短期重点事项的综…

我们总结了 3 大使用建议,并首次公开 Nacos3.0 规划图

Nacos 是什么 Nacos 是 Dynamic Naming and Configuration-Service 的首字母简称,定位于一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。从 2018 年 7 月开始宣布开源以来,已经走过了第四个年头,在这四年里,备…

容斥原理 和 欧拉函数

在概率论中,对于概率空间中的事件A1,……,An,当n 2时容斥原理的公式为: 当n 3时,公式为: 一般地: 正数n的唯一素因子分解式p1^a1 * p2^a2 * p3^a3 ……* pk^ak 。求1,2…

Dubbo 3 StateRouter:下一代微服务高效流量路由

目前的微服务架构中,通常包含服务消费者、服务提供者、注册中心、服务治理四元素,其中服务消费者会向注册中心获取服务提供者的地址列表,并根据路由策略选出需要调用的目标服务提供者地址列表,最后根据负载算法直接调用提供者。当…

首次全面解析云原生成熟度模型:解决企业「诊断难、规划难、选型难」问题

从“上云”到“云上”原生,云原生提供了最优用云路径,云原生的技术价值已被广泛认可。当前行业用户全面转型云原生已是大势所趋,用户侧云原生平台建设和应用云原生化改造进程正在加速。 然而,云原生复杂的技术栈和传统IT的历史包…

有效预警6要素:亿级调用量的阿里云弹性计算SRE实践

编者按:随着分布式系统和业务需求的飞速发展,监控告警在我们保障系统稳定性和事故快速恢复的全周期中都是至关重要的。9月3号,阿里云弹性计算管控SRE李成武老师(花名佐井),受「TakinTalks稳定性社区」邀请,在线分享日常…

EMR 重磅发布智能运维诊断系统(EMR Doctor)——开源大数据平台运维利器

大数据运维的挑战—如何保证集群稳定与运行效率 企业级大数据集群通常拥有海量的数据存储、日常运算成干上万的计算任务,需要满足各类上层业务的计算需求。对于这类集群的运维往往充满着挑战:海量的数据、庞杂的组件以及组件之间复杂的依赖关系、对于时…

从中间件到分布式数据库,PolarDB-X 的透明之路

PolarDB-X前身是淘宝内部使用的分库分表中间件TDDL(2007年,Java库的形态),早期以DRDS(2012年开始研发,2014年上线,分库分表中间件MySQL Proxy的形态)的品牌在阿里云上提供服务&#…

阿里云EMAS 移动测试,帮您快速掌握移动端兼容性测试技巧

一、兼容性测试可以查到哪些问题 界面适配问题,确定是否能正常安装、启动。各个页面潜在的崩溃、无响应等问题。应用性能问题,例如启动时间、页面加载时间、功耗等。 二、阿里云兼容性测试工具的功能优势 提供在线录制功能,可视化录制出功能…

零信任策略下K8s安全监控最佳实践(K+)

云原生架构新风险与需求概述 安全风险概述 传统的网络安全架构理念是基于边界的安全架构,企业构建网络安全体系时,首先要做的是寻找安全边界,把网络划分为外网、内网等不同的区域,然后在边界上部署防火墙、入侵检测、WAF等产品。…

ATC‘22顶会论文RunD:高密高并发的轻量级 Serverless 安全容器运行时

编者按:目前的安全容器软件栈 — 包括 host 操作系统中的 cgroup、guest 操作系统和用于函数工作负载的容器 rootfs,都会导致低部署密度和在低并发能力。为此,RunD 作为一种轻量级安全容器运行时,提出了 host-to-guest 的全栈优化…

Dubbo Mesh:从服务框架到统一服务控制平台

Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性&…

智能搜索引擎 | 驱动电商业务增长实践

开放搜索是阿里集团搜索业务中台,基于大数据深度学习在线服务体系打造的智能搜索云服务产品。拥有核心引擎、召回排序、搜索引导、充分开放等核心能力,可应用在电商行业、教育行业、内容行业等场景。目前帮助数千家客户搭建自己的搜索业务。 实践案例&a…

通过 Jenkins 构建 CI/CD 实现全链路灰度

本文介绍通过 Jenkins 构建流水线的方式实现全链路灰度功能。在发布过程中,为了整体稳定性,我们总是希望能够用小部分特定流量来验证下新发布应用是否正常。 即使新版本有问题,也能及时发现,控制影响面,保障了整体的稳…

合阔智云核心生产系统切换到服务网格 ASM 的落地实践

背景 合阔智云(http://www.hexcloud.cn) 是专注于为大中型零售连锁行业,提供全渠道业务中/前台产品和解决方案,并建立以消费者为中心的全渠道交易和敏捷供应链的新一代零售运营协同平台。 合阔智云提供了从全渠道交易管理到订单履约再到门店供应链完整…