美文网首页
有关架构在软件研发过程中的思考

有关架构在软件研发过程中的思考

作者: 梦想又照进现实 | 来源:发表于2020-04-10 12:13 被阅读0次

什么是架构

架构概念很大,根据软件研发的一般生命周期来看,主要有业务架构、应用架构、技术架构、部署架构,架构人员需要全程主导这个过程,完成系统的总体架构落地,具体来看各个阶段的架构工作侧重点有所差异,同时相互联系。

业务架构:

来源于业务需求,涉及需求治理,其与项目管理密不可分,主要管理模式有传统瀑布式(需求文档驱动)、精益敏捷式(专题故事驱动),需求分析最终产出业务架构,架构人员参与该过程,对接业务人员对需求进行分门别类,整理清楚各个业务范围的关联关系,做到引导和满足业务人员合理诉求,同时以架构人员的经验设计扩展性预留,具体操作上可以使用DDD(领域驱动)方法论进行操作,该阶段架构人员的产出相关的业务架构图,颗粒度上达到业务模块比较合适。
本阶段的难点在于业务诉求中的不合理、不清楚以及业务人员没想到的业务点,作为架构人员需要引导、识别及补充,最终帮助业务人员实现业务价值的书面化体现、系统化的转化以及业务实施规划的落地,甚至需要能满足业务人员的汇报诉求。

应用架构:

根据业务架构设计,结合现有的基础设施、中间件、存储方案及数据流向,设计出应用的多层架构图,这部分是最重要,也是最复杂的,对于每个层,在复杂场景下,各个层内部还需要再进行架构设计,比如存储层是否需要做读写分离,是否需要做多级存储,接入层是否需要做限流、安全设计,前端展示层是否需要做缓存、CDN加速等等。
应用架构设计还需要识别出本系统相关交互外系统的接口、交互方式、数据规范等问题并进行设计解决。
本阶段的难点在于对业务架构的理解程度及对业务发展的预判,需要有业务行业经验及技术实战经验,同时对公司现有运维保障能力、技术中间件的成熟程度有充分的把握。

技术架构:

相比应用架构,技术架构的侧重点在于解决应用层相关设计的技术实现问题,需要分两个层面来看,第一整体的技术栈,比如做服务化是在用SpringCloud全家桶还是用Dubbo,用SpringCloud使用Spring cloud Alibaba 还是 Spring cloud Netflix,这个根据团队的技术栈进行匹配,架构师需要主导这个部分的架构选型,过程可以进行评审,综合各方面的实际情况,推荐阿里李运华的《从零开始学架构》书中分享的案例操作方式,选出风险小的、能满足现阶段的方案进行演进。第二方面,对于局部性的技术架构,比如需要做多级缓存又不想做的太复杂,自研组件方式的,需要专门来做技术方案,可以有架构师或者高级技术人员来设计及实现,这部分可以可能有比较多的,需要对影响比较大进行技术架构阶段评审去确定,对于功能级别的设计可以放到项目实施过程中详细设计阶段进行。
本阶段的难点是架构人员技术广度和深度,对技术方案表达能力、演讲能力,以及高级技术人员的方案的指导评审能力。

部署架构:

部署架构需要解决系统在目前网络环境下的高可用部署,主要需要考虑容灾能力、动态扩容能力、安全管控能力以及运维部门的保障能力。
本阶段的难点是了解清楚公司目前的资源能力及保障能力,做出可实施的预案,有条件的可以进行演练,提高操作熟练度。

以上的架构阶段是软件产品的一般研发流程需要有的,各个阶段的架构设计相互影响,需要通盘考虑,各个阶段的工作也需要相关方的参与评审,需要注重架构人员的沟通协调能力,同时向领导层获取资源的能力。

相关文章

  • 有关架构在软件研发过程中的思考

    什么是架构 架构概念很大,根据软件研发的一般生命周期来看,主要有业务架构、应用架构、技术架构、部署架构,架构人员需...

  • 架构设计04--设计原则02--快速失败

    架构设计系列文章,请参见连接。 背景 软件研发过程中一个根本性的问题:为什么要做软件(架构)设计?在软件开发过程中...

  • 二、软件研发的模型

    1.软件研发模型 在软件生产过程中,经过多年实践总结,沉淀出目前几种流行的软件研发模型。软件研发模型(softwa...

  • 软件研发模型

    在软件生产过程中,经过多年实践总结,沉淀出目前几种流行的软件研发模型。软件研发模型(software ...

  • 「整洁架构」实战 MVC 架构重构到整洁架构

    软件架构介绍 什么是软件架构 我们先来看看维基百科对 软件架构 的定义, 软件架构是有关软件整体结构与组件的抽象描...

  • 学习总结0606

    一、软件架构的概念 软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 软件架构整体...

  • 第22章 提高团队效率

    除了创建技术架构和做出架构决策外,软件架构师还负责在架构的实现过程中指导开发团队。优秀的软件架构师能够创建高效的开...

  • 什么是安全架构?

    1. 前言 2. 架构基础 2.1 职业相关 基础的软件工程知识, 例如敏捷开发, 软件研发流程等等; 基础的架构...

  • 软件架构、开发框架和设计模式三者的关系

    概念 软件架构:架构又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。不仅显示...

  • 架构之重构的 12 条军规

    对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地 App 的互联网时代,架...

网友评论

      本文标题:有关架构在软件研发过程中的思考

      本文链接:https://www.haomeiwen.com/subject/fieephtx.html