chinesezzqiang
作者chinesezzqiang课题专家组·2020-06-22 14:08
信息技术经理·M

汽车制造企业容器应用场景与安全的十个问题总结

字数 10491阅读 2635评论 0赞 1

随着云计算的不断成熟和迅猛发展,越来越多的系统被迁移到云上。利用云计算的优势,提供 IT 服务,满足业务需求。云计算的最基础技术就是虚拟化,通过虚拟各种资源(计算、网络、存储等),提供更适合的 IT 资源分配效果,发挥硬件的最大价值。

由于业务场景的不断增加,传统的虚拟化技术已经无法满足业务快速迭代的需求。一种以应用程序为中心的虚拟化技术应运而生,这就是容器化。它可以有效的融入到 DevOps ( Development 和 Operations 的组合词)过程,帮助开发人员更快、更高效地快速部署应用程序。通过简单的包装、运输和启动加快了应用程序的持续部署能力,实现更高效的快速迭代。

汽车制造业作为传统的行业之一,也在寻求更好的虚拟化技术来支持业务的交付,从而加快数字化转型的节奏。容器云作为新的虚拟化平台,更专注于资源共享与隔离、自动编排与部署。通过容器为资源分割,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台。可以有效的帮助汽车制造企业提升应用的迭代速度,对市场的反馈进行快速变更,对汽车企业实现数字化转型提供重要的技术支持保障。

传统车企在进行技术改革时,要面临很多的技术架构问题、安全问题和业务问题。比如适合车企的容器云的技术架构长啥样?如何更好的融入现有业务?如何在容器云的基础上改造业务的流程,使其更快、更高效?容器云的安全如何保障?

为解答以上疑问, TWT 社区特邀请汽车行业技术专家,以及 Rancher 中国技术专家。基于汽车制造企业容器云应用场景及安全性进行专场探讨。

以下是本场交流活动的典型问题:

1.rancher的 devops 能力如何,是否有机会增强其功能?

回复 1 :黄呆毛 技术经理 , 某大型汽车集团

基于范化的 devops 理论来说, rancher 只能做 devops 的一部分工作,如果持续集成、持续部署、提测方面的事,更多的 devops 能力就微乎其微了,在这些服务能力范围之内,可替代的工具其实有很多,比如基于 kubernetes 的 jenkins 集成, sonar 集成,以及自动化测试工具的集成。因此 rancher 的核心功能点,如基础设施编排,容器编排,企业级权限控制应该用到极致,在工具耦合不是很强的地方,可以使用 rancher 进行泛化的 devops 功能点延伸。

2.容器云平台如何实现容灾机制?

回复 1 :江鹏 技术总监 , Rancher 企业级 Kubernetes 管理平台

管理平面:目前大多数容器云平台产品都具备了多集群管理的能力,管理平面作为整个容器云的统一管理平台,需要具备异地容灾的能力。管理平面各家厂商使用的架构和技术实现不同, Rancher 的管理平面是基于 k8s 实现的,也就是 Rancher 容器云的管理平面也是一个 k8s 集群,所以管理平面的容灾设计就成为了 k8s 集群跨数据中心的容灾设计。这部分 Rancher 的管理平面 k8s 支持两种 k8s 部署实现,标准的 RKE 集群(使用 etcd 存储)和 k3s 集群(可以使用类似 MySQL 此类关系型数据库)。 etcd 的跨数据中心容灾可以考虑的方案包括跨数据中心的 etcd 集群(对网络延迟、带宽等有要求)、 etcd learner 、 etcd mirror maker 或者最简单的 etcd 备份恢复等,目前来看并不是特别成熟。如果使用 k3s ,则可以考虑比较灵活的 MySQL 的容灾方案,例如通过跨数据中心的主从复制或者其他方案实现容灾。

业务集群层面:通常标准的方案是通过多数据中心多集群的方式实现容灾,本地 K8s 集群进行常规的 etcd 数据库备份,常规单个集群故障采用 etcd 恢复方式。数据中心级别的灾难发生时,通常考虑应用层面的多活、容灾部署而非在灾备数据中心进行集群级别的恢复。在 K8s 集群层面的应用数据仅为编排文件(包括 configmap 、 secret 配置等等),所以可以考虑备份应用编排文件或者 helm charts 的方式,实现应用的快速恢复部署。这部分 Rancher 提供的能力包括集群备份恢复、多集群应用、全局 DNS 等。集群备份恢复功能支持通过 UI 对集群设置定期备份或者按需备份,支持在 UI 界面进行一键恢复。多集群应用下支持通过 Rancher 的应用商店一键部署多个应用实例到 Rancher 管理的多个集群,同时可以对接全局 DNS 实现应用入口的自动发布和多集群间的负载均衡。

