共计 4171 个字符,预计需要花费 11 分钟才能阅读完成。
作者:王夕宁、刘强、华相
公司介绍
丽迅物流是百丽旗下专一于时尚产业、为企业提供业余物流及供应链解决方案的服务商。其产品服务次要包含城市落地配、仓配一体、支线运输及定制化解决方案。通过自研智能化物流治理平台,全面助力企业单干集约化倒退。目前,丽迅物流已在全国领有 70+ 全渠道实体云仓、6 大核心电商仓,总面积达 100 万 + 平方米,服务笼罩 300+ 城市、3000+ 商圈,为多家出名时尚品牌及其品牌门店提供全渠道配送服务。
为了升高业务各环节中的运维老本、进步物流服务效率,2021 年 8 月起,丽迅物流开始在阿里云上实现本身从 IDC 自建到全面云原生化的过程。其中应用了阿里云容器镜像仓库企业版 ACR EE 和阿里云容器服务 ACK 作为容器制品治理及调度平台,应用了阿里云服务网格 ASM 作为云原生应用服务的分布式治理平台,通过服务网格的服务治理和流量管制性能,实现了应用程序的高效部署和扩大。
通过本文,丽迅物流架构师刘强分享了对于基于阿里云服务网格 ASM 如何减速企业业务云原生化过程的实践经验。
业务痛点
在技术架构转型及业务疾速倒退的背景下,丽迅物流须要和各供应链撑持平台、研发平台等多个业务单元和合作伙伴进行业务交互,其业务零碎多元化并且具备开放性。在市场环境和消费者需要疾速变动的现状下,咱们更心愿将精力专一于外围业务的研发。包含了以下须要解决的业务问题痛点:
- 利用版本迭代艰难
面对疾速变动的客户、业务要求,所依赖的利用性能越来越多。业务越简单,代码的耦合度也越来越高,新个性上线周期逐渐拉长,使得利用版本迭代愈发艰难。 - 异构零碎无奈对立治理
企业级 IT 零碎多语言、多协定、多框架的现状,为对立进行服务整合、服务治理设下困局。同时,因为 IT 零碎部署基础设施简单,反对跨平台、跨多个 Kubernetes 集群的技术难点亟需解决。 - 构建对立的云原生应用服务研发平台存在肯定艰难
以 Spring Cloud 为代表的开源微服务框架成为业界支流的微服务脚手架。这些框架已具备服务注册发现、健康检查等根底微服务能力,但面对企业级利用所波及的服务拜访安全控制、服务流控、路由管制、灰度公布等高阶服务治理问题,仍须利用自行整合大量的第三方开源框架。这使得云原生应用服务业务利用设计开发具备较高的技术门槛,对于企业构建对立的云原生应用服务研发平台带来肯定艰难。 - 简单的运维体系
现有的运维体系存在肯定的复杂性,相比于服务网格提供围绕流量治理、安全性、可观测性的一系列性能,目前对于大规模治理应用服务的运维体系存在挑战。
解决方案
作为业内首个全托管 Istio 兼容的服务网格产品 ASM,一开始从架构上就放弃了业界当先性以及社区与业界倒退的一致性,管制立体的组件托管在阿里云侧,与数据面侧的用户集群独立,放弃高可用部署与稳定性。ASM 产品是基于社区开源的 Istio 定制实现的,在托管的管制面侧提供了用于撑持精细化的流量治理和平安治理的组件能力。通过托管模式,解耦了 Istio 组件与所治理的 K8s 集群的生命周期治理,使得架构更加灵便,晋升了零碎的可伸缩性。
阿里云服务网格 ASM 架构图
托管式服务网格 ASM 在成为多种类型计算服务对立治理的基础设施中,提供了对立的流量治理能力、对立的服务平安能力、对立的服务可观测性能力、以及基于 WebAssembly 实现对立的代理可扩大能力,以此构筑企业级能力。
除大数据的剖析体系外,丽迅物流的以后零碎曾经全面接入服务网格体系,包含应用以下能力:
丽迅科技业务利用部署架构图
- 认证鉴权体系
客户端发动业务申请,后端须要验证用户申请的合法性。例如,判断用户申请是否有该资源拜访权限。认证通过后,返回后果中还须要减少一些原始申请中没有的信息,例如用户认证通过后在 header 中增加业务版本号、用户 ID 等。
针对上述业务场景,ASM 提供了自定义受权服务。在 ASM 网关上退出鉴权流程,以确保只有失去受权的状况下,能力拜访要害服务。
具体能够参见:https://help.aliyun.com/document_detail/446628.html?spm=a2c4g…
此外,阿里云服务网格 ASM 产品为服务网格下的每一个工作负载提供了简略易用的身份定义,并依据特定场景提供定制机制用于扩大身份构建体系,同时兼容社区 SPIFFE 规范;并提供了基于策略的信赖引擎作为构建零信赖的要害外围。
- 从微服务框架到服务网格的联合与迁徙
在原零碎 2.0 体系下,利用微服务之间调用时通过服务注册核心 Eureka 获取实例的 IP 和端口,也就是说 Eureka 通过将服务实例注册到注册表中,并通过 Eureka 客户端进行负载平衡,使得服务能够依据须要动静地抉择可用的服务实例进行连贯。
在切换到 Kubernetes 和服务网格体系上之后,替换其中微服务应用程序中的 Spring Cloud 模块性能,包含服务注册和发现切换到 Kubernetes 体系,基于 K8s service+Core DNS 实现,也就是说,既然 Kubernetes 曾经在 Pod 调度的同时保护了服务和 Endpoint 间的数据,那么就没有必要再独自搞一套名字服务的机制进行服务注册,对立收敛到 Kubernetes 的服务注册与发现是最佳实际。
通过以上的简略革新,各种不同语言、各种不同开发框架开发的服务,只有业务协定相通,彼此能够相互拜访,拜访协定能够被网格治理,就都能够通过 ASM 进行对立的治理。
管制面上能够配置对立的服务治理规定。数据面上,对立应用 Sidecar 代理进行服务发现、负载平衡和其余流量、平安、可察看性等相干能力。当然在迁徙过程两头,也能够阶段性地保留原有微服务框架的注册核心,使 ASM 和其余的服务发现联合应用的中间状态,让网格中的服务能够拜访到微服务注册核心的服务。
具体能够参见:https://help.aliyun.com/document_detail/2527072.html
- 全链路灰度
在生产环境失常运行的同时,开始针对局部应用服务进行灰度降级,譬如图中的 B 和 D 利用进行灰度,在不须要批改应用逻辑的状况下,利用 Service Mesh 技术就能够实现依据申请起源或者申请的头信息,动静地路由到不同版本的服务上。譬如,当申请头中蕴含 tag1 时,利用 A 就会调用灰度版本 B,而 C 并没有灰度版本,零碎就会主动 fallback 回退到原有的版本。
全链路灰度示意图 当您须要在多个服务间实现全链路的灰度公布时,能够通过配置 TrafficLabel 来辨认流量特色,将网关入口流量分为失常流量和灰度流量。灰度流量特色会在申请调用链通过的各个服务间进行传递,从而实现全链路灰度公布。
具体能够参见:https://help.aliyun.com/document_detail/377563.html?spm=a2c4g…
- 对立的可观测性体系和联动剖析
阿里云服务网格 ASM 提供了网格可观测核心来对立进行可观测性体系和联动剖析,分为 3 个维度。
一是日志剖析, 通过对数据立体的 AccessLog 采集剖析,特地是对入口网关日志的剖析,能够剖析出服务申请的流量状况、状态码比例等,从而能够进一步优化这些服务间的调用。
第二个可观测性能力是分布式追踪能力。 为分布式应用的开发者提供了残缺的调用链路还原、调用申请量统计、链路拓扑、利用依赖剖析等工具,能够帮忙开发者疾速剖析和诊断分布式应用架构下的性能瓶颈,进步微服务时代下的开发诊断效率。
第三个可观测性能力是监控能力。 依据监督的四个维度(提早,流量,谬误和饱和度)生成一组服务指标,来理解、监督网格中服务的行为。
此外,还提供了网格拓扑,用于提供对服务网格行为的即时洞察。除了弱小的网格流量拓扑可视化之外,还提供了回放性能,能够选定过来时间段的流量。
- Envoy Filter 扩大能力
ASM 提供了开箱即用的 EnvoyFilter 插件市场来保护扩大插件的全生命周期治理。
基于内置的模板,用户只须要依据对应的参数要求,进行简略配置,就能够部署出对应的 EnvoyFilter 插件。通过这样的机制,使得数据立体成为更易可扩大的插件汇合能力。
产品劣势
服务网格作为一种用来治理应用服务通信的根底核心技术,为应用服务间的调用带来了平安、牢靠、疾速、利用无感知的流量路由、平安、可观测能力。
能够看到,阿里云服务网格 ASM 为云原生利用治理带来了重要的劣势,总结为以下六个方面。
劣势之一:异构服务对立治理
- 多语言多框架的互通与治理、与传统微服务体系交融的双模架构
- 精细化的多协定流量管制、东西向与南北向流量的对立治理
- 对立的异构计算基础设施的主动服务发现
劣势之二:端到端的可观测
- 日志、监控与跟踪交融的一体化智能运维
- 直观易用的可视化网格拓扑、基于色彩标识的衰弱辨认体系
- 内置最佳实际、自助式网格诊断
劣势之三:零信赖平安
- 全局惟一的工作负载身份(Identity)、端到端 mTLS 加密、基于属性的访问控制 (ABAC)
- 一站式配置 JWT 鉴权、接入自定义内部受权零碎、及内部 OIDC 认证鉴权身份管理系统
- OPA 申明式策略引擎、及基于仪表板的残缺审计历史记录及洞察剖析
劣势之四:软硬联合性能优化
- 首个基于 Intel Multi-Buffer 技术晋升 TLS 加解密的服务网格平台
- NFD 主动探测硬件特色,自适应反对诸如 AVX 指令集、QAT 减速等个性
- 首批通过可信云服务网格平台以及性能评测先进级认证
劣势之五:SLO 驱动的利用弹性
- 服务级别指标 (SLO) 策略
- 基于可观测性数据的应用服务的主动弹性伸缩
- 多集群流量突发下的主动切换与故障容灾
劣势之六:开箱即用扩大 & 生态兼容
- 开箱即用的 EnvoyFilter 插件市场、WebAssembly 插件全生命周期治理
- 与 Proxyless 模式的对立交融,反对 SDK、内核 eBPF 形式
- 兼容 Istio 生态系统,反对 Serverless/Knative,AI Serving/KServe
建设成绩
利用阿里云服务网格 ASM 之后,高效解决了多语言技术栈状况下利用链路调用简单的运维难题,并解决了与云上其余产品搭配应用时的易用性问题,从而使 运维效率晋升了 40%。 同时,借助 ASM 提供的丰盛的企业级能力和齐备的可观测能力,构建服务网格的施行周期缩短了 50%。
参考:
[1] 运维老本升高 50%,丽迅物流是如何应答大规模容器镜像治理挑战的
[2] 如何构建 Sidecarless 模式的高性能服务网格