第1部分 什么是架构 硬: 语言,数据结构与算法,操作系统原理,某种框架或中间件原理与使用方式。 软: 软件建模,架构设计等。 显性问题: 高并发,高可用,数据一致性问题。 隐形问题: 可重用性,可扩展性,可维护性等。 什么是架构? 架构是针对所有重要问题作出的重要决策。不同公司或者同一家公司不同历史阶段面了的"重要问题"是不同的,所以架构所做的事情自然不同。 第1章 五花八门的架构师职业 1.1 架构师职业分类 1.2 架构的分类 1.第一层:基础架构 基础架构是指 云平台,操作系统,网络,存储,数据库和编译器等。随着目前云平台越来越普及,很多的中小公司都选择了大公司的云计算平台,而不是自己研发和 维护基础架构。 2.第二层:中间件与大数据平台 a) 中间件架构 例如 分布式服务中间件,消息中间件,数据库中间件,缓存中间件,监控系统,工作流引擎和规则引擎等。 b) 大数据架构 例如开源的 Hadoop 生态系统,Hive,Spark,Storm,Flink等。 3.第三层:业务系统架构 a) 通用软件系统 如最常用的办公软件,浏览器,播放器等。 b) 离线业务系统 如各种基于大数据的BI分析,数据挖掘,报表与可视化等。 c) 大型在线业务系统 如搜索,推荐,即时通信,电商,游戏,广告,企业ERP或CRM等。 关于架构的这种分类,说明2点: 1.对于中小公司,可能没有第二层,即使有也可能只有少数一部分。对于大公司,在第二层和第三层的处理策略上也不一样:有些公司会选择让业务团队同时做第二层的 工作,做在线业务的同时做了中间件的工作,做大数据业务的同时搭建和维护了大数据架构;有些公司会安排专门的团队做中间件与大数据平台。 2.对于第三层的划分,也不是很绝对。一个业务系统随着技术的进步,很多功能将被通用化,标准化,最终变成了一个通用系统。如搜索,以前是一个专业性很强的业务 系统,随着搜索技术的不断进步,现在搜索的很多功能已经被通用化了,如ES的出现。



