百度基础架构背后的那些思考,多总结多思考才能走的长久

简介: 百度基础架构背后的那些思考,多总结多思考才能走的长久

1百度核心业务对基础架构的要求

百度的搜索业务特点是用户使用逻辑简单,只需要一个搜索框或下拉动作就可以完成产品的全部使用过程。但简单背后,其实隐藏着非常复杂的算法逻辑,需要经过大量的计算过程,对算法和大数据技术要求很高。

由于用户交互简单,架构上来说,用户对搜索引擎的速度有更高的要求。对基础架构而言,数据规模和性能有非常高的要求,比如基于 C++ 语言的高性能 RPC 框架 (brpc),海量数据的流式计算和分布式存储架构来支持离线数据处理和分析,大规模微服务和服务治理系统等。

相比于更复杂的业务形态比如电商业务来说,郑然体会有两个显著的特点:一方面复杂的业务模型天然缓解了对响应时间的要求,因为业务模型复杂,过程中会和用户产生更多的交互,即使用户购买这个简单的动作也需要多次互动;另一方面是交互结果的精确性。电商业务对交易结果的要求非常精确,而像搜索或者推荐这类侧重算法的产品产出的结果本身就是一种概率模型,不可能完全精确。复杂的场景要求架构设计得更加松耦合和可扩展,更加注重吞吐的优化,所以郑然注意到电商架构中可以大量使用微服务和消息队列机制来降低服务之间的耦合,Java 由于可以支持更快的研发效率,面对复杂业务场景在电商或者金融架构中也是主流,交易场景对分布式事务技术也有大量的应用场景。对结果的精确要求和相对复杂的业务流程,天然增加了业务的延迟,架构中可以侧重吞吐的优化。

随着人工智能技术的不断发展,基础架构的技术层面,郑然理解是一个从简单的单机系统向全面的分布式系统演化的过程。早期数据量少,算法也比较简单,小型的单机系统就可以轻松应付。随着数据量、算法复杂度的不断增加,对数据和算力的要求也越来越高,逐步引入了大量的分布式架构,比如分布式文件系统、表格存储系统、服务治理系统等等。在移动互联网时代,用户对内容的要求也发生着根本的变化,比如通过深度学习技术和大规模视频理解系统来提升对视频内容的理解程度,这些技术在百度智能云的视频云产品系列里也有体现。

2如何看待中台和微服务?

郑然认为,中台的概念过于广泛,他主要分享了百度在技术方面的一些做法。在百度相同业务部门和不同体系之间都有很多技术中台的案例,比如垂类搜索架构会复用通用搜索架构中大量的基础能力,搜索引擎架构会复用公司基础架构团队的很多基础能力。技术上通常以服务的形式提供,这其中相对基础的技术能力是比较容易界定的,但是越偏业务侧的就越难界定,需要更高层次的业务和技术架构设计。

在郑然看来,微服务只是中台的一种实现形式,但并不是唯一的实现形式。微服务的本质是单一职责,是松耦合,是技术能力复用,这和中台的本质是一样的,所以如果业务部门微服务做得好,那么也更容易中台化。

3云原生给架构带来了什么?

云原生这个时下最流行的技术概念,在郑然看来其实是云计算技术的第二次进阶。在前十年,云计算技术是围绕资源层的弹性来建设的,通过大量的虚拟化技术来实现 IaaS 层强大的弹性能力。但是最近几年,大家发现只有资源弹性还无法释放云的全部能力,业务必须充分意识到自己是运行在云上,按照云的特点进行设计才能进一步发挥云的威力,这就是 Native 的含义。

郑然所理解的云的特性中,核心是弹性,是按需使用。因此,业务架构也要向着弹性发展,比如微服务、存储计算分离、高可用等等,这对业务架构的要求也非常高。在 CNCF 社区的努力下,云原生不仅仅停留在理念和思想上,还涌现出了像 Kubernetes 和 Prometheus 这样成为事实标准的工业级软件,加速了云原生理念的落地。可以想象,随着这些标准化的云原生技术的普及,可以全面加速企业上云的进程,全面释放云的技术红利,让所有企业从中受益。

百度早在 2012 年就开始在云原生的理念下探索了,在 2015 年左右百度集群操作系统 Matrix 已经覆盖了大量的业务线,以此为基础的 PaaS 技术和在离线混部等技术也一直走在前面。2019 年春晚红包,百度作为历史上第一次春晚全程无宕机的公司,云原生的技术思想和业务架构起到了关键的作用。

郑然补充到,目前百度的云原生技术更多的是自研的技术体系,和 CNCF 社区的标准化技术方案有较大差异。团队看到了云原生社区的迅速发展和强大生命力,从 2019 年开始逐步拥抱 Kubernetes、Istio、Prometheus 等优秀的开源技术,希望结合自研的技术实践经验,将百度的优秀实践回馈到 CNCF 开源生态中去,促进云原生技术的发展,在 2019 年百度向 Kubernetes 社区的贡献进入全球前十的行列。

