系统架构之感想
时下软件界,架构界吹起了微服务之风,软件从传统的CS到BS,从单体到多服务器,再到现在的微服务;很多伙伴们也跟着技术潮流越来越多的在关注和学些或使用微服务解决项目中遇到的很多问题。本人也在软件行业20来年了,所谓活到老学到老,从软件开发,到软件设计,到软件架构,种种心路历历在目。不过现在我要说的并不是我自己的从业经历,而是我最近在架构方面的学习和领悟所感分享给大家。 架构定义: 软件架构是一个用于指导系统实现的草图,草图包括架构图和设计文档,草图越详细对系统实现的指导意义就越重要,且贯穿于软件的整个生命周期。 软件生命周期中架构设计的体现: 设计期:架构设计是重中之重。需求导向,架构先行。具体工作包括:系统拆分,技术选型,技术验证,接口规范,集成方式,技术规范,部署方案,运维方案等等。 实现期:确保各项技术规范和技术指标的执行落地,保障高质量的代码;指导研发任意和解决各类技术问题,提高研发团队效率;制定测试的技术性方案,包括自动化、性能、安全等方面;配合准备部署环境,运维实施方案落地。 运行期:发布上线相关基础工作,包括是否使用持续集成,自动化发布等技术;运维基础性工作,自动化运维、监控等相关技术。 架构的目标和方法: 目标:可控性与拆分;复用性与抽象;非功能性需求九维目标:高性能,可靠性,稳定性,可用性,安全性,灵活性,易用性,可扩展性,可维护性。 方法:4+1视图模型