云快充研发中心平台架构师谈云原生稳定性建设之路

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: 云快充研发中心平台架构师谈云原生稳定性建设之路

大家好,我是来自云快充研发中心的平台架构师吕周洋,今天我给大家分享云快充云原生稳定性之路。


云快充成立于2016年,以充电服务和能源管理为核心,业务涵盖九个方向。截止到2022年11月,业务覆盖370个城市,接入电桩运营商 7400人,接入充电终端31万家,与640个桩企达成合作。目前,新能源行业发展情况除了大力满足业务的快速发展,服务更多客户外,云快充一直非常重视线上服务的稳定性建设,以提升用户的充电体验。


业务系统容器化


为了确保业务的稳定运行,云快充从 2019年 就确定了业务系统百分之百容器化的技术路线。在当时虽然容器平台还有其他的一些方案可以选择,但基本已经可以明确的感受到K8s 成为云原生时代的基础设施底座的技术趋势。K8s 能够带来的价值是多方面的,包括研发运营与效率的提升,降低资源成本等。

image.png

基于自身业务,云快充最看重的是 K8s 对于业务稳定性的提升。在大型分布式 IT 架构中,任何一个环节都有可能发生故障。比如云上的 ECS 不是百分之百能够保持正常运行,每一个应用进程都有可能在长时间运行后遇到宕机的情况。我们需要确保的是,当这些故障发生的时候,业务不要受到任何的影响。K8s 的调度机制以及健康检查机制为IT 架构提供了自愈能力,出现故障的时候,能够自动把业务 Pod 重新调度到正常的节点上。这个过程完全不需要人工介入。通过 K8s 集群的跨可用区部署,配合上同可用区优先的微服务访问策略,甚至可以做到机房级别故障的罕见场景下,业务系统依然正常提供服务。


这一点我们在实战中也验证过。在业务高峰期,通过 K8s 的弹性伸缩能力,可以实现基于业务负载的自动弹性扩容。这个弹性能力涉及到工作负载的水平伸缩以及计算资源的水平伸缩。在全面使用 K8s 之前,我们考虑过类似的方案,但因为担心影响业务稳定性,并没有真正投入大规模使用。全面容器化之前,我们的团队也尝试自己搭建 K8s 集群,验证 K8s 的各项能力,通过一段时间的实战,还是遇到了不少的挑战。

image.png

K8s 是一个大型复杂的分布式系统,涉及十多个核心组件,这些组件和云上的 IaaS 层产生集成的时候就更为复杂了,光是搞定网络插件就需要投入不少的精力,我们也没有专业的技术人员能够快速解决节点异常、Pod 异常、网络不通等问题。特别是有时候遇到 K8s 本身的 bug,就更无能为力。开源 K8s 本身的bug其实还是很多的。当前社区处于 open 状态的 issue 就有1600多个。集群规模比较大的时候,系统的各个组件均出现相应的性能问题的机会也就变高了。如果遇到 etcd 的性能瓶颈,会导致集群一系列的问题发生,体现在业务侧,就是用户充不上电。


K8s 版本以及 K8s 组织的升级是另一个难题。社区版本更新的很快,升级有影响业务的可能性。但我们也担心,太久不升级,老版本因为漏洞会造成更严重的问题。所以我们除了在测试环境,保留自建K8s作为学习和研究之外,生产环境的系统都全面向容器服务 ACK 迁移。结合我们自身的业务场景与技术架构,ACK 在这些方面体现出来的价值让我们最认可。


首先在 API 和标准上完全兼容开源K8s,确保我们的技术架构遵循开源开放的技术体系。其次是计算、存储、网络等云产品进行了深度集成,而且这些集成本身也是基于K8s 标准,特别是在网络方面,实现了VPC内容器网络与虚拟机网络的打通。这对我们渐进式地将应用从 ECS 迁移到 K8s 起到了非常大的帮助。整个迁移的过程是非常顺利。由于网络是打通的,可以在保持原有架构的基础上一个一个应用的验证,只是应用的底层承载,从虚拟机转向了容器。这也确保了我们在容器迁移过程中的业务稳定性。


最后在集群自身的稳定性方面,ACK 也做了大量的工作,如 master节点托管、智能巡检诊断,跨可用区的高可用等等。这些都经过阿里双十一大规模场景,以及阿里云的大型客户实战验证。对云快充而言,最重要的一点在于集群和组件的版本升级变得更简单了,直接在控制台一键操作,对于业务是无感,极大的降低了维护成本,也为业务稳定性的提升提供了基础保障。

image.png

ACK 还集成了一个非常好用的集群诊断工具,它是基于eBPF技术实现的,对我们来说提供了一个开箱即用的能力,一键开启就可以。这个工具提供了全局视角的应用拓扑,遵循了从整体到个体的原则,先从全局视图入手,从请求数、错误数、延误三个黄金指标出发,发现异常的服务个体,如某个应用服务,定位到这个应用后,可以获取日志,关联分析。在一个页面展示分层下钻,不需要多个系统来回跳转,方便快速定位拓扑中的服务调用,这些有价值的数据都导入到了云上的 Prometheus 服务。大家也知道在云原生时代,Prometheus 在可观测领域的地位就相当于 K8s 在云原生底座的地位。


