架构设计的概念
架构设计是指导系统实现的设计蓝图,它要在业务层面上描绘系统的整体结构和流程,也要在技术层面上完成布局和提出解决方案。具体工作譬如系统模块化设计、模块之间的交互方式、接口规范、流程规范、系统性能和安全维护等。
目标维度:可复用、高可用、高性能、可扩展、灵活性、易维护、安全性
从软件生命周期看职责
设计期(立项、计划、需求、设计)
● 系统拆分,微服务化,把系统拆解为不同的子系统、模块、业务单元;
● 技术选型,使用什么样的基础技术框架或脚手架;
● 技术难题,确定核心技术难点如何解决,检验能否满足期望指标;
● 接口规范,系统内部的不同部分之间以何种形式进行通信,确定接口契约和数据通信方式;
● 集成方式,系统与外部其他业务系统如何进行集成;
● 技术规范,如何规范开发、测试、部署和运维的技术标准性;
● 部署方案,系统如何进行物理部署,需要多少台机器、什么配置,对网络有什么要求;
● 运维方案,系统如何进行技术性运维,如何实现日常监控、预警报警;
实现期(开发、测试、上线、实施)
● 确保各项技术规范和技术指标的执行落地,保障高质量的代码;
● 指导研发人员和解决各类技术问题,提升研发团队效率;
● 制定测试的技术性方案和基准,包括自动化、性能、安全等方面;
● 配合准备部署环境,运维实施方案落地等;
维护期(修复、调整、改进、维护)
● 发布上线相关基础性工作,包括是否使用持续集成(CI)、自动化发布等技术;
● 运维基础性工作,自动化运维、监控等相关技术;