站酷基于服务网格 ASM 的生产实践

news2025/2/26 19:37:38

e9de68a05181f722fdcd7dd610a0db08.gif

01

背景介绍

Aliware

站酷(ZCOOL)2006 年 8 月创立于北京,深耕设计领域多年,聚集了 1500 万设计师、摄影师、插画师、艺术家、创意人,在设计创意群体中具有一定的影响力与号召力。站酷在创立之初,就以“让设计更有价值”为自身使命,多年来,一直致力于打造以原创设计为核心的“站酷原创版权生态体系”。

目前站酷旗下除拥有主站设计师互动平台「站酷网」之外,还重点打磨了一站式正版视觉内容交易平台——「站酷海洛」、一站式创意营销解决方案共创平台——「站酷共创」。值得一提的是,站酷近期发布了 AIGC 产品—— 「AI 创作实验室」。通过文字输入,可以在 1 分钟内生成高质量图像, 自公测以来,已经生成图片数十万张。未来也会形成一个 AIGC 学习分享的专属社区。

站酷会在人工智能领域继续深耕,帮助设计师提升效率,更好专注在艺术作品创作的创意上,激发创作灵感。站酷的这一系列生态布局,为设计创意从业者在学习、展示、交流、就业、交易、创业各个环节提供了优质的专业服务,为设计师和企业的成长之路提供了高效的版权解决方案和立体的视觉服务。

02

技术挑战

Aliware

在站酷的业务架构上,尽管使用 Kubernetes 平台解决了业务容器生产调度的问题,但在服务的治理、观测、安全等方面仍面临着诸多挑战。

多语言、多集群服务统一纳管

站酷面向互联网用户,提供站酷网、站酷海洛、站酷学习等各项服务,这些业务使用了 node.js、Java、php 等多种技术栈进行开发,并部署在多个 Kubernetes 集群中,如何通过统一的业务中台统一纳管这些业务是一个很大的技术挑战。

服务指标观测体系的构建

对于上述的业务架构而言,很难对于不同的应用服务实现统一的可观测体系、进行服务指标的统一实时监控。

服务治理的自动化集成

由于站酷建设了统一的业务中台,对于服务的部署、维护、治理等有着较强的自动化配置需求。对于多集群服务治理的场景需要一定的自动化集成能力。

03

基于服务网格 ASM 的生产实践

Aliware

服务网格作为一种用来管理应用服务通信的基础核心技术,  为应用服务间的调用带来了安全、可靠、快速、应用无感知的服务治理、安全、可观测能力。为多语言应用服务的治理、观测等挑战提供了无侵入式的高效解决方案。

而阿里云服务网格产品 ASM 作为业内首个全托管 Istio 兼容的服务网格,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM 产品是基于社区开源的 Istio 定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了 Istio 组件与所管理的 K8s 集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。 

相比社区服务网格 Istio,服务网格 ASM 提供了更为强大实用的多项能力,包括多集群统一纳管、即插即用的插件中心、与阿里云云产品深度集成的可观测中心等,能够更好地帮助站酷解决业务建构中的各种技术挑战,显著降低运维成本。

目前,站酷所有的互联网用户业务都已经接入 ASM,包括站酷主站、站酷海洛等。

站酷的业务架构图如下:

43faafbf94afc7f8d633f2e66357679c.png

多集群、多语言下的应用服务管理

在站酷的生产实践中,多集群、多语言的业务架构对统一管理带来了不小的挑战。对于服务网格来说,由于 Sidecar 模式的无侵入式特性,可以以统一的方式管理以不同技术栈开发的多语言应用,实现显著的运维成本降低。但对于社区服务网格 Istio 而言,多集群下的服务治理、以及对不同的 Kuberenets 集群形态的兼容仍然是一个极大的挑战。

通过使用服务网格 ASM,对多集群、多形态、多语言服务的统一纳管成为了非常简单的工作。托管式服务网格 ASM 在成为多种异构类型计算服务统一管理的基础设施中, 提供了统一的流量管理能力、统一的服务安全能力、统一的服务可观测性能力、以及实现统一的代理可扩展能力, 以此构筑企业级能力。