通过云上的 Prometheus 和 Grafana ,我们将 eBPF 指标与云产品的指标结合在一起,做了一个业务监控大盘,通过这个大盘就能了解到当前业务的进展情况。对于重要的接口,我们也基于服务质量配了告警规则,通过 ARMS 告警平台,通知到运维群,保证核心服务的SLA,这对于提升我们的业务稳定性起到了很大的帮助。

image.png

构建业务稳定性


在微服务稳定性方面,我们的团队也做了大量探索。根据之前的经验,80% 以上的线上业务故障都跟版本发布有关,这和应用上下线不够优雅,以及缺少精细化、灰度策略有关。


在阿里云 MSE 微服务治理方案的帮助下,我们对微服务系统的稳定性进行了一系列提升。由于 MSE 所提供的微服务治理能力是基于 Java-Agent 字节码增强的技术实现,和我们使用的 Spring Cloud 微服务框架可以完美匹配。这些提升完全没有代码侵入,所以建立这些能力是很简单的。

image.png

首先解决的是无损上下线问题。做过大规模微服务架构的朋友都知道,无损上下线问题是一个困扰了很多开发者的老大难问题。MSE的微服务治理 Agent做了两件事情,一是动态感知应用上下线的行为,二是动态调整服务消费者的负载均衡策略。通过这两个事情很轻松的实现了应用无损上下线。现在我们不管是做应用的扩缩容,还是版本发布,都可以做到对最终用户无感。


在全链路灰度方面,MSE也提供了完整的解决方案。生产环境只需要一套环境,就可以基于泳道模型定义多个逻辑的灰度版本,再通过路由规则的配置,让特定的流量在对应的泳道中流转。这样就可以在发布新版本的时候,严格控制新版本影响的请求量,通过充分的验证后,再决定到底是加大新版本的覆盖度,还是回滚到上一个版本,从而将版本发布对正常业务的影响降到最低。


由于全链路灰度对于整个研发以及运维的流程提出了更高的要求。我们目前只在一条业务线上进行了推广,得到的收益是很明显的,因为应用变更导致的生产事故降低了70%以上。后续我们会再接再厉,将全链路灰度推广到整个企业。


此外,全链路流量防护也是我们基于MSE构建的提升业务稳定性的重要手段。从网关到微服务应用,到第三方依赖,每一层我们都配置了流量防护规则,确保在业务高峰期不会有任何系统被用户流量所压垮。


这是云快充当前的技术架构。为了保障充电桩连接的稳定性,我们搭建了专门的集群,双服务通过TCP强连接与双通信提供基础能力。伴随着云快充的全面容器化与稳定性建设,云快充接入的电桩数量完成了20万到30万的增长,平均需求迭代周期从7人日降低到4人日,极大地促进了业务的快速迭代。

image.png

展望


除了继续提升全链路灰度覆盖度之外,我们在将来还有两大规划:一是通过边缘容器方案提升我们的服务质量,这和云快充的业务特点是有关系的。在网络中断等极端场景下,基于边缘节点的能力,也能让部分业务可以正常对外服务,不至于用户在这种情况下完全无法充电。二是增强端到端的安全治理。在防攻击、登录认证、涉及网关的双线TLS内部服务、权限管理等方面,都加强安全防护手段。


希望阿里云的方案能够帮助我们更快地实现这两个规划,也希望新能源行业的其他技术团队可以和我们一起共同探索云原生稳定性方面的技术路径。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
8天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
2天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
1天前
|
运维 Cloud Native Devops
云原生架构:重塑企业IT的未来####
随着数字化转型浪潮的汹涌,云原生架构凭借其高度灵活、可扩展和高效的特性,正逐步成为企业IT系统的核心。本文将深入探讨云原生架构的核心要素、技术优势以及如何引领企业实现业务创新与敏捷交付。 ####
|
3天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
9天前
|
Kubernetes Cloud Native API
云原生架构下微服务治理的深度探索与实践####
本文旨在深入剖析云原生环境下微服务治理的核心要素与最佳实践,通过实际案例分析,揭示高效、稳定的微服务架构设计原则及实施策略。在快速迭代的云计算领域,微服务架构以其高度解耦、灵活扩展的特性成为众多企业的首选。然而,伴随而来的服务间通信、故障隔离、配置管理等挑战亦不容忽视。本研究聚焦于云原生技术栈如何赋能微服务治理,涵盖容器编排(如Kubernetes)、服务网格(如Istio/Envoy)、API网关、分布式追踪系统等关键技术组件的应用与优化,为读者提供一套系统性的解决方案框架,助力企业在云端构建更加健壮、可维护的服务生态。 ####
|
8天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
36 1
|
9天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
29 2
|
9天前
|
弹性计算 监控 Cloud Native
云原生架构下的性能优化实践与策略####
在数字化转型加速的今天,云原生技术以其弹性、敏捷和高效的特点成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,通过具体案例分析,揭示了性能优化的关键路径与策略,为开发者和企业提供了可操作的实践指南。 ####
|
3天前
|
Cloud Native API 云计算
云原生架构的深度探索与实践####
本文深入探讨了云原生架构的核心概念、技术特点及其在现代软件开发中的应用实践。通过分析云原生架构如何促进企业数字化转型,提升业务敏捷性与可扩展性,本文旨在为读者提供一个全面而深入的理解框架。我们将从云原生的定义出发,逐步深入到其关键技术组件、最佳实践案例及面临的挑战与解决方案,为开发者和企业决策者提供宝贵的参考与启示。 ####
下一篇
无影云桌面