极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:09
登录|注册

看透中台之企业级应用的架构难点

讲述:初明明大小:4.71M时长:05:09
你好,欢迎收听极客视点。
“中台”一词火爆挺久了,业界也有很多关于中台的落地实践,但大家对中台的理解参差不齐。此前,满帮集团高级技术总监、西瓜创客 CTO 李昊在公众号“技术琐话(ID:TheoryPractice)”总结了他在货车帮建设中台的经验,并分享了他对中台的理解,或许对你理解中台的含义有所启发。
李昊认为,如果理解了企业级应用的架构难点,以及从服务化到平台化再到中台化的演变过程,就能非常清楚中台架构方式究竟是什么了。以下内容主要介绍企业级应用的架构难点。

层次与架构

“架构”在软件行业是一个非常微妙的词,无论是最初的 C/S 架构、B/S 架构还是如今的微服务架构,架构的内涵主要包括以下两点:
是最高层次的系统分解和抽象;
是不易改变的设计方案和抉择。
要想对系统进行分解和抽象,找到不易改变的部分,主要的方法是分层。在计算机本身的架构中,到处都有分层的例子:
系统:硬件层 ->HAL 层 ->OS 层 -> 应用组件或平台 -> 各种应用。
网络:不管是五层还是七层的分法,大体上都是硬件 -> 链路 -> 网络 -> 传输 -> 应用。
分层方式最核心的好处在于:
封装细节,解除耦合:比如不用知道硬件细节就可以在 TCP 上构建 FTP 服务,如果硬件层完全换了 FTP 服务也可以正常运行。
有利于标准化:因为每层的实现相对自治,就容易形成每一层的标准化协议和运行机制。
和网络体系架构已经非常成熟的系统相比,互联网公司构建的“企业级应用”,难度主要在于:
复杂的数据层次:需要持久化并经常变更的数据很多,需要打通和集成的外部异构系统很多,数据状态复杂、访问量大、访问方式异构。
复杂的业务逻辑:各种商业规则和潜规则形成的业务规则,还会随时变化,软件中没有比业务逻辑更缺失逻辑的东西了。
因为这两方面的复杂性,对企业级应用分层时最困难的问题就是究竟有哪些层次,每一层的职责和边界是什么。到目前为止,最流行的做法是按照 Brown 的建议把它分为三层。
表现层主要处理用户与系统之间的交互:可以是 App 或网页,也可以是桌面客户端。
领域层主要是处理各种业务领域内的逻辑:包括数据抽取、规则计算等等的逻辑。
数据层主要是数据库、消息队列等进行数据交互和持久化的工作。

各层的运行环境

进行了层次划分之后,一个需要进行的架构选择就是在哪里运行这部分工作,是在服务器上,还是在用户的机器上。
一个常见的误区是把表现层直接对应到前端应用,领域层直接对应到后端应用。实际上表现层的大量逻辑有可能是在你的服务器上渲染的。而随着桌面电脑或者手机的处理能力和交互需求的提升,很多领域层的业务逻辑反而是在客户端进行处理的。举个简单的例子就是各种表单填写时的字段校验,在过去是需要提交到后端进行的,现在则有很多是监听用户焦点离开当前输入框就进行了。
因此,在确定各层的运行环境的时候,核心是根据应用本身的特点,考虑不同的运行环境的优劣点安排。运行在客户的机器上,好处是响应性能和不依赖网络,缺点是如何把变更同步到各个客户的机器并且让它有效(想想不同浏览器的兼容性)。
比如数据层,你当然不希望每个用户有一个自己的数据库,然后你来做这些数据库之间的读写同步,所以它一般都是运行在服务器上的。但是你又希望用户有很好的响应和体验,所以各级的缓存里有不少是部署在客户端的。
再比如表现层,你希望给用户提供良好的响应速度和用户体验,所以可以在后端根据用户画像进行千人千面的数据组织来给不同用户组合不同的操作界面。同时你又希望对客户端有更好的控制力,所以会打造客户端的各种框架和组件。

架构的核心难点

进行了层次划分和运行环境的选择之后,架构的核心难点就在于如何抽象出:
标准的协议和运行机制;
满足标准的分布式执行单元;
去中心化或中心化的控制单元。
正是在这样的抽象过程中,业界提出了 SOA、微服务、服务网格等服务化到平台化的解决方案。而在三层里,如何对控制和处理复杂业务逻辑的领域层进行架构是关键中的关键,它既是公司业务生态的基础,也直接决定了业务探索的速度和业务创新的成本。
以上就是李昊对企业级应用架构难点的介绍,下文将以领域层为例,看看为什么需要业务平台,它又如何演化到业务中台,以便你进一步了解中台,欢迎持续关注。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
层次与架构
各层的运行环境
架构的核心难点
显示
设置
留言
收藏
54
沉浸
阅读
分享
手机端
快捷键
回顶部