云原生赋能智能网联汽车消息处理基础框架构建

简介: 本文旨在深入分析云原生技术如何作用于车联网物联网基础设施构建,基于体系中最关键的车端消息采集、移动、处理和分析领域,结合 EMQ 相关数据基础设施软件,实现云原生的车联网基础设施架构。

近年来,汽车产业向「电气化、智能化、网联化、共享化」快速演进,「软件定义汽车」模式和 SOA 理念在汽车研发和设计领域逐渐深入。无论是作为智能网联汽车云端底座的 TSP 平台、基于单车智能 ADAS 的自动驾驶体系,还是实现软件定义汽车的 SOA 框架,均需要更加灵活的软件开发、迭代、复用和运行架构保障。

云原生技术的快速发展和落地,大大改变了车联网应用传统的开发和运行方式。以其灵活、弹性、敏捷、自动化、高可用、易扩展等特性,为汽车行业智能网联和自动驾驶相关软件的开发和运行,提供了平台层面的助力,解决了车联网平台在新趋势下面临的上述挑战。

云原生: 在 CNCF(云原生计算基金会)的定义中,云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。

本文旨在深入分析云原生技术如何作用于车联网物联网基础设施构建,基于体系中最关键的车端消息采集、移动、处理和分析领域,结合 EMQ 相关数据基础设施软件,实现云原生的车联网基础设施架构。

传统车联网平台构建的挑战

传统车联网的消息处理框架在构建底层资源和运行平台端的整体框架时,往往采用本地数据中心虚拟机/物理机或云服务商虚拟机进行部署。此种模式在联网车辆快速增多、车端上传数据愈加复杂的场景下,通常会面临如下的痛点和挑战:

  1. 各大主机厂若想将在私有数据中心提供车联网服务的模式转变为通过公有云提供车联网服务,传统的以虚拟机为应用承载方式的架构会过于沉重,无法平滑实现车联网混合云迁移需求和混合云的部署模式;
  2. 随着智能化和网联化的快速发展,车联网系统对于消息处理平台的软件迭代能力要求逐渐提高,传统的软件迭代模式无法应对智能网联对于车联网系统敏捷、灵活和快速的能力要求,针对纷繁复杂的消息处理需求和软件迭代也无法响应;
  3. 车联网系统作为主机厂同终端客户最重要的实时沟通系统,需要具备极高的可靠性、可用性和可支撑性。消息处理平台作为核心应用组件,应具备弹性的资源获取能力和自动化伸缩、运维等运营支撑能力。传统的巨石型应用架构和虚拟机部署模式无法满足消息处理平台弹性和自复位的能力要求。

云原生技术赋能新一代车联网消息处理

CNCF(Cloud Native Computing Foundation)旗下项目中以容器编排系统 Kubernetes 最为核心和基础。Kubernetes 通过将应用程序的容器组合成逻辑单元,以便于管理与服务发现,其为开源系统,可以自由地部署在企业内部、私有云、混合云或公有云,方便用户做出自由选择。

Kubernetes.png

越来越多的主机厂在业务平台的生产交付场景中,采用云原生技术打造以下能力,助力智能网联汽车的应用演进和发展。

  • 统一部署:提供屏蔽底层资源型基础设施差异,一次构建,多处使用的能力
  • 易于实施:提供 CaaI(Config as an Infrastructure),即配置即设施的能力,达到配置即运行时效果的能力
  • 弹性扩容:根据业务使用情况进行资源型资源的快速弹性伸缩,提供运行时伸缩,业务应用无感知的能力
  • 监控告警:提供完善的监控告警体系,满足生产环境后期维护的可控性能力
  • 版本迭代可控:提供风险可控的版本变更手段,包括版本追溯与回滚的能力

基于 Operator 的 EMQX 云原生框架

早期 EMQ 产品云原生部署采用的是 Helm 部署方式,Operator 模式的出现为实现自定义资源提供了标准的解决方案,解决了通用 Kubernetes 基础模型元素无法支撑不同业务领域下复杂自动化场景的痛点,为实现更加简单、高效的 EMQX 部署提供了全新的方式。

简单来说,Operator 模式是一组自定义控制器的集合以及由这些控制器所管理的一系列自定义资源,我们将不再关注于 Pod(容器)、ConfigMap 等基础模型元素,而是将它们聚合为一个应用或者服务。Operator 通过控制器的协调循环来使自定义应用达到我们期望的状态,我们只需要关注该应用的期望状态,通过自定义控制器协调循环逻辑来达到 7*24 小时不间断的应用或者服务的声明周期管理。基于 Operator 的 EMQX 云原生框架,使得用户可以轻松基于 Kubernetes 的模式部署和运维 EMQX 集群。

