行云创新 CloudOS 助力上汽乘用车企业云原生IT架构变革

近日,在2023架构·可持续未来峰会成都制造业分会场上,上海汽车集团股份有限公司乘用车公司基础架构部主管茹洋带来了议题为《云原生时代上汽乘用车企业IT架构变革和实践》的精彩演讲。他从云原生对于企业IT架构的意义、企业IT架构变革的必要性入手,全面介绍了上汽乘用车IT架构基于行云创新CloudOS(企业云原生数字化创新平台)的变革策略,以及应用容器化、多云环境管理、DevOps实践等案例,并提出未来的IT架构演进趋势

图片

上汽乘用车总体架构及演变历程

    上汽乘用车于2018年上线容器化B2C APP,2019年引入Kubernetes容器编排产品来降低开发门槛,提升开发效率。后续继续引入微服务技术及服务网格治理技术,进一步提升架构系统的稳定性、高可用性及健壮性,去年逐步完善多云治理功能,目前正在致力于完善观测及度量功能,以便更好地实现降本增效策略。

图片

    上汽乘用车IT架构的变革经历了一次次的探索和调整,目前,上汽乘用车已经逐渐摆脱了传统的IT架构,全面转型为基于云原生的架构。行云创新 CloudOS的引入,助力落地了上汽工业研发生态体系提供持续集成、 持续交付等能力的PaaS云平台,有效提升了上汽乘用车的高效创新能力,并显著节约各项资源

容器化与容器编排

    在容器化和容器编排技术方面,上汽乘用车采用了基于CloudOS 包含的有关容器技术及功能:
 

  • 图形化封装k8s、容器基础设施等底层技术,简单易用,降低技术门槛;

  • 应用发布、升级更新全程可视化,操作清晰明了,降低错误概率;

  • 复杂的软件架构、服务间调用和依赖关系一目了然;

  • 形成微服务,API等数字化资产的沉淀和复用能力;

  • 充分利用云原生能力,服务可根据使用情况弹性伸缩,合理利用资源;

  • 云原生日志、监控、告警方案,以应用为中心智能化运维。


    通过将应用程序和依赖项打包到容器中,同时借助CloudOS容器编排技术,上汽乘用车实现了应用程序的自动管理和资源调度,提高了系统的可用性和稳定性。
 

    相比于传统的容器云平台,CloudOS有着更为全面的优势以及满足一站式开发的功能,如下图所示:

图片

    在这一阶段,CloudOS 在上汽乘用车的应用也取得了显著的效果

图片

微服务与服务网格

    早在2018年,上汽乘用车就开始了微服务与服务网格等技术的试点应用。2020到2021年期间,微服务的应用快速增长,在全企业范围内快速推广,全面覆盖上汽乘用车的研发、制造、营销等业务。2022到2023年期间,上汽乘用车已经实现了微服务应用的全面治理,各项应用稳定运行。
 

    上汽乘用车基于CloudOS包含的SolarMesh(服务网格)产品,实现了多项微服务治理功能:
 

  • 流量分配,可视化配置确保策略精准下发;

  • 故障定位,多集群流量拓扑,精确定位故障根源;

  • 灰度发布,用户无感升级,支持百分比、Header等多类型灰度;

  • 出入站插件,支持流量在集群入站与出站时进行增强编码;

  • 故障注入,在混沌工程测试时提供有效评估手段。

图片

多云管理与成本优化

    由于上汽乘用车的业务多样性和复杂性,采用多云混合架构是最为适合其业务模式的。但与此同时,多云混合架构也给上汽乘用车带来诸多挑战
 

  • 不同K8S发行版的统一管理问题;

  • 混合云复杂的资源调度、业务模式带来的技术挑战;

  • 多云应用统一可视化管理问题;

  • 混合云下与已有的DevOps平台工具、运维日志/监控平台的对接问题;

  • 多云平台容灾及故障快速云间转移问题;

  • 信创K8S(x86&ARM)的融合管理问题。

    为解决上述多云架构带来的问题,上汽乘用车采用了基于CloudOS包含的Bootes(云原生混合云管平台)产品:
 

  • Bootes纳管了上汽乘用车本地数据中心+公有云共计17套K8S集群,包含原生K8S、Rancher、OpenShift及ARM集群;

  • 基于Token快速对接,平台元数据实时同步;

  • Bootes支持K8S 负载、配置、网络、存储等核心基础设施可视化管理;

  • 同时支持接口对接企业已有代码库,践行IaC理念,所有业务应用、中间件、数据库均由Bootes从Git中拉取并推送至指定集群。

图片


     成本优势永远是企业上云的核心考量点之一。Bootes作为混合云原生管理平台,支持精准度量资源的使用情况,提供如:资源自动伸缩、调整资源限制、扩容/释放宿主机方面的决策,让管理者能够对整个上汽乘用车数千个微服务资源使用动态了如指掌

总结

    上汽乘用车基于行云创新的 CloudOS,成功完成了企业云原生IT架构的变革,取得了一系列显著的成效。通过总体架构的调整和演变,上汽乘用车实现了IT系统的高效稳定运行,提升了企业的响应能力和市场竞争力。容器化和容器编排的引入,使得应用程序的部署和扩展更加高效便捷,进一步提升了协同办公的效率。微服务和服务网格的应用,提高了系统的可维护性和性能,为企业的创新和升级提供了强有力的支持。多云管理与成本优化的实施,使得上汽乘用车在满足业务需求的同时,有效控制了IT成本,提升了企业的效益
 

    行云创新作为上汽乘用车的云原生技术支持伙伴,我们为能够参与上汽乘用车的云原生IT架构变革感到十分幸运和自豪。未来,行云创新CloudOS将继续致力于云原生技术创新,为上汽乘用车及更多企业实现数字化转型提供专业的支持。

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

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