业务数据层面。 K8s 集群中仅仅包含应用编排和配置数据,应用实际的业务数据存储在持久化存储中,这部分需要独立考虑容灾方案。通常依赖于存储提供的异地容灾能力,这部分传统存储、类似 Portworx 、 Rancher Longhorn 等都有相关的方案。 Longhorn 的容灾方式非常简单易用,有兴趣可以参考 Longhorn 官网的相关文档。

l 容器镜像层面。这部分通常标准的做法是通过镜像仓库的复制功能实现不同数据中心之间镜像仓库的镜像同步,这里不再赘述。

回复 2 : zola538550 技术总监 , 上汽集团

容灾这个层面目前我们更聚焦在数据层面,镜像数据、 etcd 数据、应用编排配置数据;
镜像数据是基于 harbor 来实现的,做了两地数据中心之间的同步; etcd 数据定期备份,用于集群的重建;
应用编排和配置数据,通过 gitlab 、配置中心等组件,实现异地的业务恢复。

3.Rancher对多集群 k8s 的管理有哪些技术优势?

回复 1 : 江鹏 技术总监 , Rancher 企业级Kubernetes 管理平台

Rancher 的多集群管理的能力和高度目前是业界领先的,具体可以从几个方面来看:

· Rancher 是业内最早推出混合云和多云 Kubernetes 多集群管理理念的厂商。从 2017 年底 Rancher 2.0 的第一个预览版本开始, Rancher 就具备了创建和管理通过自有工具部署的 RKE K8s 集群,同时创建和统一管理公有云托管 K8S 集群,以及导入第三方任意已部署 K8s 集群的能力。到目前为止, Rancher 已经完成了国内外主要云服务商的托管 K8s 服务的集成对接,包括 AWS 、 Azure 、 GCP 、 Oracle 、阿里云、腾讯云、华为云、百度云,在支持的云厂商的完备程度和管理能力上都是业内领先的。此外 Rancher 还支持导入任意第三方的标准 k8s 集群进行统一管理。

