【AICon】开辟产业应用新天地,大模型重塑各行各业,精华内容上线58%!>>> 了解详情
写点什么

解读 2019 之架构领域全年盘点

  • 2019-11-27
  • 本文字数:4776 字

    阅读完需:约 16 分钟

解读2019之架构领域全年盘点

2019 年,整个 IT 领域发生了许多深刻而又复杂的变化,InfoQ 策划了“解读 2019”年终技术盘点系列文章,希望能够给读者清晰地梳理出 IT 领域技术这一年的发展变化,回顾过去,继续前行。本文是架构篇年终盘点。

背景

在过去的十年时间里,软件开发的各个领域里发生了巨大的变化。云计算从虚拟机到容器再到云原生;数据库从关系型到 NoSQL 再到 NewSQL;运维从手工运维到 DevOps、AIOps……而在相对稳定的架构领域,也经历了从单体应用到 SOA 再到微服务的演化过程。


在固有印象里,软件开发领域更新换代最快的当属前端领域,“别更新了,学不动了”、“前端领域十八个月难度翻一番”,这是前端开发们的自嘲。但在过去的一年中,相对稳定的架构领域同样发生了巨大的变更,所谓中台、云原生带来的云时代架构,这些对企业技术架构带来了深切的影响。


过去几年间,上云成了互联网企业的主旋律,而到今年,该上云的互联网企业基本都已经完成了上云步骤,传统企业也在评估着单云多云混合云的部署方案。全面云计算时代已经来临,与之相匹配的云时代的架构又该是怎样的呢?本文试图梳理过去一年时间里,架构领域发生的种种变化,为读者揭示一个软件架构过去与未来的全貌。

中台

2019 年可以称得上是中台元年,这一年如雨后春笋般涌现的中台名词不胜枚举,业务中台、数据中台、技术中台、算法中台、AI 中台等等让人目不暇接。一般而言,互联网企业的“中台”战略由阿里巴巴首先提出,但中台的思想其实在银行业、硅谷等都有落地经验。


阿里的中台是个累积的过程,从 2009 年建立共享事业部开始,几经曲折,但是一直在积累,直到 2015 年正式发展成中台战略。阿里目前的中台大约有十几个共享业务单元,包括用户中心、商品中心、交易中心等。淘宝、天猫、聚划算等 25 个大型业务应用都是由中台的共享业务单元支持的,共享业务单元则由阿里云平台支持。



谢纯良《阿里巴巴中台技术架构实践与思考》


无独有偶,硅谷虽然没有“中台”一词,但类似的中台建设实践早已有之。此前亚马逊 CTO Werner Vogels 在总结亚马逊过去多年的软件开发经验时曾提到


为了支持这种新型架构,我们分解了功能层级结构,并将企业组织重新编排为小型自治团队——小到每次点餐只需要两份披萨。我们将这些“双披萨团队”委派到不同的特定产品、服务或者功能集上,赋予他们对应用程序内特定部分的更多操作权限。这使得我们的开发人员成为产品所有者,并能够根据自己的决策迅速对个别产品产生影响。


互联网一直以来的特点就是赢家通吃,只要成功企业推出的前沿概念,盲目追随者的数量不在少数。阿里巴巴在业务和技术上的成功让“中台”一词被业界奉为圭臬,好似软件开发领域的又一颗银弹。但软件开发的历史规律告诉我们,软件开发没有银弹,有的只是与时俱进、不断迭代的 IT 架构。


中台出现的历史背景有很多,但对企业级 IT 而言,解决业务架构的痛点永远会是其中一个重要原因。

业务架构

业务架构是一个存在二十多年的概念,很多工程师认为业务架构与技术架构相比,缺乏技术含量,对于工程师的能力增长没有多少帮助。但对于大型科技公司而言,业务架构却非常重要。它是连接企业战略和技术实现的桥梁,是连接业务人员与技术人员的桥梁。基础架构有很多可以复用的通用能力,但业务架构却是千变万化需要针对企业自身业务去设计、生长的。


2011 年,Gartner 发布的报告中不无担心地提到:只有 9% 的企业架构活动是在组织内业务方面的合作下完成的。虽然合作项目的比例有望在 2016 年提高到 30%,有人认为企业架构小组参与度这样低还是让人警觉,也使他们处于被业务团队抛开而独自做出技术决策的风险之中。


9 年过去了,新的观点认为,未来每家公司都是科技公司。传统行业,更多开始将自身业务与新兴科技相结合,而在零售、餐饮、出租车等领域,运用的技术直接造就了各大电商、美团、滴滴等科技公司。