Operator VS Helm

Operator 的管理不仅限于 Pod,也可以是多个资源(比如 SVC 域名等)。从这个角度上来说,Operator 跟 Helm 一样,也是具有编排能力的。从编排角度来看,Helm 与 Operator 有非常多的共性,很难对两者的作用进行区分。Helm 也可以完成分布式系统的部署。

那么 Operator 跟 Helm 又有什么样的区别呢?

  • Helm 的侧重点在于多种多个的资源管理,而对生命周期的管理主要包括创建更新和删除,Helm 通过命令驱动整个的生命周期。
  • Operator 对于资源的管理则不仅是创建和交付。由于其可以通过 watch 的方式获取相关资源的变化事件,因此可以实现高可用、可扩展、故障恢复等运维操作。因此 Operator 对于生命周期的管理包括创建、故障恢复、高可用、升级、扩容缩容、异常处理以及最终的清理等等。
  • 如果把 Helm 比作 RPM,那么 Operator 就是 systemd。RPM 负责应用的安装、删除,而 systemd 则负责应用的启动、重启等等操作。

Operator 工作原理

Operator 使用自定义资源(CR)管理应用及其组件的自定义 Kubernetes 控制器,自定义资源 Kubernetes 中 API 扩展,自定义资源配置 CRD 会明确 CR 并列出 Operator 用户可用的所有配置,Operator 监视 CR 类型并且采取特定于应用的操作,确保当前状态与该资源的理想状态相符。

Operator 工作原理.png

Operator 中主要有以下几种对象:

  • CRD:自定义资源的定义,Kubernetes API 服务器会为你所指定的每一个 CRD 版本生成 RESTful 的资源路径。一个 CRD 其实就是定义自己应用业务模型的地方,可以根据业务的需求,完全定制自己所需要的资源对象,如 EMQX Broker、EMQX Enterprise 等这些都是可以被 Kubernetes 直接操作和管理的自定义的资源对象。
  • CR:自定义资源,即 CRD 的一个具体实例,是具体的可管理的 Kubernetes 资源对象,可以对其进行正常的生命周期管理,如创建、删除、修改、查询等,同时 CR 对象一般还会包含运行时的状态,如当前的 CR 的真实的状态是什么,用于观察和判断,CR 对象的真正所处于的状态。
  • Controller:其实就是控制器真正的用武之地了,它会循环处理工作队列中的动作,按照逻辑协调应用当前状态至期望状态。如观察一个CR 对象被创建了之后,会根据实现的逻辑来处理 CR,让 CR 对象的状态以及 CR 对象所负责的业务逻辑慢慢向期望的状态上靠近,最终达到期望的效果。举例来说:如果定义了一个 EMQX Broker 的 Operator,那在创建 EMQX Broker 的时候,就会一直协调和观察 EMQX Broker 真正的集群是否已创建好,以及每个节点的状态和可用性是否健康。一旦发现不符合期望的状态就会继续协调,始终保持基于事件的机制不断检查和协调,以保证期望的状态。

EMQX 在车联网场景中的云原生实践

基于 Operator 模式,我们提供了 EMQX Operator 来帮助客户在 Kubernetes 的环境上快速构建和管理 EMQX 集群。

EMQX Operator 是一个用来帮助用户在 Kubernetes 的环境上快速创建和管理 EMQX 集群的工具。 它可以大大简化部署和管理 EMQX 集群的流程,将其变成一种低成本的、标准化的、可重复性的能力。

EMQX 在车联网场景中的云原生实践.png