相关文章

C程序环境及预处理

​​​​​文章目录 一、程序的翻译环境和执行环境 1.程序编译过程 2.编译内部原理 3.执行环境 二、程序运行前的预处理 1.预定义符号归纳 2.define定义标识符 3.define定义宏 4.define替换规则 5.宏和函数的对比 三、头文件被包含的方式 四、练习:写一…

Vue3状态管理库Pinia——核心概念(Store、State、Getter、Action)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

98、简述Kafka的rebalance机制

简述Kafka的rebalance机制 consumer group中的消费者与topic下的partion重新匹配的过程 何时会产生rebalance: consumer group中的成员个数发生变化consumer 消费超时group订阅的topic个数发生变化group订阅的topic的分区数发生变化 coordinator: 通常是partition的leader节…

408专业课

1.快速排序 8.3_2_快速排序_哔哩哔哩_bilibili 优化后:时间复杂度O(nlogn) ,空间复杂度O(logn) //优化后的快排 void Quick_sort(int a[], int l, int r) {if (l > r) return;把a数组中随机一个元素和a[l]交换 //快排优化int p a[l], i …

Java将数据集合转换为PDF

这里写自定义目录标题 将数据集合转换为pdf引入包工具类测试代码导出效果 将数据集合转换为pdf 依赖itext7包将数据集合转换导出为PDF文件 引入包 <properties><itext.version>7.1.11</itext.version> </properties><dependency><groupId&…

SAP 中的ABAP OPEN SQL

一、ABAP OPEN SQL语法 如果要在ABAP中使用Open SQL 需要注意使用符合其规则的语法&#xff0c;SQL过程中的变量都需要使用来转义&#xff0c;以下为普通SQL 与 Open SQL 之间的语法转换&#xff0c; 普通SQL&#xff1a; SELECT MAX( MATNR ) INTO IT_TAB-MATNRFROM MARA W…

什么是HTTP 500错误,怎么解决

目录 什么是HTTP 500 HTTP 500错误的常见原因&#xff1a; 如何修复HTTP 500 总结 什么是HTTP 500 错误 HTTP 500内部服务器错误是指在客户端发出请求后&#xff0c;服务器在处理请求过程中发生了未知的问题&#xff0c;导致服务器无法完成请求。HTTP 500错误是一个通用的服…

Mybatis-Plus(三)--Mybatis-Plus配置和条件构造器

一.配置 在MP中有大量的配置&#xff0c;其中有一部分是Mybatis原生的配置&#xff0c;另一部分是MP的配置&#xff0c;详情&#xff1a;https://mybatis.plus/config 1.基本配置 【1】configLocation--自己单独的MyBatis配置的路径 #MyBatis配置文件位置&#xff0c;如果您…

Spring-缓存初步认识

Spring-缓存 简单介绍 缓存是一种介于数据永久存储介质和数据应用之间的数据临时存储介质缓存有效提高读取速度&#xff0c;加速查询效率 spring使用缓存方式 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

每日一题——反转链表

题目 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 数据范围&#xff1a;0≤n≤1000 要求&#xff1a;空间复杂度 O(1) &#xff0c;时间复杂度 O…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

PHP后台登录功能单账号登录限制

PHP后台登录功能单账号登录限制 单账号登陆是什么第一步创建数据表第二步创建登录页面test2.html第三步创建登录提交test2.php第四步访问后台首页第五步演示 单账号登陆是什么 一个用户只能登录一个账号通常被称为单账号登录限制或单用户单账号限制。这意味着每个用户只能使用…

Linux 学习记录53(ARM篇)

Linux 学习记录53(ARM篇) 本文目录 Linux 学习记录53(ARM篇)一、内存读写指令1. 在C语言中读取内存2. 指令码及功能3. 格式4. 使用示例5. 寻址方式(1. 前索引方式(2. 后索引方式(3. 自动索引 6.批量寄存器操作指令(1. 操作码(2. 格式(3. 使用示例(4. 地址增长方式>1 ia后缀&…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition&#xff0c;是 Java 的标准版&#xff0c;主要用于桌面应用程序开发&#xff0c;它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

2.8 Android ebpf帮助函数解读(七)

121.long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags) 描述:对于附加到 perf 事件的 eBPF 程序,检索与 ctx 关联的分支记录(struct perf_branch_entry),并将其存储在 buf 指向的缓冲区中,最大大小为size字节。 返回值:…

股票基金入门知识

1.开盘价和收盘价如何产生 时间9:30-11:30 13:00-15:00 集合竞价时间段&#xff1a;9:15-9:25 以此产生开盘价 最后集中竞价时间段&#xff1a;深市14:57-15:00 &#xff0c;以此产生收盘价。 沪市则采用最后一分钟加权得出收盘价影响股价的因素 市场投资情绪&#xff0c;宏观…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载&#xff1a;DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接&#xff1a;https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop&#xff1a;到Hadoop的sbin目录下右键管理员身份运行…

Spring Boot 全局异常处理

Spring Boot 全局异常处理 ErrorCode.java (此枚举类中包含了异常的唯一标识、HTTP 状态码以及错误信息) 这个类的主要作用就是统一管理系统中可能出现的异常&#xff0c;比较清晰明了。但是&#xff0c;可能出现的问题是当系统过于复杂&#xff0c;出现的异常过多之后&#…

【C++】list 模拟笔记

文章目录 list定义结点类&#xff08;list_node&#xff09;为什么封装迭代器为类 &#xff1f;库里面模板多参数的由来 &#xff1f;为什么普通迭代器不能隐式类型转换成const迭代器&#xff1f;迭代器位置指向及其返回值和整体代码 list list 和前面学习的 string 和 vector …