在当前的云时代下,业务架构将变得更加纯粹专注、聚焦在业务上。云时代以前,业务架构要大包大揽,什么都自己做,但在云时代下很多基础的事情可以交给云来做。除了云计算给业务架构带来的改变,中台概念的出现也对业务架构的设计产生了很大影响。一般来说多个业务能够复用的技术能力,应该放在中台来建设,业务架构直接复用就行,不用重复造轮子。


微服务成了连接业务架构和中台的一个桥梁。

微服务

这些年里,软件架构逐渐从 SOA 进化到微服务,很多人认为微服务是一种细粒度的 SOA,在去掉了 SOA 中的 ESB 之后,微服务变得更加灵活、性能更强。Martin Fowler 曾经总结过微服务实施的前提包括:计算资源的快速分配、基本的监控、快速部署。这基本就是 Kubernetes 所起到的主要作用,随着云原生计算基金会的壮大,基于 Kubernetes 的微服务在社区中的热度越来越高,也开始有很多公司开始利用这一套技术栈来构建微服务。


伴随着微服务转型的浪潮,一个名叫 Service Mesh 的技术走上了微服务的舞台。2016 年,由开发了 Linkerd 的 Buoyant 公司提出。Service Mesh 的出现,极大地补充了 Kubernetes 生态的微服务选型,再加上 CNCF 的一些开源项目,基于 k8s 的微服务技术栈基本就完善了。2018 年 Istio 1.0 发布,更是为这股浪潮加了一把火,未来的微服务将是 Kubernetes 和 Service Mesh 的天下。


凭借着 Kubernetes 和 Service Mesh 的双剑合并,微服务逐渐走向了巅峰,但此时它的挑战者 Serverless 已经出现。


Serverless 或者说 FaaS 最开始只是 AWS 推出的一个功能,但现在业界已经有人将其看作微服务的进化,因为其内含的 Function 可以视为更小的、原子化的服务,天然地契合微服务的一些理念。



(许晓斌 《从微服务到 FaaS》)


但目前而言,Serverless 即便在阿里、腾讯等大公司,也仍旧是一个摸索状态,如何将其融入现有架构业界尚没有成熟的经验,也没有太多落地案例,其自身也存在一些问题需要解决。但毫无疑问,这将是业界关注的重点。就像云原生一样,开发者端的关注度还不够,但在企业端已经是一个流行热词。

云原生

在策划 12 月 6 日 Archsummit 全球架构师峰会的时候,也和业界技术专家沟通过,如果我们要传递未来 3 年能引领技术人关注点的未来架构技术专题的时候,应该如何设置这个专题?专家们一致认为,云原生是真正的未来架构演化方向。容器 Kubernetes 和云原生新架构慢慢成为下一代软件架构新标准,重构整个软件生命周期,对整个 IT 产业基础设施带来改变,成为释放云价值和云能力的最短路径。而 5G、边缘计算、IoT 万物互联都是具体场景,有垂直化领域内的价值和空间,可以基于云原生技术体系去构建和支撑。


毫不夸张地讲,云原生会是一个改变软件应用开发模式的技术,一是节省了基础设施的部署,二是节省了开发人员的时间和精力,更专注于解决业务层面的问题,云原生开发也被视为技术人的福音。


以往的单体系统可以在云端不断扩展规模,但当某一个功能成为瓶颈时,只能不断复制整个单体系统从而达到对单一功能扩展的效果,这就浪费了大量的计算资源。从云单体系统向云原生架构改造需要采用微服务、Serverless 计算等多种云原生技术。


记得 Mobvista Tech VP 蔡超分享过,在构建云原生架构的时候,引入了面向容错、面向故障恢复的架构和混沌工程,从而构建一个高可用的微服务架构。这些使得系统架构更加具有弹性,从而可以更好利用云端的高弹性资源,而高弹性计算资源往往具有更好的价格优势。

反应式架构

国内最早探索这一架构模式的是淘宝网,因为他们遇到了“同步等待造成资源浪费、无法实现纯业务依赖并发、响应时间累积导致连锁反应”等问题。经过调研,淘宝架构团队认为使用反应式架构是当前可行的一个方案。原因包括,Java 8 已经逐渐普及,且包含对 Lambda 的支持;同时 Reactive 相关的业务框架在业界已有成熟的实现,RxJava 已经广泛在大小公司中应用;最后,包括 Java 9(引入 Reactive Sreams 规范 API)、Spring 5(引入 Reactor/WebFlux)、Spring Boot 2 都开始拥抱 Reactive,说明反应式编程的确是趋势。


