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

本文涉及的产品
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 随着站酷业务服务的持续改造,将持续基于阿里云服务网格 ASM 产品,获得更加丰富便捷的企业级特性,助力降本增效。

作者:服务网格ASM

背景介绍


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


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


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

技术挑战


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


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


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


服务指标观测体系的构建


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


服务治理的自动化集成


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

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


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


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


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


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


站酷的业务架构图如下:


1.png


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


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


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


2.png

服务网格 ASM 的托管式架构


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


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


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


3.png


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


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


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


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


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


4.png


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


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


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


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


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


5.png

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


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


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


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


6.png

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


自动化 API 集成


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


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


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

展望


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


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


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

相关文章
|
3月前
|
运维 负载均衡 监控
探索微服务架构下的服务网格(Service Mesh)实践之路
【8月更文挑战第30天】 在当今日益复杂的分布式系统中,微服务架构已成为众多企业解决系统扩展与维护难题的利器。然而,随着服务的不断增多和网络交互的复杂性提升,传统的微服务管理方式开始显得力不从心。服务网格(Service Mesh)作为一种新兴的解决方案,旨在通过提供应用层的网络基础设施来简化服务间通讯,并增强系统的可观察性和安全性。本文将分享我在采用服务网格技术过程中的经验与思考,探讨如何在现代云原生环境中有效地实施服务网格,以及它给开发和运维带来的变革。
|
5月前
|
负载均衡 测试技术 网络安全
阿里云服务网格ASM多集群实践(一)多集群管理概述
服务网格多集群管理网络打通和部署模式的多种最佳实践
|
4月前
|
Cloud Native 测试技术 开发者
阿里云服务网格ASM多集群实践(二):高效按需的应用多环境部署与全链路灰度发布
介绍服务网格ASM提出的一种多集群部署下的多环境部署与全链路灰度发布解决方案。
|
5月前
|
人工智能 安全 Go
使用阿里云服务网格 ASM LLMProxy 插件保障大模型用户数据安全
本文介绍如何使用ASM LLMProxy动态为LLM请求添加API_KEY、使用模式匹配以及私有大模型判别请求敏感信息并根据判别结果拒绝请求等功能,帮助用户提升LLM场景下的安全水位。
|
5月前
|
负载均衡 Kubernetes 算法
服务网格 ASM 负载均衡算法全面解析
在本文中,笔者将解析服务网格的多种负载均衡算法的实现原理和使用场景,为服务网格负载均衡算法的选择提供参考。
|
6月前
|
监控 负载均衡 数据安全/隐私保护
探索微服务架构下的服务网格(Service Mesh)实践
【5月更文挑战第6天】 在现代软件工程的复杂多变的开发环境中,微服务架构已成为构建、部署和扩展应用的一种流行方式。随着微服务架构的普及,服务网格(Service Mesh)作为一种新兴技术范式,旨在提供一种透明且高效的方式来管理微服务间的通讯。本文将深入探讨服务网格的核心概念、它在微服务架构中的作用以及如何在实际项目中落地实施服务网格。通过剖析服务网格的关键组件及其与现有系统的协同工作方式,我们揭示了服务网格提高系统可观察性、安全性和可操作性的内在机制。此外,文章还将分享一些实践中的挑战和应对策略,为开发者和企业决策者提供实用的参考。
|
6月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践之路
【4月更文挑战第30天】 在现代云计算的大背景下,微服务架构以其灵活性和可扩展性成为众多企业转型的首选。然而,随着服务的激增和网络交互的复杂化,传统的服务通信模式已无法满足需求,服务网格(Service Mesh)应运而生。本文通过分析服务网格的核心组件、运作机制以及在企业中的实际应用案例,探讨了服务网格在微服务架构中的关键作用及其带来的变革,同时提出了实施过程中面临的挑战和解决策略。
|
6月前
|
运维 监控 Cloud Native
云原生架构下的服务网格演进与实践
【5月更文挑战第23天】 随着云计算技术的不断成熟,云原生架构已成为推动企业数字化转型的关键动力。本文将深入探讨服务网格在云原生环境中的重要性,分析其在微服务管理、流量控制和安全性方面的创新应用。通过对服务网格的技术和实践案例的剖析,揭示其如何优化云原生应用的部署、运行和管理,为企业构建更加动态、可靠和高效的分布式系统提供策略指导。
|
6月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践
【4月更文挑战第28天】 在现代云原生应用的后端开发领域,微服务架构已成为一种广泛采用的设计模式。随着分布式系统的复杂性增加,服务之间的通信变得愈加关键。本文将深入探讨服务网格这一创新技术,它旨在提供一种透明且高效的方式来管理、监控和保护微服务间的交互。我们将从服务网格的基本概念出发,分析其在实际应用中的优势与挑战,并通过一个案例研究来展示如何在现有的后端系统中集成服务网格。
|
6月前
|
Kubernetes Cloud Native 测试技术
使用ASM流量泳道的全链路灰度发布实践
服务网格ASM实现全链路灰度发布:通过流量泳道隔离不同版本环境,配置虚拟服务实现灰度比例控制。从创建泳道、打标签、部署新版本到灰度切流、最终上线及下线旧版。

相关产品

  • 服务网格