· Rancher 的多集群创建管理是基于自研的 Kontainer-engine 框架( https://github.com/rancher/kontainer-engine ) 以及 Rancher 的 cluster agent 和 node agent 。采用的是松耦合、可插拔的架构,用户可以灵活的基于 kontainer-engine 开发自己的 cloud driver ,实现对更多的第三方云服务 K8s 集群的创建和管理,扩展的 cloud driver 可以直接在 Rancher 界面进行加载即可实现对更多第三方云供应商的 K8s 集群的支持。

· 在对接和纳管公有云和任意第三方 K8s 集群的 K8S 服务实现统一认证,统一授权的基础之上, Rancher 还提供了一些更上层的应用多集群支撑能力,包括:多集群的应用,用户可以通过 Rancher 的全局应用商店一键统一发布一个应用系统的多个副本到多个集群(每个副本支持不同的个性化参数设置),支持对多个集群中多个应用部分的统一更新升级和回滚,也可以设置多个集群间的滚动升级策略。通过全局 DNS 功能,可以实现对多个集群应用副本的统一入口设置和记录自动刷新。通过全局监控,可以实现对纳管多个集群的统一监控和数据展示。 Rancher 的开源项目 Submariner 能够支持多集群隧道网络之间 Pod 的跨集群直接互访( https://github.com/submariner-io/submariner ) 。此外 Rancher 内置的日志采集、应用商店等多种功能,都是可以针对多集群场景,在全局和单个集群级别灵活的进行独立设置。

· 超大规模集群管理。 Rancher 的愿景是计算无处不在,帮助用户管理任意位置的 K8s 集群。目前 Rancher 2.4 支持 2000 个 K8s 集群的统一管理,随着 Rancher 开发的轻量级 K8S 集群项目 K3S( https://github.com/rancher/k3s ) 的流行,已经有越来越多的客户尝试将 K3s 用在分支机构和边缘侧。所以未来我们管理 K8s 集群的目标,不再仅仅是数据中心的几十个或者是几百个集群,而是包括分布在边缘侧的成千上万个 K8S 集群,这部分大家可以关注 Rancher 最新的开源项目 fleet ( https://github.com/rancher/fleet ) 。

4.Java应用在公有云的 Kubernetes 集群该如何水平自动伸缩?

回复 1 : chinesezzqiang 信息技术经理 , M

目前我们这边是通过 k8s 的自动编排和扩展功能,监控性能达到一定的指标后,自动扩容,忽略开发语言这块。

回复 2 : zola538550 技术总监 , 上汽集团

目前,在上汽的私有云平台上,是通过 Prometheus 将日志传到日志平台,通过 flink 处理出有用信息,一般为 cpu 、 mem ,通过日志平台上设定的触发预值去触发 HPA 自动伸缩。

5.对于车企来说,容器应用的场景是什么,他能带来什么价值?

回复 1 : zola538550 技术总监 , 上汽集团

传统车企内部 IT 围绕部门协同来开展,未来车企 IT 将转向以业务服务为主的混合型部门, XaaS 将成为 IT 部的主要产品系统,云服务替换传统 IT 服务; k8s+docker+ 业务将是未来 IT 提供服务的主要技术手段,大大提升 IT 的平台建设能力和服务能力。

回复 2 : chinesezzqiang 信息技术经理 , M

可以应用到 TOC 的很多场景,如售后领域、研发领域。容器应用可以实现业务的自动扩展,迁移。天然的支持微服务和 DevOps ,可以有效的提升研发效率和解耦应用,使应用更加灵活。

回复 3 : 黄呆毛 技术经理 , 某大型汽车集团

汽车行业上云是一个趋势,一般来说有几大系统,生产制造系统,互联网新业态系统( 车联网 ),还有一些企业门户。从现状来看,优先上云的是门户,其次是偏互联网业务系统,最后才是生产制造类的系统。一般来说,汽车行业的 上云需求的矛盾较为强烈,主要原因有几个,一是随着业务的持续扩张,多数据中心的 IT 管理体系日趋复杂;另一方面是,作为企业的信息科技部门应对复杂且要求快速的 IT 需求,在 IT 基础设施投入大量人力和时间。但面向内外部用户的资源服务交付大部分依靠手工和线下流程实现,资源交付周期过长,用户无法自助获取资源。而资源管理与交付的僵化也给业务应用的快速上线与运营带来挑战,尤其互联网新业态的扩张和车联网业务的爆发也带来了资源交付的问题。 对于企业来说, 从技术架构的层面进一步加快了从传统 IT 架构向云架构转型的进程,通过不断增强 IT 基础设施的云化和服务化能力,实现企业在数字化转型、业务可持续、安全合规的具体目标,有效支撑车联网、汽车大数据等应用场景。

6.容器技术,如何对企业的混合云和 IT 基础架构进行管理?

回复 1 : zola538550 技术总监 , 上汽集团

帆一尚行目前使用的 rancher 的集群管理,对两地两中心的 K8S 集群进行管理,对集群基础组件状态、资源使用情况等进行统一的监控;
另外,部分业务也结合 Devops 能力,做了应用容器的发布管理,通过集群与 devops 平台的联动去触发业务在不同集群上的部署发布。

回复 2 : chinesezzqiang 信息技术经理 , M

如何通过容器技术或者如何利用容器云进行有效的整合和管理?
首先容器技术是基于内核(进程)的一种高性能虚拟化技术,是更好的虚拟化手段。但是目前无法通过容器技术整合公有云、私有云或本地化的管理。但是可以通过 公有云、私有云或本地化 来承载容器,更大化的挖掘云的资源和物理服务器的算力。

容器云在此方面的优势有哪些?
相对于传统虚拟化而言,容器云具备秒级启动、秒级扩展、异构能力强、兼容性广等特点;

可以带来哪些方面的改善和提升?
可以很好的与 DevOps 相结合,实现快速的 CI/CD ;有利于微服务的推广;帮助企业更好的迁移轻量级业务,而不影响业务的连续性;

回复 3 : 黄呆毛 技术经理 , 某大型汽车集团

对题主的问题进行解析,在混合云场景下,比如说公有云的容器,私有云的容器,如何进行多 kubernetes 集群的管理。
基于现状,现在很少有 Kubernetes 管理多容器集群的案例,目前主流的是管理多 Kubernetes 集群的方式来达到管理多容器集群。 Kubernetes 在 1.3 版本之后,增加了 “ 集群联邦 ”Federation 的功能。这个功能使企业能够快速有效的、低成本的跨区跨域、甚至在不同的云平台上运行集群。这个功能可以按照地理位置创建一个复制机制,将多个 Kubernetes 集群进行复制,即使遇到某个区域连接中断或某个数据中心故障,也会保持最关键的服务运行。在 1.7 版以后支持本地多个集群联邦管理,不需要使用依赖云平台。

管理多个 Kubernetes 集群
“ 集群联邦 ” 在架构上同 Kubernetes 集群很相似。有一个 “ 集群联邦 ” 的 API server 提供一个标准的 Kubernetes API ,并且通过 etcd 来存储状态。不同的是,一个通常的 Kubernetes 只是管理节点计算,而 “ 集群联邦 ” 管理所有的 Kubernetes 集群。

跨集群服务发现
Kubernetes 有一个标准的插件: kube-dns ,这个插件可以在集群内部提供 DNS 服务,通过 DNS 解析 service 名字来访问 kubernetes 服务。 Kubernetes 服务是由一组 KubernetesPOD 组成的,这些 POD 是一些已经容器化了的应用,这些 POD 前面使用到了负载均衡器。假如我们有一个 Kubernetes 集群,这个集群裡面有一个服务叫做 MySQL ,这个服务是由一组 MySQL POD 组成的。在这个 Kubernetes 集群中,其他应用可以通过 DNS 来访问这个 MySQL 服务。集群联邦 federation/v1beta1API 扩展基于 DNS 服务发现的功能。利用 DNS ,让 POD 可以跨集群、透明的解析服务。

跨集群调度

为了追求高可用性和更高的性能,集群联邦能够把不同 POD 指定给不同的 Kubernetes 集群中。集群联邦调度器将决定如何在不同 Kubernetes 集群中分配工作负载。通过跨集群调度,我们可以:( 1 )跨 Kubernetes 集群均匀的调度任务负载。( 2 )将各个 Kubernetes 集群的工作负载进行最大化,如果当前 Kubernetes 集群超出了承受能力,那麽将额外的工作负载路由到另一个比较空闲的 Kubernetes 集群中。( 3 )根据应用地理区域需求,调度工作负载到不同的 Kubernetes 集群中,对于不同的终端用户,提供更高的带宽和更低的延迟。

集群高可用,故障自动迁移

集群联邦可以跨集群冗馀部署,当某个集群所在区域出现故障时,并不影响整个服务。集群联邦还可以检测集群是否为不可用状态,如果发现某个集群为不可用状态时,可以将失败的任务重新分配给集群联邦中其他可用状态的集群上。

7.车企的业务场景与其他行业的不同点在哪,有何特殊性,对于容器的要求的侧重点是什么?

回复 1 : zola538550 技术总监 , 上汽集团

企业数字化转型过程当中,必定会构建各类平台,资源服务、技术组件服务、大数据服务、业务服务等,从集团或者企业服务考虑,需要考虑:多租户、安全、网络控制、扩展、计量计费等;
原生的 k8s 容器平台就已经支持基本的平台服务;目前,在帆一尚行内部,由 k8s 平台支撑的服务已经有多个, mysql 、 kafka 、 redis 、 zk 等中间件 ; 另外,使用 gpu 的 ai 训练、数据标注这类在车企较为前瞻的业务都是基于 k8s 平台打造,有着 “ 阅后即焚 ” 动态资源分配能力 ;
从平台产品的角度考虑,对云原生类的业务, k8s 有着先天性优势,弹性能力支持高并发,与 devops 的无缝集成,实现快速发布、灰度发布等,并为开发运维人员提供了标准的监控、日志工具;
在车企内部,渠道营销类业务场景基本都由容器平台支撑;在车联网领域,长连接、高并发是典型的潮汐高峰场景,对接入平台、安全认证等服务都有较大的弹性需求, k8s 的 HPA 配合监控平台能够较好的实现这一功能。
另外,从系统架构的层面,计算与存储分离的架构给了 K8S+ 容器很大的想象空间,类似 AWS 提供的弹性算力 +S3 的服务,我们可以通过 K8S+ 容器 +S3/HDFS 方式实现;同样 HPC 的服务也可以通过这样的架构实现弹性的服务调度能力,可以提升企业私有云的服务能力。
在企业资源配置这个方面, K8s+ 容器大大降低了私有云服务平台建设的技术门槛,降低了技术人员的投入,能够快速提升企业的私有云服务能力。

回复 2 : 黄呆毛 技术经理 , 某大型汽车集团

先从业态来说,传统场景的技术需求大家都是差不多的,唯一的区别就是车联场景,地图场景,这两个场景下对技术需求是非常高,高并发,高响应,低延时,数据的高安全性。
在具体实施过程中,车联系统、汽车大数据采集系统逐渐在云端承担人机交互,其中车联网大并发、交互使用频繁、高可靠运营的应用场景,对企业 IT 基础设施提出了更高的要求。为此,车企需要进一步加快了从传统 IT 架构向云架构转型的进程,希望通过不断增强 IT 基础设施的云化和服务化能力,来完成大数据大流量高稳定性的基本特性,对于容器来说,需要对容器引擎、编排引擎的稳定性有了极高的要求,尤其在业务连续性,安全合规方面需要容器云平台提供更多的支撑。

8.k8s作为云操作系统标准可能在车企哪些地方落地。比如在私有云领域,车厂如何结合自身业务需求进行 k8s 适配?

回复 1 : zola538550 技术总监 , 上汽集团

车企目前处于转型期,车企的业务范围已经不仅仅围绕汽车研发制造销售,车企的经营理念也开始发生改变,围绕人在出行的领域进行了很多尝试, O2O 、打车、租车等云原生业务, k8s 都可以作为很好的支撑平台,以弹性功能承载峰值业务流量。
在车企的产品端,汽车软件化、数字化的进程越来越快,云管端的交互越来越频繁,车联网将成为车企的新基础设施,这部份基础的能力能够很好的通过 k8s 容器来实现,行成了 k8s+ 业务的新基础设施的平台建设模式。

回复 2 : chinesezzqiang 信息技术经理 , M

很多车企已经处于数字化阶段,越来越接近客户,倾听客户的需求。车企的一些 ToC 的业务可以利用 K8S 进行很好的承接,对用户的相应快速相应,反馈给研发或者销售。所以无论在私有云、公有云,还是在业务上都有很大的提升。

回复 3 : 江鹏 技术总监 , Rancher 企业级Kubernetes 管理平台

个人理解, K8s 在车企落地的场景可能有几个方面:

· 第一方面就是标准的云端、数据中心的场景,通过 KBS 支持后台的云原生的业务系统的运行,包括车联网的后台服务系统的运行,这部分和大多数使用 K8s 平台的行业没有太大区别。可能略有特殊的地方在于于传统的消费互联网更多的是 http/https 访问相比,物联网 / 车联网场景的应用更多依赖 4 层应用发布能力,对 4 层负载均衡的创建和发布有更高的要求。这部分目前据我所知很多车企,包括上汽、特斯拉、蔚来等,都在使用 Kubernetes 平台支撑车联网后台服务的运行。

· 第二部分是在边缘侧中的工厂侧,在制造工厂中部署边缘的 K8S 集群,支撑典型的制造系统,例如 MES 系统的运行。这部分目前我们在和一家汽车行业客户在进行相关的测试,使用的技术是 Rancher 的 K3s + Longhorn 。目前在除了车企以外的其他制造行业也有类似的需求。

· 第三部分可能是大家最为关注的,车载的这样一个场景。有没有可能把 K8s 运行在汽车里,直接去运行车机的系统,包括车载的自动驾驶相关的一些应用程序、车载电子设备的控制程序等。这部分目前来看还是比较前沿的。目前我看到的是在 2019 年的 Kubecon 上面有一个欧洲公司的分享,他们为保时捷的一个场景中进行了一些测试,在汽车中部署了 K3s ,实现了车载系统的应用发布更新、 ota 升级等,具体链接可以参考: https://www.youtube.com/watch?v=zmuOxFp3CAk 。这部分目前还有相当的挑战,主要包括车载电子系统的总线协议的差异(车载主要应该都是 CAN 总线)、系统对于实时性的要求(例如 QNX 之类的系统都是实时操作系统)、汽车行业的特点(类似于博世、大陆这样的 Tier1 厂商对于新技术的采纳和支持等)。个人来看,能够以创新方式独立设计和开发自己的车载电子系统的厂商,有可能会率先在这个领域进行尝试和实现突破。除此以外,在重型货车领域有可能会率先有容器的尝试,重型货车由于自身的特点(空间大,可以支持安装更多类型的设备;场景多,除了最核心的驾驶控制系统外,有监控货车运行状态数据的需求,包括是否空挡滑行、驾驶路线是否符合要求、冷藏车是否按规定开启制冷),可能会有更多的业务应用场景。 国内类似于 G7 汇通天下这样的智慧物联网企业,很早就为货车提供了车载的智能设备,未来随着业务场景的增多,可能会有 K8s 或者类似于 K3s 这样轻量级 K8s 平台的落地场景。

9.多个地区多个工厂的业务模式下,例如: mes 系统,有没有好的解决方案?

回复 1 : 黄呆毛 技术经理 , 某大型汽车集团

其实多数据中心的场景下, mes 系统的信息交互是每家大型制造企业都会遇到的问题,一般来说,会有几种解决方案,抛开数据中心层面不提,应用层可以做如下的数据交互。 ESB ,中间库和 dblink 。
如果各数据交换涉及到业务服务之间的互相调用,选择 ESB 似乎更合适一些,这样可以形成标准化的业务服务单元,供其他系统调用。如果需要把各节点的数据库中的大量数据进行 Extract , Transfer , Load 等操作才可以得到需要的结果集,可以建立一个中间库对不同来源的数据进行汇总。如果为了省事,建立 dblink 是最快捷的了,但数据安全性需要考虑。

回复 2 : 江鹏 技术总监 , Rancher 企业级Kubernetes 管理平台

我们目前在和一些制造业客户(包括车企)尝试 MES 系统基于 k8s 运行的解决方案,具体包括:

· K3s: 边缘自治的独立轻量级 K8s 集群,作为工厂侧 MES 系统的运行底座,支撑容器化的 MES 系统的运行。

· Longhorn: 云原生存储,支撑工厂侧部分有状态应用的持久化存储需求。

· Octopus :这个是一个研发中的项目(不久后会开源),主要是通过 K8s CRD 去管理边缘侧的设备,同时简化数据采集分析,目前支持 BLE 、 OPC-UA 、 Modbus 等协议。

· Rancher :云端的统一控制平台,可以实现对边缘侧 K3s 集群的统一管理和应用分发。

回复 3 : chinesezzqiang 信息技术经理 , M

目前罗克韦尔推出了基于中台概念的 MES 集中管控系统,可以将控制台放入总部,每个分支作为接入客户端。也就是说,每当你建立一个工厂的时候,只需要考虑建立客户端,接入总部即可。所有系统的配置均由控制台分发,数据本地存储并异步传输到集团总部。

10.汽车行业容器在公有云和私有云的业务场景都是什么?

回复 1 : zola538550 技术总监 , 上汽集团

就容器云本身,是与资源平台松耦合的,这个问题可以从汽车行业本身的业务去规划公有云和私有云;帆一尚行目前使用的是两地两中心的混合云架构,在基础资源这个层面,与 HAT 打通,充分利用到公有云弹性网络及多家公有云混合冗余的方式,大大提升服务响应和网络层面 SLA ;业务层面,一些渠道活动、视频等营销类高频业务也能通过混合云的方式提升整体项目的上线效率。

回复 2 : chinesezzqiang 信息技术经理 , M

其实两者相对于容器云而言只是平台不同,位置不同。其他的并无太大差异,最多就是私有云的扩展能力不如公有云,因为公有云可以认为是无限资源。所以在场景选择上没有差异,建议将轻量级应用、 基于微服务的应用、 APP 类的业务放入容器云,享受容器云带来的好处。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

活动总结
活动总结是社区交流活动内容的总结及延伸,为大家提供了社区专家们丰富且高水平的理论知识、实践经验以及常见问题的最佳解决方法,非常值得大家收藏学习。

作者其他文章

相关文章

相关问题

相关资料

X社区推广