1、确认需求与拆分系统
在项目开发过程中,架构师需要依据用户需求,将完整的系统拆分为子系统和组件,形成不同的逻辑层或服务,确定各层的接口、层与层相互之间的关系,对整个系统分层进行“纵向”分解,对同一逻辑层分块进行“横向”分解。
2、技术选型
通过对系统的一系列的分解,最终形成了软件的整体架构,依据整体架构需要进行技术选型。
例如:天猫这样的大型分布式网站,需要从前端(CDN、负载均衡),再到中间应用层端的缓存集群、消息集群、文件存储集群等的选型,再到后端数据库(NoSQL、MySQL、Oracle等)的选型,你需要很清楚每一种技术的优劣势和应用场景,以及未来面临的挑战和风险。然后从业务的角度(预估访问量和业务变化),结合起来进行选型。
3、系统分解
系统分解类似实际项目中的概要设计、详细设计,业务逻辑划分、子系统与主系统的关联、数据库的设计,再到应用端业务流程等,从技术的角度完整的拆解业务,把控好技术的细节。
4、制作技术规格说明
在整个研发过程中始终保持与开发人员保持沟通,以保证开发者依照原定的架构意图去实现各项功能。