《系统架构:复杂系统的产品设计与开发》——第1章,第1.2节良好架构的优势

简介:

本节书摘来自华章出版社《系统架构:复杂系统的产品设计与开发》一书中的第1章,第1.2节良好架构的优势,作者[美]布鲁斯·卡梅隆,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2良好架构的优势
这些复杂的系统能否满足利益相关者的需求并体现出价值?它们是否能够轻松地整合、灵活地进化?它们操作起来是不是很简单,运作得是不是很可靠?架构良好的系统确实是如此。


9f0dc962ed48eb34312d779a9b2881fe3979feac

用最简单的方式来说,架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。在由人类所构建的系统中,架构可以表述为一系列的决策。
本书基于这样一个前提:如果我们能够找出使系统架构得以确立的决策点,并谨慎地做出决策,那么系统更有可能取得成功。本书想要把与早期的系统决策有关的经验与分析方式总结出来,并指出这些决策之间的共性。在过去30年间,分析与计算能力的提升使得我们拥有更多的选项以及更加广阔的权衡空间(trade space)。在很多领域,权衡空间的增长速度已经超越了我们理解它的速度。系统架构领域的发展,得益于一些从业者的努力,他们试着把在过去的设计工作中所得到的专业经验总结起来,并加以推广,使我们可以借此来解决以后可能出现的设计问题。
产品和系统所处的竞争环境是残酷的。波音公司(Boeing)对787客机及其复合材料的研发,就是一项“以公司的前途作为赌注”的行动。波音是全球两个大型客机制造商之一,它的核心业务模式,并不是把风险分散到许多小的项目中,而是把成功的希望寄托在一件产品上。与客机市场相比,移动设备的市场要更大一些,而且目前的竞争还是比较激烈的。尽管移动产品的研发风险显得更加分散(也就是说,某一件产品的研发投入额,在公司的总资金中所占的比例更小),但依然有黑莓(BlackBerry)及爱立信(Ericsson)这样的巨头在竞争中衰落。为了占领市场份额,系统必须要能够提供创新的产品、融合新鲜的技术,并满足多样的市场需求。为了在紧张的市场竞争中占得优势,设计系统时要优化它的生产成本,而且要通过多层次的供应链来进行生产。良好的架构决策可以使公司在艰难的市场环境中取得竞争优势,而不良的架构决策则会使大型的研发活动从刚一开始就变得难以推行。
由人类构建的每个系统,都有其架构。手机软件、汽车、半导体生产设备等产品,都是由早期研发环节中的几个关键决策所确定的。比如,在汽车的研发工作中,像发动机的安装方式等早期技术决策,会影响后续的很多其他决策。如果选择将发动机横置,那么发动机的模组设计、变速箱、传动系统、悬架系统及乘客舱都要受影响。系统的架构在很大程度上影响着产品的结构。
在设计复杂系统时,有许多早期的架构决策都是在不了解系统最终样貌的情况下做出的。这些早期决策对最终的设计有重大的影响。它们限定了性能的范围及可供考虑的生产地点,也决定了供应商是否能够分得配件市场(aftermarket)的收入份额。有时需要收集下游的信息以供上游使用,例如John Deere的农作物喷洒车,其宽度就必须小于生产基地两个柱子之间的距离。在这种情况下,开发团队能够明确地知道宽度的限制,因为它并不是一个未确定的或隐藏的因素,然而在农作物喷洒车的产能方程中,宽度却是一个主要的变量,因此,开发团队还是需要收集此信息。
本书的核心观点是认为这些早期决策可以加以分析和处理。尽管充满着不确定的因素,有时甚至不知道各个组件的详细设计情况,但是我们所做的系统架构依然要能经得起检验。架构系统的过程是柔性的,它是科学与艺术的结合。我们并不指望此过程能够成为或应该成为可以产生最优方案的线性过程,而是想在本书中把我们在系统架构工作中的一些核心理念及做法总结出来。我们的核心观点是:结构良好的创造活动要优于毫无结构的创造活动。
对决策的关注,使得系统架构师可以直接权衡每个决策的各种选项,而不用深入它们所对应的底层设计,这能够促使我们去评估更多的概念。同时,这套决策语言也使得系统架构师可以根据每个决策对系统效能的影响力来调整决策之间的顺序,很少有哪个系统的架构是一次就定好的,它们一般都是在逐步评估一系列决策之后才定出来的。
美国国家极轨环境卫星系统(National Polar-Orbiting Environmental Satellite System,NPOESS)的失败,就是架构决策妨碍系统发展的例子。NPOESS项目创立于1994年,旨在把原有的两个气象卫星项目合并起来,一个是民用的天气预报项目,另一个是军用的天气与云量图像项目。这次合并不是完全没有道理的,因为原有那两套相关数据的收集系统,展现出了13亿美元的合并机会[9]。合并之后的项目,在早期阶段就决定把原先那两个项目的设备所具有的能力都涵盖进来。比如,要把原有的三台设备所具有的功能,都集成到可见红外光影像辐射仪(Visible Infrared Image Radiometer Suite,VIIRS)中。
这项合并计划有一个假设,认为新项目的功能复杂度与原有那两个项目的复杂度之和呈线性比例。假如这个项目的需求和概念是从原先那些设备中得出的,那么这个假设或许能够成立。然而接下来还有一项决策,却令系统的架构完全无法发挥其效能,这项决策列出了一些脱离系统概念的新功能。比如,它要把原有的三台设备所应完成的任务,全都交给VIIRS这一台设备来完成,可是VIIRS的重量和体积,比原先那三台设备中的任何一台都小。
早期的一系列架构决策,导致NPOESS项目进展得漫长而艰辛,这些决策想要创建的那些详细设计方案,忽视了系统中的一些基本问题。而且,由于项目早期并没有指定一位架构师来负责对这些决策进行权衡,因此后面会遇到种种障碍。该项目于2010年取消,原来估计耗资65亿美元,实际上花了85亿美元。
本书并不会给出一套开发产品所用的公式,也不打算编成一本产品开发手册。我们不能保证按照本书的做法一定可以成功。经验告诉我们:错误的架构可能会毁掉整个项目,而“正确的”架构仅仅是创建了一个产品开发平台,产品可以依赖这个平台而取得成功,但也依然有可能失败。
本书的内容在许多方面是可以适用于各种系统的,这些系统有的是由人类构建的,还有的是经过社会发展或自然进化而形成的。无论是构建出来的系统,还是演化而成的系统,我们都可以分析它的架构。比如,研究脑部的学者,想要展开脑部的架构;城市的规划者,要处理城市的架构;政治学者与社会学者要理解政府及社会的架构,等等。本书所关注的系统,主要是由人类所构建的系统。

相关文章
|
1月前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
172 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
14天前
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
57 10
|
16天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
73 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
|
14天前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
1月前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】Kernel 层架构
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
97 32
|
1月前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
64 4
【AI系统】计算图优化架构
|
1月前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
|
1月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
105 3
|
1月前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
67 0