写点什么

多元架构时代技术学习的正确姿势

宋文喆

  • 2019-12-16
  • 本文字数:3958 字

    阅读完需:约 13 分钟

随着云计算进入多元时代,企业对多元计算架构、多级平台架构以及多形态计算架构提出了更高的需求。在这些需求下,云服务厂商需要提供怎样的云架构解决方案,才能助力企业加速智能化转型和业务创新?12 月 6 日,ArchSummit 全球架构师峰会北京站,来自华为云的 4 位资深技术专家在【多元架构时代的技术挑战】专场做出了他们的分享。以下内容为演讲整理。


本次技术专场分为 4 个分享环节,解析 “AI+5G” 下的云基础设施面临的挑战,介绍华为云擎天软硬协同架构的解决方案;架构师在多元挑战下的思考;NUMA 架构下的性能挑战和 openEuler 的技术特点。

擎天软硬协同架构解析

第一位分享嘉宾是华为云擎天架构负责人、高级架构师李模华。他指出在“AI+5G”的技术驱动下,将导致云游戏、车联网、物联网应用的大规模爆发,这些应用同算力需求将汇集在云端。未来创新带来的挑战,暴露了传统云计算底座的多个问题,主要集中在 5 个方面:


  • 性能:公有云上虚拟化面临 3% 到 15% 的虚拟化消耗,在私有云的场景,如果没有经过合理的调优算力损失可能更严重。

  • 成本:裸金属、虚拟机、容器、Serverless 多形态无法共存。

  • 安全:早期的 CPU 架构可能并没有完整的去考虑云计算场景,存在虚拟机逃逸、数据窥探等安全问题。

  • 稳定:多租户产生邻居噪音,对于性能抖动只能尽力而为。

  • 加速:简单的基于策略的硬件加速,缺少智能感知、适应性差的问题

(华为云擎天架构负责人、高级架构师李模华)


对于传统底座存在的问题,我们认为下一代云计算底座应该具有:多样算力、多种粒度、稳定低时延、智能加速、高密度零开销、安全可靠的这六个特征,李模华说道。随后他介绍了下一代云计算底座:华为云擎天软硬协同架构,在传统云计算底座问题上的解决方案。擎天软硬协同架构主要由三大部分组成:- 擎天智能卡- 统一智能加速框架- 擎天虚拟化


擎天智能卡包含了华为自研的很多的芯片,其中包括像网络加速芯片、存储加速芯片、安全芯片、AI 芯片、鲲鹏芯片、SSD 芯片。统一智能加速框架包括,擎天加速面 - 网络、擎天加速面 - 存储。擎天虚拟化是根据华为云自己的特点完全自研,重构了完整的虚拟化领域。主要用来解决传统云计算底座存在的问题。


在成本方面:擎天虚拟化前端支持虚拟机、安全容器、Serverless、系统容器的多种形态。


在加速方面:擎天架构可以支持单一的云管控子系统。具有多个加速面横向扩展的能力,比如本地盘卸载加速(华为自研 SSD 控制器芯片)、网络 I/O 加速(华为自研网络芯片)、存储 I/O 加速(华为自研存储加速芯片)支持 DIF,EC,QOS 加速。李模华提到,通过软硬结合的方式,我们可以在支持 NVME 的存储设备同时,提供一个比较固定的算法逻辑,像 DIF、EC 的芯片级别的加速,我们会把这部分固定的逻辑通过我们专用的芯片去做一个加速,这样可以省去通过通用的处理器来加速消耗大量资源的问题,可以解决性能提升的瓶颈问题。


在稳定性方面,配合定制的 Hypervisor,实现业务零抖动。目前 KVM 的实现,CFS 的调度,因为要兼顾通用场景的诉求,它的时延是非常差的,在卸载的场景下通过自研的调度,做到业务的零抖动、CPU 内存零预留。

架构师在多元挑战下的思考

第二位分享嘉宾是,华为云应用架构首席技术专家姜胜。他首先谈到了架构师的成长历程。从普通程序员到高级程序员在到架构师。需要具备最重要能力是抓住事物的本质,能够去抽象这个事物的本质,将一个复杂的系统变成比较简单的系统。姜胜提到。


多元架构是我们现在这个快速变化的时代催生出来的,分成了 3 个方面:


  • 技术的爆炸:移动互联、云计算、人工智能、物联网。

  • 环境的多元化:混合云、移动设备多元化。

  • 商业需求多元化:各种各样的商业应用都是 7 天×24 小时不中断,高可用。

(华为云应用架构首席技术专家姜胜)


