第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的出现。