整个方案对业务架构的升级主要包括编程框架、中间件,以及业务方的升级。中间件的升级,包括服务框架(RPC)、网关、缓存、消息(MQ)、DB(JDBC)、限流组件、分布式跟踪系统、移动端 Rx 框架。改造后的架构如图:



落地反应式架构,需要做哪些准备呢?之前工程师主要使用同步式的思维写程序,突然要换成以流的方式编写,所以说,实施反应式架构的难点主要在于工程师的思维转换。另外,要做到全面异步化,组织必须从上到下全力支持。同时,要让业务方有动力去做异步化的改造,需要让他们认识到这么做的好处。

前端

2019 年,发展比较成熟的前端领域技术包括小程序、Serverless、Native、RN、前端中台、容器化等。移动开发方面,各大厂商不断追求通过各种方式改进研发效率。一方面,使用跨平台、动态化的技术,可以有效的减少研发成本,快速在线试错;另一方面,通过工程化的手段,通过优化架构,实现业务隔离,减少团队间的影响。


由于跨平台、动态化的开发技术带来价值越来越突出,已经占据了常规开发的大部分空间。对于更加细分的场景(高性能、强体验),以及新交互(AR、VR、移动 AI)的落地应用,Native 开发仍然扮演着统治者的角色。


今年另一个技术趋势是将”小程序”技术引入自家 App,可以实现业务的跨 App 复用,从而实现 1 次开发,2(iOS + Android) * N (N 个 App ) + 1(微信)次复用的效果。7 月在深圳 ArchSummit 会议上,阿里专家彭伟春分享了如何跨越生态实现监控小程序,去哪儿网的技术专家司徒正美分享了跨端小程序开发内容。


工程化的发展,一方面依赖于对前端架构的系统性规划和建设,另一方也有新技术来推进发展。比如 Serverless 新技术同样也能带来工程效率的大幅提升,它可以有效降低发布和运维的复杂度,通过自动化的管理方式平衡资源与成本。


AI、模式识别等技术为提升研发、运维效率带来了新的思路,类似 UI to code 的产品现阶段已经取得了不错的进展,未来某一天,一些基本的开发工作可能会被越来越智能化的工具所取代。


在未来 3 年,前端领域交互方式上可能会出现革命性的进化:新型硬件设备、更智能的如语音交互方式、全新的操作界面(脑机接口等);其次是跨平台技术广泛应用:伴随新系统的发展(例,Fuchsia、鸿蒙),跨平台技术(语言、开发框架、开发工具)大幅降低多平台开发的成本。


而那对于中小型互联网企业,在前端技术选型上要优先考虑动态化、跨平台技术:可以有效降低研发成本,缩短研发周期,使业务诉求能够得到快速验证。

写在最后

Gartner 每年都会发布一份技术炒作周期的研究报告,提出他们认为未来值得关注的技术趋势。许多人认为技术炒作周期的中文译名不太妥当,笔者却认为恰到好处。在当下的中文 IT 圈,关于中台、Service Mesh、云原生的炒作力度不可谓不大。


但回顾过去二十年 Gartner 的技术炒作周期报告,你会发现:人们的预测能力非常差,预测即打脸;昙花一现的技术非常多;许多技术都死掉了……但同样的,仍旧有一些技术一直在成熟的过程中,许多成熟技术在持续取得进步,今天回看过去十年、二十年的技术发展,你才会深刻地认识到,原来技术从真正意义上地改变了世界。


而对于技术而言,IT 架构是支撑其高速发展的根本,单个技术的力量是有限的,只有组合在一起,才能产生沛然莫之能御的力量。软件的颠覆式创新,一定是在硬件支持的基础上,随着现有的软件架构对现有硬件能力的挖掘,再发生颠覆的可能性已经较小了。但对于身处技术变革洪流中的开发者本身而言,仍旧不可轻视,了解架构发展的现在与未来,才能更好地在诸般变化中找到本源,处变不惊。




今年底最后一场面向架构师、CTO 级别的Archsummit 全球架构师峰会(北京站),来自 Google、Netflix、阿里、美团、滴滴的技术专家们将分享分享推荐系统研究、AI、算法、数据中台、微服务架构、金融技术、云原生、业务架构等技术内容。点击官网了解会议日程。参会联系票务经理灰灰 15600537884(同微信)


2019-11-27 14:209794
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 375.6 次阅读, 收获喜欢 1972 次。

关注

评论 11 条评论