这就使得我们应用的架构变得非常重要,如果系统没有一个好的架构,就没有办法去满足各个方面的需求,技术变化的需求,环境多样性的需求,和艰巨的商业需求。在这些多元架构的挑战下,作为架构师如何实现价值最大化,怎么能更好的去影响团队,帮助公司更好的发展。姜胜做了以下 5 点的分享:


  • 工具的选择

  • 找出不同系统里的共性

  • 系统复杂性的屏蔽

  • 设计系统的可扩展性

  • 跨资源优化


工具的选择,这个是作为架构师一个首要的问题,选择什么样的工具才能帮助你的组织,更好的去解决多元化所产生的挑战。确定组织的工具,这是一个方面。姜胜提到,软件开发平台 DevCloud 基本上是业界最完整的全流程的 DevOps 的工具链,架构师在选择时可以有所考量。


找出不同系统里的共性,公司里有各种各样的产品线、业务线。它们都需多样的系统去支撑。架构师不可能写这么多的系统,每一个系统都用不同的东西,所以说这里对架构师的挑战,就是怎么在不同的系统里面看到它的相同性。这个抽象能力也是架构师必须要具备的,在这种多元化的背景下显得尤为重要。很多厂商在说的中台其实是用了相同的理念。


系统复杂性的屏蔽,每个系统都会有自己比较复杂的地方,你不可能让所有人去对这些系统都有了解。这就需要架构师对单个系统的复杂性进行屏蔽,这样在做系统设计的时候,就可以做到降低用户的学习曲线。


设计系统可扩展性,每个架构师在做系统设计的时候,应该把系统的可扩展性考虑在里边。设计系统时不可能把所有应用场景都想全,可能推出后,过不了多久就会过时,但是你又要保持这个系统的价值,如何做?就是通过这个系统在设计时的扩展性,能够使新东西、现在没有预想到的东西或者外部的系统能够跟你进行对接。


在云服务的过程里面,各种不同的云服务厂商它的单一服务能力,可能是不一样的,所以你在做系统设计的时候,如何使你的系统架构能够运用各个不同的云服务厂商优势处,尽量避免他的弱点。怎么能够协同用到各个不同系统最佳的服务,这个也是架构师在系统设计时需要考虑的。

NUMA 架构下的性能挑战

第三位分享人是华为云智能计算研发部主任工程师王博。说到服务器的 NUMA 架构,大家或许都知道。NUMA 架构在中大型系统上一直非常盛行,也是高性能的解决方案,尤其在系统延迟方面表现都很优秀。但 NUMA 架构对服务器的相关性能到底有什么影响,如何设置会更好,王博在此做出了分享:


  • CPU 从单核到 SMP

  • 从 SMP 到 NUMA

  • NUMA 架构的特点

  • NUMA 的配置方法

(华为云智能计算研发部主任工程师王博)


CPU 从单核到 SMP,从 2006 年左右开始,所有的 PC、服务器的处理器,都迈入了多核时代。这时出现了多核架构,称为 SMP:对称多处理系统。在 SMP 架构下的计算机中,每个核都是对等的,所有的核通过总线访问所有内存,每个进程在调度时,可以在任意一个核上运行,在操作系统和内核的支持下,整个系统能做到非常好的负载均衡,性能得到很好的发挥。

(从单核到 SMP)


从 SMP 到 NUMA,所有的核均通过总线访问内存,当核数不断增加的时候,内存总线成为了瓶颈。为了解决这一问题,NUMA 架构出现了,非统一的内存访问架构。右图是一个 NUMA 架构的示例,这里有两个 CPU,每个 CPU 内有两个 NUMA Node。在 NUMA 架构下,CPU 被分成了多个节点 Node。每个节点有自己的内存 Controller,不再受内存总线带宽的限制。

(从 SMP 到 NUMA)


NUMA 架构的特点,每个 NUMA 节点上面有自己的内存的卡槽、有自己内存的控制器、有自己的内存,这里面带来两个概念,第一个概念 CPU 有了节点,第二,我访问不同内存的时候,虽然所有内存在整个服务器上都是可见的,实际上在物理上他们是分布的,他们通过不同的结点、通过不同的内存访问器去访问的,就有了距离。

(NUMA 架构的特点)


(NUMA 配置的方法)


openEuler 的技术特点

第四位分享嘉宾是,华为云开源生态发展专家、openEuler 首席技术布道师朱星。分享了华为云容器解决方案 iSula 和 openEuler 的介绍:


  • 容器解决方案 iSula

  • openEuler 介绍

(华为云开源生态发展专家、openEuler 首席技术布道师朱星)


