写点什么

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

宋文喆

  • 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:411851

评论

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

ARTS - Week One

shepherd

js algorithm

内容比形式更重要

Winann

内容 生活 工作 形式主义

学计算机你后悔了吗?

陈辰

学习 技术 大前端

数仓系列 | Flink 窗口的应用与实现

Apache Flink

大数据 flink 流计算 实时计算

翻译敏捷行业专业外文,不只是谷歌翻译

老彦

翻译 Scrum 敏捷开发 Agile

游戏夜读 | 如何避免乏味?两则

game1night

一文带你彻底厘清 Kubernetes 中的证书工作机制

首富手记

Kubernetes

有点干货 | Jdk1.8新特性实战篇(41个案例)

小傅哥

函数式接口 Lambda 小傅哥 jdk8 编码

实用贴丨正确的「递归」打开方式:让计算机像计算机一样去计算

博文视点Broadview

Python 递归

Golang热更新原理

我心依然

nginx Linux 信号 Go 语言

基于mysqldump聊一聊MySQL的备份和恢复

麦洛

MySQL

2020年2月北京BGP机房网络质量评测报告

博睿数据

Zabbix实战指南

橙子冰

技术 运维 监控 运维自动化 zabbix

软件开发生产率改进之我见(一)

清水

团队管理 软件工程 技术管理

「开放」对协作效率的影响

Tony Wu

产品 产品设计

李想解读《高效能人士的七个习惯》

我心依然

习惯 高效能人士的七个习惯 李想 汽车之家

面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

苹果看辽宁体育

mybatis

关于问题的问题 —— 读《你的灯亮着吗?》

YoungZY

读书笔记 读书

给学妹的 Java 学习路线

武培轩

Java 学习 程序员 程序媛

[GitHub] 跟我一起白嫖 GitHub Pages 做个人站点 ?

猴哥一一 cium

git GitHub GitHub Pages

有价值的产品=设计思维+精益创业+敏捷方法

老彦

Scrum 敏捷开发 Agile 设计思维 精益创业

Elasticsearch 实战

代码诗人

Flutter的staggered GridView详细使用

潘珉

flutter

[Git] Git 可以这么学

猴哥一一 cium

git

python实现·十大排序算法之希尔排序(Shell Sort)

南风以南

Python 排序算法 希尔排序

五个“为什么” —— 读《精益创业》

YoungZY

读书笔记

孩子,我们在睡前一起来阅读 15 分钟的好书,让彼此都带着好的故事入眠。

叶小鍵

正确阅读 托马斯·奥本 Doug Antin 蒂·泰德罗克

工厂模式 (一)简单的工厂模式概念以及示例代码

LSJ

Lean UX 教你设计如何驱动产品

Yanel 说敏捷产品

产品 敏捷 设计

Kubectl exec 的工作原理解读

硅基新手村

Kubernetes kubelet

2020年2月北京BGP机房网络质量评测报告

博睿数据

APM 机房 评测 世纪互联

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