469d54865ffbcd2a0466107bed6860e7.png

服务网格 ASM 的托管式架构

如上图,对于阿里云容器服务提供的多种数据面集群形态,服务网格 ASM 都提供了统一的管控能力,使得集群形态不再是服务网格落地生产环境的制约。

同时,由于其托管式架构,服务网格 ASM 能够对多个数据面集群进行统一管控。借助 ASM 多集群管控的能力,站酷能够通过一个 ASM 实例对其下多个数据面集群中的服务进行统一管理,有效解决了多集群应用实现统一管理入口的挑战。

对于数据面的多个集群,ASM 采用全局命名空间的方式进行管理,将多个数据面集群中的不同命名空间汇总到一个 ASM 实例中,并可以在全局命名空间中统一进行 Sidecar 注入配置。同时,ASM 也支持在 ASM 实例与不同的数据面集群之间双向地一键式同步命名空间信息。

dca2507f4c9299c1a5945febd2347fff.png

服务网格 ASM 的全局命名空间管理,支持配置多个集群的命名空间下的 Sidecar 注入管理

南北向与东西向流量治理的统一

作为站酷网、站酷海洛、站酷学习等一系列集群中服务的流量入口,站酷启用了多个ASM网关对集群中的服务进行流量的转发与控制。

站酷的服务主要使用 HTTP 与 gRPC 协议,ASM 网关对这些协议都有着很高的支持成熟度,能够原生地支持请求的负载均衡、以及基于多种丰富匹配条件的请求路由等网关能力。

而在社区 Istio 的网关之基础上,ASM 企业版提供了更多的企业级高级特性,包括指标伸缩(HPA)、基于 Intel MultiBuffer 技术的软硬结合性能优化、网关无损升级、SLB 优雅下线等,使网关真正达到了生产可用级别,可以很好地支持各种企业级服务。

5e2b0d81aee8d878aa7859b1f1e28b5e.png

ASM 网关还支持图形化地配置上游服务、域名证书等,显著提高运维效率

使用 ASM 可观测中心进行全业务的实时监控

在主要业务服务都迁移至服务网格平台上之后,利用服务网格 Sidecar 的日志与指标上报能力,可以自然地对网格中的不同服务以及 ASM 网关本身建设统一的可观测能力。

在网格可观测管理中心中,服务网格 ASM 提供了完善的网格可观测化方案。不仅提供日志中心、Prometheus 监控、网格拓扑等多种可观测形式,还与阿里云的其它可观测云产品(SLS 日志服务、ARMS 监测服务等)进行了深度集成(同时兼容开源可观测方案),能够一站式配置各项可观测指标的仪表盘。

在生产环境中,站酷主要利用了日志中心进行了网格可观测性的建设。ASM 通过与日志服务集成、提供网关与网格内 Sidecar 日志的自动采集,同时针对网关与网格内 Sidecar 访问日志分别提供了日志仪表盘,提供包括请求错误率、P95 延迟等实用指标监控,实现了对多集群异构应用的统一可观测性。

2915b3eb83d827361931987bdb46b2da.png

ASM 可观测管理中心与日志仪表盘

插件市场 - 使用 ASM 插件激活拓展能力

在迁移到服务网格 ASM 的过程中,站酷发现服务网格平台和自身的业务架构存在着一定的兼容问题。具体来说,服务网格的数据面 Sidecar 在默认情况下会将请求和响应中的 header 转化为小写。尽管这一行为对于大多数 http 服务来说没有问题,但仍会影响到对 header 大小写敏感的服务。

这一问题可以通过激活数据面 Sidecar 的插件拓展能力、让其保留 header 的大小写来进行解决。服务网格 ASM 在插件拓展中心中提供了即插即用的插件市场。针对各种实际业务场景,提供了多种即插即用式插件,经过简单几个参数的配置即可快速启用数据面 Sidecar 的各种拓展能力。通过对 ASM 插件市场的利用,站酷在很短时间内就解决了业务迁移中遇到的问题。