容器解决方案 iSula,是华为云在容器解决方案的总称,主要有三大模块。第一个是容器引擎 iSulaD,第二个是容器的储存,第三个是容器网络。具有三个优势特性:


  • 一步到位兼容最新标准(OCI 和 CRI 标准)

  • 相比 Docker 常驻内存进程从 3 个减少到 1 个,调用层级从三级压缩到 1 级,提升启动速度

  • 采用 C 语言,开销减小,原先使用 GO 语言编写,代码量非常大,通过 C 语言重写使代码量从 30 万变成了 7 万,使容器非常轻薄实现代码精简化。


openEuler 是一个基于华为 EulerOS 的开源服务器操作系统。另外一个含义是 openEuler 社区,openEuler 社区由华为牵头成立,多方参与。社区的定位是全面开源,对接了多个社区,包括 Linux 社区、Linaro 社区等等。


华为云希望通过共享的方式打造社区的操作系统 openEuler,基于 openEuler 可以有两种形式,一种就是提供给我们的合作伙伴,比如商业发行的厂家,做二次商业发行。另外可以提供给广大的互联网厂商或者中小企业直接使用。


希望社区开发者规模能够达到数百万,一起来参与从内核到基础包、标准包、扩展包的开发。


2019-12-16 16:411351

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | 大话测试数据(一)

测吧(北京)科技有限公司

测试

深入探索Linux零拷贝原理

C++后台开发

后台开发 零拷贝 linux开发 Linux服务器开发 C++开发

软件测试 | 测试开发 | 如何确保API 的稳定性与正确性?你只需要这一招

测吧(北京)科技有限公司

测试

一加与oppo是什么关系?答案就在这里

Geek_8a195c

4 分钟过一遍 ES12 的 5 个要点~

掘金安东尼

前端 9月月更

软件测试 | 测试开发 | 接口自动化测试框架 RESTAssured 实践(三):对 Response 结果导出

测吧(北京)科技有限公司

测试

开发者有话说|前路有光,初心莫忘,从编程小白,到如今小有所成,我这一路是如何走来的?

浅羽技术

个人成长 经验分享 自学java 开发者有话说 职场妙招

软件测试 | 测试开发 | 大话JMeter4|不同的并发数可以自动化做压测吗?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 学习Docker就应该掌握的dockerfile语法与指令

测吧(北京)科技有限公司

测试

深入浅出带你走进 RocksDB

KaiwuDB

数据库 RocksDB

软件测试 | 测试开发 | 后端Web开发框架(Java)

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 持续交付-Jenkinsfile 语法

测吧(北京)科技有限公司

软件测试 | 测试开发 | JavaScript脚本注入,完成Selenium 无法做到的那些事

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 一改测试步骤代码就全写?为什么不试试用 Yaml实现数据驱动?

测吧(北京)科技有限公司

测试

使用 Apifox 自动通关"羊了个羊" 1 万次,牛逼大了

Liam

程序员 自动化测试 抓包

软件测试 | 测试开发 | Java 接口自动化测试首选方案:REST Assured 实践 (一)

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | REST Assured 实践(二):断言实现

测吧(北京)科技有限公司

测试

【JavaScript】巩固JS开发中十个常用功能/案例(11-20)

海底烧烤店ai

算法 前端 JavaScrip 9月月更

软件测试 | 测试开发 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

测吧(北京)科技有限公司

测试

为何公司的业务都在往小程序化发展

Geek_99967b

小程序

软件测试 | 测试开发 | 只需搞定Docker,环境问题再也不是测开路上的『坑』

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | JMeter 典型电商场景(下单/支付)的性能压测

测吧(北京)科技有限公司

测试

嗨,程序员,你知道高级工程师用的搜索引擎吗?

梦想橡皮擦

9月月更

软件测试 | 测试开发 | 电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 |H5性能分析实战来啦~

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web自动化总卡在文件上传和弹框处理上?

测吧(北京)科技有限公司

测试

数字技术推动乡村振兴,腾讯云助力上线大通农文旅融合数字化平台

科技热闻

软件测试 | 测试开发 | TestNG 与 Junit 对比,测试框架如何选择?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 同样是断言,为何 Hamcrest 如此优秀?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何做好性能压测(一):压测环境的设计和搭建

测吧(北京)科技有限公司

测试

赞!| 龙蜥及其理事分获“2022 OSCAR 尖峰开源社区及项目、尖峰开源人物”奖项

OpenAnolis小助手

开源 龙蜥社区 获奖 理事长 产业大会

多元架构时代技术学习的正确姿势_架构_InfoQ精选文章