2021北京Qcon参会精华总结


简介

2021年北京Qcon开发者大会已经落下帷幕,大会共持续3天,整体下来收获颇丰,在此简单分享会中学习到的技术总结和前瞻。大会围绕以下几个专题展开:

大会背景和组织形式

QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。Con 内容源于实践并面向社区,演讲嘉宾依据热点话题,面向5年以上工作经验的技术团队负责人、架构师、工程总监、开发人员分享技术创新和实践。

2020年Qcon大会由于疫情原因没有如期召开,今年北京Qcon大会相当于是2020+2021的总和,如极客邦主办方所讲,此次大会是将近两年的技术&行业趋势投射在为期3天的大会当中。组织脉络依旧是主会场+分会场的形式,开幕主会场由6位邀请嘉宾(1位缺席)提纲挈领介绍行业、技术建设和展望,后面的分会场更加接地气一些,更多的是讲解技术应用实践、行业痛点、数字化&智能化解决方案、降本提效等内容。

下面我将按照我的听会时间线简单阐述此次参会收获,对特定场次感兴趣的同学可以点击文章末尾的资料链接,其中有很多分享出来的PPT资料,如果感觉还是不过瘾,可以参加Qcon的线上课程Qcon Plus,有现场录制课程回放。

主会场

把内容交付这件事做好 - 极客邦合伙人兼总编 郭蕾

主讲内容:主要讲了本次Qcon大会的召开背景和输出极客邦的产品定位。

Qcon作为一家第三方媒体教育公司,汇聚了强公司的行业经验,它的核心竞争力是技术内容服务,emmm~advertise time。一次Qcon线下会议的准备流程是这样的:

  1. 全年会议规划

  2. 邀请联席主席

  3. 规划内容方向

  4. 邀请出品人

  5. 策划专题内容

  6. 邀请讲师

  7. 打磨议题

  8. 打磨PPT

  9. 在线试讲

  10. 会场交付

简单点评:这样一场技术交流峰会含金量还是蛮高的(当然其中也不乏比较水的主题),值得票价。

AI-Native的云计算架构实践 - 百度副总裁 侯震宇

主讲内容:主要讲了AI+Cloud的行业洞察

AI+Cloud正成为新常态,随着AI技术的深入突破以及AI应用场景的逐步拓展,行业应用的工程架构和用户体验在全生命周期需要充分考虑AI技术应用,进入了AI-Native的阶段,同时工程底层也要基于云来构建,新阶段需要AI-Native的云计算架构。

AI-Native的发展历程

1.png

从架构的角度看,百度智能云 AI-Native 架构可以看作“1个云基础设施层”,“2个平台层”即工程平台与应用开发平台,和顶层的“方法论”。

2.png

“云智”一体战略在百度智能视频云上的落地全景图。

3.png

百度产品全景图(有点模糊,见谅)。

4.png

简单点评:百度针对基础设施的建设投入很大,其核心理念是——iaas的厚重才能支撑真正的智能训练,算力也是一种生产力。为此做了很多高带宽、高数据交换,高芯片集成的工作。他们做的芯片设计优化很是“领域内”场景的,如语音计算场景、图像计算场景等。

鲲鹏全栈开放创新,构筑极致性能、使能极简开发 - 华为鲲鹏产品部部长 颜叶

主讲内容:鲲鹏计算全栈开放创新的策略,通过开放鲲鹏主板2.0,持续投入开源操作系统 openEuler 和开源数据库 openGauss,开放鲲鹏应用使能套件 BoostKit 与鲲鹏开发套件 DevKit,加速计算产业创新。

简单点评:开发了一套自底向上的强绑定开发套件,ToB以及自由开发者,抢占中小公司的业务部署服务阵地和自由开发者的时间。

如何成为一名优秀的架构师 - 车好多CTO 郭东白

主讲内容:架构师应具备的能力、如何决策、如何创造价值,架构师成长的术与道。 这个分享可以想见是偏经验和理论哲学型,这里简单摘录一些我认为有价值的分享点:

简单点评:这个分享很有价值,能够解决很多人的一些困惑,听完确实有种学到了的感觉(当然也会有人认为很多都是正确的废话,这就仁者见仁、智者见智了,能抓取到自己认为有价值的东西就好)。其中有个观点我比较认可——坚持去做自己认为正确的事情,这个可以很简单,也可以很难。

开源3.0:自由开发者的崛起 - 思码逸创始人兼CEO 任晶磊

主讲内容:开源软件发展阶段,新一代的代码贡献分析技术如何推动开源软件开发模式的演进 核心观点:

简单点评:提高了自己对开源的认知,尤其是关于开源软件的分类、阶段等问题,这是自己以前不曾思考过的。个人认为真正做到自由开发者3.0阶段目前还是有很长的路的要走的。

分会场

面向云原生应用的Java冷启动加速技术

主讲内容:云原生场景下,应用冷启动缓慢的原因和两种不同解决方案的分析 问题背景:云原生应用具有程序短小、启动频繁、冷启动时间长、无法快速响应&近实时扩展的痛点 根因分析:

5.png

解决办法:

6.png

效果数据:

优劣分析:

KonaFiber:Java 协程在腾讯的生产实践

主讲内容:Java协程诞生的背景,KonaFiber的目标、架构、实现以及在腾讯内部的实践。 协程诞生的背景:

开源社区解决方案: Project Loom,其目标是Java原生支持协程特性(Java生态丰富的异步框架缓解了协程的紧迫性),使用起来可以像线程一样去使用,全面兼容已有的Java规范,JVM特性。 Loom实现架构:

7.png

Loom 主要关注于降低并发编程的代码难度(不是提供封装的API,而是重新实现)。该计划要求添加可选的、基于用户模式的线程实现,定界延续以及涉及调用堆栈操作的其他概念。项目的主要目标是提供一个线程的替代实现,由用Java编写的调度程序管理。普通Java线程的Java编程模型将被保留,同时性能得到提高,内存占用减少。——https://www.zhihu.com/question/67579790

Loom 引入了一种称为纤程(Fiber)的新型线程。纤程也称作虚拟线程(Virtual Thread)、绿色线程(Green Thread)或者用户线程。这些名字暗含着所有工作完全由虚拟机或操作系统处理,而且甚至不需要知道此类线程存在。这意味着并非每个虚拟机线程都需要有对应的操作系统线程!虚拟线程可能被 I/O 操作阻塞或者等待另一个线程的信号,但与此同时,其他虚拟线程仍然可以使用底层的基础线程!——https://blog.51cto.com/u_15082395/2589916

腾讯Kona Fiber:

Kona Fiber实现架构:

8.png

业务协程化改造成本&收益: 将线程池替换为协程池,将某些同步接口替换为异步框架解决(如通过nio+future替换bio),在腾讯公司内部一个高并发推送业务和游戏业务试点,业务吞吐量分别提升60%&35%。

9.png

会场答疑要点:

感兴趣的同学可以看他们的开源仓库:https://github.com/Tencent/TencentKona-8/tree/KonaFiber

微博推荐引擎架构蜕变之路

主讲内容:微博推荐引擎可靠性保障 微博推荐引擎架构:

10.png

推荐引擎可靠性挑战:

推荐引擎可靠运行的关键要素:

推荐引擎改造实践:

11.png

API文档化 让服务治理走向有迹可循

主讲内容:去哪儿网对业务开发文档建设管理的思考和实践 开发文档的痛点:

API标准化的作用: 明确一个团队只在单一的限界上下文中工作,别给其他团队机会去修改你的源代码,从而引发意外,你的团队控制着源代码和数据库并定义了官方 API,必须通过这些API才可以调用限界上下文,这是使 用DDD所能带来的好处之一(这里讲师想强调的是使用DDD去指导接口设计) API是什么:

API文档落地产品QDoc:

QDoc落地效果(跟Swagger很像,只是更加强化了领域设计思想):

12.png

QDoc发展路径:

工程能力漫谈

主讲内容:为什么要重视工程能力;什么是工程能力;怎么加强工程能力 什么是工程能力:

13.png

一些不好的现象:

一些正确的认知:

工程能力的素质要求:

14.png

推荐书籍:

贝壳的平台数字化转型进阶之路

主讲内容:贝壳数字化转型的机遇,挑战和创新 核心要点:数字经济的创新时代,互联网行业正在经历消费互联网到产业互联网的迭代,房地产产业链背后是一个万亿级市场,整个产业链具备一定的完整性、可持续性以及可塑性,同时这个行业还有4个显著的特征:

显著的行业附属特性也注定其打法也不同于其他行业,更不能随意照抄其他行业的模式。贝壳拥有3大数据模型:

简而言之,贝壳的进阶是从标准化、数字化到智能化(还比较薄弱,如VR看房、智能荐房等能力)的升级。 注:会上有切出当前贝壳核心技术模块构建体系图,切得太快没拍上,会后也没给出来,故只能凭记忆口喷,见谅。

⼈群高可用架构设计实践

主讲内容:阿里人群高可用架构的技术设计实现 阿里人群服务能力:

人群服务使用场景&量级:服务租户BU30+,业务空间100+,应用400+,QPS1000W 核心技术挑战:

系统核心分层:

15.png

如何处理高性能问题:

16.png

17.png

如何处理高扩展问题:

如何处理高可用问题:

业务逻辑拆分模式的探索

主讲内容:业务逻辑如何拆分、抽象、设计,以及如何避免review每一行代码 简单点评:这个演讲比较散乱,没get到讲师的重点是什么,但其中有一些小的闪光点,这里做个简单的记录。 集成类需求:

往一个“东西”上集成的误区和解法:

18.png

19.png

M 乘 N 的集成的误区和解法:

20.png

21.png

为什么代码总是会腐化:

大会PPT资料

https://qcon.infoq.cn/2021/beijing/schedule