a5812623f8fcc000dcef0ad8a65a073e.png

ASM 插件市场,提供一系列可以一键启用的插件拓展能力

自动化 API 集成

在提供企业级服务网格平台的各项特性的基础上,自动化集成也是网格平台的关键一环。在生产实践中,由于站酷自有业务中台,因此会对服务网格平台产生较强的自动化集成需求。

作为阿里云云产品, 服务网格 ASM 除了通用的 OpenAPI/SDK 集成方式之外,也提供了其它多样化的产品功能模块集成方式,包括 Kube API、Terraform 等,产品所提供的各大功能模块不仅能够通过 ASM 控制台进行访问,也能以 API 的形式集成进厂商的自有业务中台之中,助力网格运维自动化。

举例来说,在站酷的生产实践中,前述所提的全局命名空间管理功能就被站酷以 Open API 的形式集成进自家业务中台,实现了完备的网格内多集群自动化管理。针对网格配置, 使用 Kube API 实现了与原有 GitOps 平台的平滑对接。

04

展望

Aliware

随着站酷业务服务的持续改造,将持续基于阿里云服务网格 ASM 产品,获得更加丰富便捷的企业级特性,助力降本增效,包括但不限于:

1、提供便捷的网格内服务安全与鉴权方案:ASM 现已提供 ASM 安全策略中心,可帮助快速配置网关与网格内服务安全鉴权方案

2、更加精细化的流量治理能力:随着站酷微服务化改造的不断加深,将会持续挖掘 ASM 提供的多项企业级流量治理特性,如全链路灰度发布、本地限流、接口级熔断。

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

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

相关文章

libcurl 库的编译

因为要用到 libcurl 库的接口进行练习,而现在手上只有curl相关的头文件,那没办法只能下载源码进行编译了,这里记录一下编译 x86 与 hisi dv300 版本的动态库。 根据头文件 curlver.h 里的版本信息,我是直接下载 7.67.0 版本的源码…

领悟《信号与系统》之 LTI 系统的卷积积分及性质

LTI 系统的卷积积分及性质一、卷积积分及其性质1. 任意信号的分解2. 任意信号作用下的零状态响应3. 卷积的定义4. 卷积性质1. 代数性质2. f(t)与奇异信号的卷积 (非常重要)3. 卷积的微分和积分4. 卷积时移5. 常用信号的卷积公式二、总结重点笔记主要记录…

MNN--初步学习

来自阿里MNN有三个贡献点: 提出了预推理机制,在线计算推理成本和最优方案优化了kernel提出后端抽象实现混合调度MNN的架构: 分离线和在线两部分。离线就是很传统的模型转换、优化、压缩、量化的那一套东西,这里mnn转出的模型文件…

【外卖项目实战开发三】

文章目录分类管理业务开发公共字段自动填充问题分析代码实现功能完善新增分类需求分析数据模型代码开发分类信息分页查询需求分析代码开发删除分类需求分析代码开发代码完善关键代码修改分类需求分析代码实现分类管理业务开发 公共字段自动填充 问题分析 前面我们已经完成了…

A股上市公司MSCI指数和ESG评级效果(2010-2021年)