作为车联网的核心底层支撑组件,EMQX 可以通过 Kubernetes Operator 进行部署、管理和运维。通过基于云原生的消息处理平台,为车联网场景中的客户开发和运维部署带来了诸多好处:

  • 无感和滚动更新:以云原生技术构建的车联网消息处理框架,可以轻松实现车联网应用的灰度发布,使得车联网系统升级迭代过程中无需中断服务,让车联网应用的使用者完全无感知,实现无感迭代和滚动更新,提升用户体验;
  • 统一监控:基于云原生技术,车联网系统的运维者可轻松进行应用集群和节点的监控和管理。通过与 Prometheus 等监控工具的集成,可以轻松获取车联网中最重要的消息处理平台的运行信息,从而更直观清晰地了解业务运行情况,进行相应的业务迭代;
  • 快速部署:云原生技术可以让车联网开发和运维人员快速部署和调整应用,无论是基于公有云还是私有云环境,均可以轻松部署相应的 EMQX 集群,实现对业务的支撑;
  • 标准化镜像:EMQX 基于云原生环境提供了标准化的官方容器镜像,当用户系统通过镜像来进行 EMQX 的部署和构建时,可基于标准化镜像进行相应的工作,对于车联网环境中的快速发布和多次构建等需求提供了很好的支撑;
  • 弹性伸缩:随着车联网应用的深入,整个消息处理框架所需要对接的应用逐步扩展和车联网规模的增大,消息处理平台对资源的弹性能力要求也越来越高,通过 Kubernetes 弹性灵活的资源支撑模式,可以针对应用的使用量进行资源获取、增加和释放,从而节省资源,降低运营成本;
  • 快速迭代:基于云原生框架构建的车联网应用,可利用持续集成和持续交付流水线实现应用的即时更新和发布,支撑业务对于车联网快速迭代的需求;

结语

随着云原生理念在各行业的深入,我们相信云原生也将为车联网领域的平台构建与应用开发模式注入新的动力。未来 EMQ 将围绕对 EMQX 新版本特性的支持,不断完善迭代 EMQX Operator,致力于在云原生模式下提供更加丰富可靠的数据基础设施能力,服务于车联网行业。

本系列中的其它文章

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/cloud-native-smart-connected-car-messaging

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
边缘计算 Cloud Native 安全
构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
79 4
|
13天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
13天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
7天前
|
Cloud Native
邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
|
18天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
1月前
|
运维 Cloud Native Docker
云端漫步:构建你的第一个云原生应用
在这篇文章中,我们将一起踏上一段激动人心的旅程,探索如何从零开始构建一个云原生应用。我们将深入理解云原生的核心概念,并通过实际代码示例,学习如何利用云平台的强大功能来部署和管理应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启发。让我们一起开启这场云端之旅,发现云原生应用的魅力吧!
33 3
|
1月前
|
Kubernetes Cloud Native Ubuntu
庆祝 .NET 9 正式版发布与 Dapr 从 CNCF 毕业:构建高效云原生应用的最佳实践
2024年11月13日,.NET 9 正式版发布,Dapr 从 CNCF 毕业,标志着云原生技术的成熟。本文介绍如何使用 .NET 9 Aspire、Dapr 1.14.4、Kubernetes 1.31.0/Containerd 1.7.14、Ubuntu Server 24.04 LTS 和 Podman 5.3.0-rc3 构建高效、可靠的云原生应用。涵盖环境准备、应用开发、Dapr 集成、容器化和 Kubernetes 部署等内容。
56 5
|
1月前
|
Cloud Native 持续交付 云计算
云原生技术深度探索:构建现代化应用的基石####
【10月更文挑战第21天】 本文将深入探讨云原生技术的核心概念、关键技术及其在现代软件开发中的应用。我们将从容器化、微服务架构、持续集成/持续部署(CI/CD)、无服务器架构等关键方面展开,揭示这些技术如何共同作用,帮助企业实现高效、弹性且易于维护的应用部署与管理。通过实例分析,展现云原生技术在实际项目中的显著优势,为读者提供一套全面理解并应用云原生技术的指南。 ####
41 2
|
1月前
|
运维 Kubernetes Cloud Native
云原生架构:构建现代应用程序的基石####
本文将深入探讨云原生架构的核心概念、关键特征及其对现代软件开发的重要性。不同于传统的摘要概述,我们将通过一个生动的案例引入——想象一下,一家初创企业如何在短短几个月内,从零开始构建起一个能够支撑数百万用户访问量、具备高可用性与弹性伸缩能力的在线服务平台。这个过程中,云原生技术扮演了怎样的角色?它是如何帮助这家企业快速响应市场变化,同时保持系统稳定性和成本效益的?带着这些问题,让我们一起揭开云原生架构背后的神秘面纱。 ####
|
1月前
|
监控 Cloud Native 微服务
云端漫步:探索云原生应用的构建与部署
【10月更文挑战第32天】在数字时代的浪潮中,云原生技术如同一艘航船,承载着企业的梦想驶向未知的海洋。本文将带你领略云原生应用的魅力,从基础概念到实战操作,我们将一步步揭开云原生的神秘面纱,体验它如何简化开发、加速部署,并提升系统的可扩展性与可靠性。让我们一起启航,探索云原生的世界!

热门文章

最新文章