发布
用户头像
除了云厂商在吹嘘Serverless,究竟有么有好的使用Serverless的案例
2019-11-27 21:22
回复
目前厂商其实也还在摸索中,能拿出来讲的案例是真不多,但趋势就是大家很多都在往这个方向做投入,应该还需要一到两年的沉淀,就像当初的Service Mesh一样。
2019-11-28 09:01
回复
Serverless案例的案例国外有但是用在python上而且也不是处理面向用户的东西,目前可行的方案是Service Mesh,面向未来的是Serverless
2019-11-28 09:58
回复
用户头像
该评论已删除
2019-11-27 17:01
回复
好文该多出几篇
2019-11-27 17:33
回复
解读2019还会有很多篇,除了已经发布的架构篇以外,还会有云计算、运维、容器、AI等多个领域。
2019-11-28 09:00
回复
怎么没有解读2019之数据库和大数据系列呢?
2019-12-07 09:45
回复
用户头像
2019-11-27 16:38
回复
2019-11-27 16:38
回复
用户头像
标题太大,内容太少太小
2019-11-27 16:32
回复
架构领域本身涵盖比较大,我们在写的过程中就挑了几个比较具有代表性的技术方向来展示
2019-11-28 09:00
回复
嗯,期待其他领域的文章
2019-12-02 09:57
回复
没有更多了
发现更多内容

中美顶级AI首次对话 送给人类的忠告引发关注

硬科技星球

论文复现丨基于ModelArts实现Text2SQL

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

端到端流程打通企业经脉

元年技术洞察

数字化转型 流程 趋势研究 PaaS平台 方舟平台

跨越速运运单分析系统入选2022中国数据智能最佳实践案例

StarRocks

数据分析 物流

美团餐饮SaaS基于StarRocks构建商家数据中台的探索

StarRocks

数据分析 零售

华为应用市场公布2022年度榜单 原子化服务、车载应用首次上榜

最新动态

web前端培训班怎么学习?

小谷哥

MySQL进阶:Innodb的RR到底有没有解决幻读?

程序员小毕

MySQL 数据库 程序员 后端 java面试

玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制

OpenHarmony开发者

OpenHarmony

选择大数据培训学习技术之前有哪些准备

小谷哥

大数据培训机构怎么选择

小谷哥

海量请求下的接口并发解决方案

Java全栈架构师

Java 数据库 面试 后端 架构师

技术分享| anyRTC复盘一起看球场景

anyRTC开发者

CDN RTC 实时音视频 直播连麦 AI降噪

某车企用户数据泄露,新能源汽车信息安全问题不容忽视

行云管家

信息安全 企业 堡垒机

云成本优化方案-采购云管平台!

行云管家

云计算 云资源 云成本、

MySQL 慢查询日志分析(Filebeat+Elasticsearch+DataEase)

搞大屏的小北

MySQL慢查询 MySQL日志分析 MySQL日志可视化

破解加密的LastPass数据库

神锁离线版

数据安全 密码 密码管理器 Lastpass 密码安全

火山引擎工具技术分享:用AI完成数据挖掘,零门槛完成SQL撰写

字节跳动数据平台

大数据 BI BI 分析工具 12 月 PK 榜

自学web前端开发能找到好工作吗?

小谷哥

YonBuilder开发之后端函数

YonBuilder低代码开发平台

后端 数据 开发 扩展 软件研发

AI技术实践 | 人脸核身在未成年人保护领域的实践应用

牵着蜗牛去散步

人工智能 腾讯云 腾讯 人脸识别 未成年保护

融云 x OHLA:「社交+游戏」双轮驱动,逐鹿中东陌生人社交

融云 RongCloud

社交 融云

分布式系统关键路径延迟分析实践

百度Geek说

12 月 PK 榜 延时分析 关键路径 大型分布式系统延时优化

【年度评选】让我们为即将过去的 2022 划上圆满的句号

InfoQ写作社区官方

热门活动

GitHub标星120K+!最新23版Java岗面试攻略,涵盖28个技术栈!

程序知音

Java java面试 java编程 后端技术 Java面试八股文

自学数据分析——数据分析方法和模型

搞大屏的小北

数据分析方法 自学数据分析

InfoQ 写作社区 2022 年度优质企业号评选正式开启!

InfoQ写作社区官方

热门活动

重磅 | 九科信息受邀参加2022中国互联网大会“数字政府论坛”

九科Ninetech

自学数据分析——重新认识数据分析

搞大屏的小北

数据分析 数据分析可视化

java培训学习后找不到工作的原因有哪些

小谷哥

隐私集合求交(PSI)协议研究综述

京东科技开发者

安全 密码学 安全多方计算 隐私集合求交 不经意传输

解读2019之架构领域全年盘点_ArchSummit_小智_InfoQ精选文章