1、数据来源:摩根斯坦利资本国际公司(Morgan Stanley Capital International) 2、时间跨度:2010--2021 3、区域范围:A股上市公司 4、指标说明: ESG是英文Environmental(环境)、Social(社会&…

《人月神话》(The Mythical Man-Month)6贯彻执行(Passing the Word)

《人月神话》(The Mythical Man-Month)Chapter 6. 贯彻执行 Passing the Word他只是坐在那里,嘴里说:"做这个!做那个!"当然,什么都不会发生,光说不做是没有用的。- 哈里杜…

基于主从博弈的社区综合能源系统分布式协同优化运行策略matlab/cplex程序

基于主从博弈的社区综合能源系统分布式协同优化运行策略matlab/cplex程序 随着能源市场由传统的垂直一体式结构向交互竞争型 结构转变,社区综合能源系统的分布式特征愈发明显,传统 的集中优化方法难以揭示多主体间的交互行为。该文提出一 种基于主从博弈…

(免费分享)基于ssm在线点餐

源码获取:关注文末gongzhonghao,017领取下载链接 开发工具:IDEA ,Tomcat8.0,数据库:mysql5.7 /*** FileName: CategoryController** Date: 2020/9/30 17:04* Description:*/ package com.qst.goldenarches.contro…

关于环境保护html网页设计完整版-4环保垃圾分类5页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 环境保护 | 保护地球 | 校园环保 | 垃圾分类 | 绿色家园 | 等网站的设计与制作HTML期末大学生网页设计作业 HTML:结构 CSS:样…

Node.js 入门教程 14 使用 exports 从 Node.js 文件中公开功能

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Node.js 入门教程14 使用 exports 从 Node.js 文件中公开功能14 使用 exports 从 Node.js 文件中公开功能 Node.js 具有内置的模块系统。 …

Python脚本实现BJTU校园网自动登录

文章目录 1.背景介绍2.登录分析3.代码分析4.源代码1.背景介绍 BJTU的校园网连接好以后需要输入账号和密码才能正确登录,如下图所示。整个流程比较繁琐,尤其是很多服务器、工作站是无图形化的系统,大部分时间需要SSH连接,所以通过界面登录十分不方便。 所以就想了一个办法,…

(附源码)计算机毕业设计Java办公自动化管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

(附源码)计算机毕业设计Java巴州监控中心人事管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

java_ 多线程知识笔记(一)

文章目录前言:1.如何理解线程2.进程和线程的关系3.多线程编程第一种:继承Thread类第二种:实现Runnable 接口:第三种:使用Lambda表达式4.Thread 用法1.Thread常见的构造方法2.Thread的几个常见的属性5.等待一个线程6.并发和并行前言: 为什么要引入多线程编程 java引用进程的概…

【好书推荐】计算机网络:自顶向下方法(第七版)

人生的美妙之处在于迷上一样东西。人生苦短,少做些虚无缥缈的事。 – 刘慈欣-《三体》 推荐理由 自计算机网络诞生以来,经过数十年的发展,计算机的体系已经非常庞大,同时计算机网络也大大促进了人类社会的发展。无数大佬前赴后继…

【python量化】将Informer用于股价预测

写在前面Informer模型来自发表于AAAI21的一篇best paper《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》。Informer模型针对Transformer存在的一系列问题,如二次时间复杂度、高内存使用率以及Encoder-Decoder的结构限制&…

后台管理不可忽视,华为云会议最新支持管理员分权分域

如今,跨地域, 跨组织,需要随时随地接入的远程沟通协作变得愈加频繁,众多企业开始纷纷建设符合自身需求的智能会议室。在会议系统的众多能力中,后台管理,这项常常被C端用户忽略的能力,B端的企业却…

真的够可以的,基于Netty实现了RPC框架

RPC全称Remote Procedure Call,即远程过程调用,对于调用者无感知这是一个远程调用功能。目前流行的开源RPC 框架有阿里的Dubbo、Google 的 gRPC、Twitter 的Finagle 等。本次RPC框架的设计主要参考的是阿里的Dubbo,这里Netty 基本上是作为架构…

1. Spring Boot 3 入门学习教程之开发第一个 Spring Boot 应用程序

Spring Boot 3 入门学习教程之开发第一个 Spring Boot 应用程序0. 前言1. Spring Boot 介绍2. 系统要求2.1 Servlet容器2.2 GraalVM Native Image(GraalVM 原生镜像)3. 安装Spring Boot 开发环境3.1 安装JDK3.2 安装Spring Boot构建工具3.2.1 方式一&…

C++标准库分析总结(九)——<仿函数/函数对象>

目录 1.functor仿函数简介 2 仿函数的分类 3 仿函数使用 4 仿函数可适配的条件 1.functor仿函数简介 仿函数是STL中最简单的部分,存在的本质就是为STL算法部分服务的,一般不单独使用。仿函数(functors)又称为函数对象&…