对于云原生是否适用于传统行业,郑然认为云原生适用于任何企业,CNCF 2019 年的年度报告中不乏各行各业的实践案例。事实上,云原生的本质是应用需要按照云的特点而设计,虽然很多业界标准的云原生技术能够帮助企业加速云原生理念的落地,但是企业必须认识到自身架构必须按照云原生的理念进行优化才能真正达到云原生的能力,这方面郑然认为没有捷径。很多企业希望完全依赖公有云厂商或者自己的 IT 部门就能实现云原生的转型是绝对错误的,只有业务积极适配云原生的技术理念,才能真正完成云原生的蜕变。

4中小企业架构师应该如何设计 IT 架构?

架构是为了保证业务高速发展而准备的,作为架构师首先需要深入理解业务, 只有深刻理解业务需求,才能设计出最符合当前业务发展阶段的架构。除此之外,架构师还需要在某些维度锻炼自己的核心能力,郑然在自己的个人公众号里曾经写过一遍《架构师能力模型》的文章,总结了架构师应该锻炼的十项能力,稍微总结一下:

研发流程的持续改进。架构师不是单兵作战,一定需要团队的共同努力,那么需要对团队的研发效率了如指掌,并且针对性的提出优化手段。

归纳抽象和技术泛化能力。架构设计很多情况下郑然理解就是将共性和差异化的东西分离出来,共性的部分抽象成独立的接口,功能模块或者组件,差异化的部分分别形成其他代码模块。那如何识别或者分析出共性的部分,这主要就是依靠架构师的归纳,抽象和技术泛化能力。

业务和需求的分析和理解能力。架构师要能够接地气,只有更好的理解业务才能设计出符合业务发展阶段的架构。

技术折中和持续改善的能力。架构设计需要在很多因素中平衡,把握其中的平衡点并且知道后续如何改善是架构师内功的一种体现。

技术广度和深度。架构师毕竟仍然是工程师,而且大都是从一线研发工程师逐步成长和积累起来的,在某一技术领域或者技术方向通常都有较为深入的理解和积累。不管是一线研发同学还是架构师,至少应该在 1~2 个技术领域有着深入理解的基础上,再同时涉猎技术广度。

持续学习能力。计算机技术发展速度非常快,持续学习能力对于计算机工程师来说都非常重要,特别是架构师还要求开阔技术视野。持续学习能力与其说是一种能力,更多的还是一种习惯的养成。

技术影响力。可以多参加 QCon 的演讲。

沟通表达能力。对上可汇报,对下可讲细节,对用户可讲产品功能,沟通可以说贯穿日常工作的方方面面,是架构师综合能力的集中体现。

技术管理能力。架构师不是做完架构设计之后就可以高枕无忧了,架构师往往要带领整个研发团队完成架构的落地。这就要求架构师即使不是经理角色,也要具备一定的技术管理能力,从而带着整个团队一起完成工作。技术管理能力首先要求能够设定清晰的目标,这是整个团队工作的方向;其次要求在行进过程中不断纠正执行路径,执行路径很难在项目启动时就规划清楚,需要在执行过程中不断探索;有了目标和路径,还需要优秀的人才组成团队,所以架构师也不能疏忽人才招聘和人才培养的工作。

坚持正确的价值观,积极正能量。有着正确的价值观,时刻充满积极正能量的人,面对诱惑的时候,能够更加坚定自己的选择。面对困难的时候,可以主动寻找解决办法,有足够的韧性。这可能也是很多成功者的必备素质吧。

目录
相关文章
|
6月前
|
运维 网络协议 安全
长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践
本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。
243 1
|
6月前
|
缓存 Ubuntu 数据库
百度搜索:蓝易云【Ubuntu系统目录架构详解】
这是Ubuntu系统目录架构的主要部分,每个目录都有其特定的用途,合理使用目录结构可以使系统更加有序和易于管理。
82 2
|
1月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
53 3
|
存储 测试技术 API
百度云磁带库存储架构的设计与实践
传统介质的新气象!百度智能云基于磁带库实现冷数据存储架构。
351 0
|
机器学习/深度学习 人工智能 架构师
三岁在的百度架构师带你零基础实践深度学习的第一天
大家好这里是小白三岁,参加了百度飞桨的课程《百度架构师手把手带你零基础实践深度学习》,又开始了三岁的白话叨叨叨,虽然是0基础实践课程但是此’hello world’非彼’hello world’还需大家一起努力。
143 0
三岁在的百度架构师带你零基础实践深度学习的第一天
|
消息中间件 存储 数据可视化
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(三)
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(三)
816 0
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(三)
|
存储 消息中间件 数据可视化
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(二)
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(二)
426 0
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(二)
|
存储 数据采集 XML
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(一)
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(一)
439 0
百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解(一)
|
机器学习/深度学习 人工智能 自然语言处理
百度智能云新架构掀开面纱:知识中台成为差异化竞争优势
百度智能云新架构掀开面纱:知识中台成为差异化竞争优势
591 0
百度智能云新架构掀开面纱:知识中台成为差异化竞争优势
|
机器学习/深度学习 人工智能 架构师

热门文章

最新文章