自20世纪30年代现代计算机诞生至今,服务端软件技术(本文简称服务端技术)已经发展成为IT领域一大重要分支。大到操作系统,小到仅一行代码的工具,数以亿计的服务端软件运行在无数服务器和各类硬件设备上,支撑着现代人类文明的运转。
为使一个服务端软件从开发到最终交付运行,技术人员除了要实现业务相关的功能外,还要解决一些业务无关的问题,比如性能、效率、质量等。进一步说,所有业务无关问题又都能归类到少数几个问题上,本文称之为“业务无关元问题”,简称元问题
。举个例子,我们经常遇到的一个业务无关问题是开发成本过高,而成本过高的原因往往是开发效率低下,因此成本并非元问题,而是结果或指标,开发效率才是元问题。事实上,业内对元问题的划分和定义由来已久,参与者众多,包括权威机构(比如ISO/IEC 9126、25010软件质量模型标准)、各企业以及个人,但目前并未形成统一的事实标准。
本文还有一个演绎版本《服务端技术全栈之九大门派》,欢迎阅读。
本文通过对业内主流思路的借鉴,提出一个独特的元问题模型,将现代服务端技术描述成是一棵由9大元问题领域组成的技术树。经过多年发展,每个元问题领域都已沉淀大量成熟软件或技术理论,在日常研发和技术选型前,技术人员应该先弄清楚自己要解决的元问题是什么,再利用或借鉴该元问题领域下的已有软件或技术理论去做研发。
- 开发效率
- 资源管理能力
- 云计算之SaaS
- 云计算之PaaS
- 云计算之IaaS
- Serverless无服务技术(FaaS)
- 虚拟化&容器化&编排&弹性裸金属
- 大数据之批计算
- 大数据之流计算
- 大数据之流批混合
- 大数据之资源管理
- 资源治理
- DevOps与CICD
- 可用性
- 应用层可用性
- 数据层可用性
- 伸缩性
- 伸缩性总概
- 接入层负载均衡
- 应用层负载均衡
- 性能
- 高性能模型
- 异步架构与消息队列
- 缓存
- 垃圾回收
- 边缘计算
- 硬件使用优化
- 性能测试
- 安全
- 区块链
- 分布式事务
- 零信任架构
- 安全算法&语言
- 监测&演练&应急
- 质量
- 全阶段测试
- 白盒、黑盒、灰盒测试
- 静态测试和动态测试
- 测试驱动开发
- 数据
- 概览
- 底层/文件存储:RAID、HDFS、NAS、块存储、对象存储
- 数据库之关系型数据库
- 数据库之NoSQL
- 数据库之NewSQL
- 架构设计&权衡:原则(CAP/BASE)、共识算法(Paxos|Raft|Gossip|PBFT|POW)
- 数据的扩展性设计
- 数据接入&预处理
- 数据应用&分析:OLTP、OLAP、HTAP
- 智能
上文提过,元问题指的是业务无关的元问题。一旦我们把目光放到某个特定领域里,就会发现九大元问题仍然覆盖了系统大部分方面,而与此同时,也会有不少业务相关的问题需要另外归类和解决。