聊聊解决方案架构师的那些事儿

2021-11-29 14:57:12 浏览数 (1)

解决方案架构是组织中用于开发解决方案的基础构件。它有助于在复杂组织中创建成功的解决方案,在这类组织中,产品开发依赖于多个团队。为了开发出正确的应用程序,第一步应确定解决方案架构,解决方案架构为应用程序的实现奠定了基础并规划了稳健的基础构件。解决方案架构不仅要考虑业务需求,还要处理关键的非功能性需求,如可伸缩性、高可用性、可维护性、性能、安全性等。

解决方案架构师的职责是通过与各利益相关者合作来设计解决方案架构。他们既要分析功能性需求,还要定义非功能性需求,这样才能考虑到解决方案的方方面面,并规避风险。每个解决方案都有多种约束,如成本、预算、时间表、法规监管等,解决方案架构师在进行设计和技术选型的同时,还要考虑这些因素。

解决方案架构师需要进行概念验证和原型开发以评估各种技术平台,然后采取最佳策略来实施解决方案。他们会在整个解决方案开发过程中对团队进行指导,并提供上线后的指导方针,以维护和规模化最终产品。下面我们就来详细聊聊解决方案架构师的那些事儿。

什么是解决方案架构

如果你向周围的人询问他们对于解决方案架构的定义,可能会得到十几个不同的答案,而且这些答案可能都是正确的,因为每个人所处的组织结构不同。每个组织都会根据其业务需求、组织层次和解决方案的复杂程度,从不同的视角来看待解决方案架构。

简而言之,解决方案架构从战略和战术的视角,对业务解决方案的方方面面进行定义和展望。解决方案架构不仅仅是软件解决方案,它涵盖了系统的方方面面,包括但不限于系统基础设施、网络、安全、合规性要求、系统运维、成本和可靠性。下图展示了解决方案架构师可以解决的不同方面的问题。

 解决方案架构环形图

从上图可以看出,一位好的解决方案架构师可以解决组织中关于解决方案最常见的问题:

  • 全球分布式团队:在这个全球化的时代,几乎每个产品都会有分布在全球各地的用户,以及负责满足客户需求的利益相关者团队。通常,软件开发团队会采用在岸-离岸模式,该模式下团队跨时区工作,以提高工作效率并优化项目成本。解决方案设计需要考虑全球分布式团队结构。
  • 全球合规性要求:当在全球范围内部署解决方案时,每个国家和地区都有其法律和合规制度,这些都是解决方案需要遵守的。例如我国的网络安全等级保护制度(Multi-Level Protection Scheme,MLPS)3.0。
  • 成本和预算:解决方案架构能够很好地估计项目的总成本,这有助于确定预算。预算包括资本支出(CapEx),即前期成本,以及运维支出(OpEx),即持续成本。它有助于管理层为人力资源、基础设施资源以及其他与许可相关的成本制订整体预算。
  • 解决方案实施组件:解决方案架构预先提供了产品不同实施组件的高层次概述,这有助于计划执行过程。
  • 业务需求:解决方案架构考虑了所有的业务需求,包括功能性需求和非功能性需求。它确保业务需求是兼容的,因此可以将它们转化到技术实施阶段,并在利益相关者之间取得平衡。
  • IT基础设施需求:解决方案架构决定了项目执行需要的IT基础设施,包括用于计算、存储、网络等的基础设施。这有助于有效规划IT资源。
  • 技术选型:在解决方案设计过程中,解决方案架构师会进行概念验证和原型开发,考虑企业需求,然后推荐合适的实施技术和工具。解决方案架构的目标是进行内部自建或者向第三方采购工具,并定义整个组织的软件标准。
  • 终端用户需求:解决方案架构特别关注终端用户的需求,因为他们将是产品的实际消费者。这有助于发现因产品经理缺乏技术细节而无法捕获的隐藏需求。在实施和发布的过程中,解决方案架构师会提供标准文档和典型的语言结构,以确保所有的要求都已满足用户的需求。
  • 解决方案维护:解决方案架构不仅涉及解决方案的设计与实施,还需要负责上线后的活动,例如解决方案的可伸缩性、灾难恢复、卓越运维等。
  • 项目时间表:解决方案架构设计根据每个组件的复杂性布局其细节,通过提供资源估算和相关风险信息,进一步帮助确定项目里程碑和时间表。

行业标准和明确定义的解决方案架构可以在技术解决方案中解决所有业务需求,并确保交付预期的结果,以满足利益相关者对解决方案的质量、可用性、可维护性和可伸缩性的期望。

