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