解决方案架构的初始设计可以在售前环节的早期进行构思,比如需求建议书(Request For Proposal,RFP)或信息请求(Request For Information,RFI),然后再创建原型或进行概念验证,以发现解决方案存在的任何风险。解决方案架构师还需要确定是构建解决方案还是采购解决方案。这有助于确定技术选型,同时也要牢记组织内关键的安全性和合规性要求。

创建解决方案架构的两种主要情况如下:

  • 第一种情况是,增强现有应用程序的技术,可能包括硬件更新或软件重构。
  • 第二种情况是,从头创建一个新的解决方案,这样可以更加灵活地选择最适合的技术来满足业务需求。

然而,在重构现有解决方案时,还需要考虑最小化影响范围,创建最适合当前环境的解决方案。如果现有解决方案不值得重构,解决方案架构师可以决定重建以提供更好的解决方案。

简而言之,解决方案架构就是要考虑系统的方方面面,勾画出技术愿景,从而提供实现业务需求的步骤。通过将所有与数据、基础设施、网络和软件应用程序相关的不同部分整合在一起解决方案架构可以为复杂环境中的一个或一组项目定义实施方案。一个好的解决方案架构不仅要满足功能性非功能性需求,还要能解决系统的可伸缩性和长期维护问题

上面我们熟悉了解决方案架构及其不同方面的内容。后面将探讨解决方案架构的发展历程。

解决方案架构的演进

解决方案架构随着技术的现代化而演进。今天,随着互联网的广泛应用、高带宽网络的出现、存储成本的降低,以及计算机的普及,解决方案架构设计与几十年前相比发生了天翻地覆的变化。

早在互联网时代之前,大多数解决方案设计都专注于提供胖桌面客户端,当系统无法连接到互联网时,它能够在低带宽的情况下运行并离线工作。

这项技术在近十年不断演进。面向服务的架构(Service-Oriented Architecture,SOA)开始形成分布式设计,应用程序开始从单体转向现代的N层架构,其中前端服务器、应用服务器和数据库都运行于独立的计算机和存储之上。这些SOA主要是通过一种基于XML的消息传递协议来实现的,这种协议称为简单对象访问协议(Simple Object Access Protocol,SOAP)。这主要是遵循客户端-服务器的模式来创建服务。

在这个数字化时代,基于微服务的解决方案设计越来越流行,它基于JavaScript对象符号(JavaScript Object Notation,JSON)的消息传递和表示层状态转移(Representational State Transfer,REST)服务。这些Web API不需要基于XML的SOAP来支持其接口,而是依赖于基于Web的HTTP,如POST、GET、UPDATE、DELETE等。

微服务架构解决了敏捷环境中不断变化的需求。在敏捷环境中,任何解决方案的变化都需要快速地适应和部署。组织必须敏捷才能在竞争中保持领先地位。这迫使解决方案架构必须更加灵活(与项目发布周期较长的瀑布模型相比)。

基于Web的微服务架构是由几乎无限的资源所推动的,这种资源可以从云供应商那里获得,并且可以在几分钟甚至几秒内进行扩展。由于解决方案架构师和开发人员即使失败也不会造成任何损失,因此创新、试验和变革变得越来越容易。

解决方案架构为何如此重要

最后我们来聊聊解决方案架构为何如此重要。解决方案架构是整体企业软件解决方案的基础构件,用于解决特定的问题和需求。随着项目规模的扩大,团队分布在全球各地。为了奠定长期的、可持续的坚实基础,需要有一个解决方案架构。

解决方案架构可以解决各种解决方案需求,保持业务上下文的完整性。它指定并记录了技术平台、应用程序组件、数据需求、资源需求以及许多重要的非功能性需求,如可伸缩性、可靠性、性能、吞吐量、可用性、安全性和可维护性。

解决方案架构对于任何行业及其解决方案都至关重要。在没有解决方案架构的情况下,软件开发很可能会面临失败,项目可能会延期、超出预算,并且不能提供足够的功能。通过创建解决方案架构并运用经验和知识可以极大地改善这种情况,而所有这一切都是由解决方案架构师来提供的。它有助于让所有领域的利益相关者达成共识(从非技术性的业务功能到技术开发),从而避免混乱,确保项目的进度和时间不脱离正轨,并有助于获得最大的投资回报率(Return On Investment,ROI)。

通常,解决方案架构师需要与客户合作才能更好地理解需求规格。在解决方案架构师的角色中,架构师需要具备从技术负责人及专家到业务分析师和项目经理等角色的多种技能。

好的解决方案架构会将需求规格落实到定义明确的解决方案中,这有助于交付并完成最终产品,并在产品上线后实现顺畅的可维护性。一个问题可以有多种解决方案,每个解决方案都有其约束。解决方案架构考虑所有的解决方案,并通过创建能够适应所有业务和技术限制的概念验证,来寻求最佳方案。

0 人点赞