还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件体系结构构建复杂系统的蓝图欢来软结课们将讨计杂软迎到《件体系构》程,我深入探如何设和构建复件蓝图软现软础质系统的件架构是代件工程的核心基,它决定了系统的量、扩可展性和长期成功课将带领软践本程大家了解件架构的基本概念、常见模式、实方法,以及如应对当杂开战们将讨师何今复系统发中的各种挑我探架构的角色、架构决权过策的衡,并通丰富的案例分析帮助大家掌握实用技能论还验开这课将计无你是初学者是有经的发者,门程都帮助你提升系统设能为软坚础力,构建可靠、高效的件系统打下实基什么是软件体系结构?定义历史发展软结关软结软纪件体系构是于件系统的构件架构的概念始于20世70年代,为层软规扩渐和行的高次抽象,它定义了系统随着件模的大而逐发展从组们结编对计的成部分以及它之间的交互方早期的构化程到面向象设,为蓝图为当式它可以被视系统的,再到今的微服务和云原生架构,体开队导结论断发团提供了清晰的指系构理不丰富与设计的区别关结层计关现细节架构注整体构和高次决策,而设更注具体实架构定义做什么为计则师虑级约质和什么做,而设聚焦于如何做架构考系统束和量属计师负责满这约性,设足些束软结为开队语件体系构的重要性在于,它发团提供了共同的言和理解框架,帮助管理杂满关键质显开复性,并确保系统能够足的量需求一个好的架构可以著提高发效率产质和品量软件体系结构的作用规范大型系统开发开队协架构提供了一个框架,使大型发团能够同工作它定义了清晰的边界队开组和接口,使不同团可以并行发不同件,而不会互相干扰降低复杂度过将为层开员杂通系统分解可管理的模块和次,架构帮助发人理解和处理复创层开专系统它建了抽象,使发者可以注于特定部分而不必了解整个系统提供沟通工具细节的所有图档队员关们架构和文是团成和利益相者之间沟通的强大工具它帮助非技术员结讨论人理解系统的功能和构,使和决策更加高效软还预来为应础术债积续进优秀的件架构能见未需求变化,系统提供足够的灵活性以适业务发展它是长期成功的基,可以防止技务累,确保系统可以持演而不是陷入僵局复杂系统的挑战规模与协作现数数开员们协调连贯队术难代系统通常涉及十或百名发人,他需要工作以构建一个的系统不同团可能使用不同技和方法,增加了集成度维护与扩展续应断没计来难扩大型系统经常需要持运行多年,在此期间要适不变化的需求有良好架构设的系统会变得越越以修改和展成本与质量质项续战场压导仓在快速交付和高量之间取得平衡是一持挑市力可能致架构决策促做出,忽视长期影响术带来战师术创维稳时数迟络区杂技快速变化也了挑,架构需要平衡采用新技的新与持系统定性的保守同,跨地域分布式系统增加了据一致性、延和网分等复因这层素,些都需要在架构面解决软件架构师的角色关键职责所需技能师负责结师术架构定义系统的整体成功的架构需要丰富的技关键术识构,做出技决策,并确知,良好的沟通能力,以及这战维们须保些决策得到正确实施他略思他必既理解业们质术现需要平衡各种量属性需务需求,又掌握技实,并术为队求,解决技冲突,并团能在两者之间建立桥梁术领导提供技行业现状杂师来认识随着系统复性增加,架构的需求正在上升企业越越到优秀师为许组关键别计架构的价值,架构已成多大型织中的角色,特是在云算和微服务架构的兴起背景下师术关们术专架构通常需要在技能力和人际系方面找到平衡他既是技家,也是队导师顾问环师传团和业务在敏捷境中,架构角色正在演变,从统的象牙塔规转为协队员划者变更加作的团成体系结构的基本要素配置Configuration组连组系统件和接件的织方式连接件Connector组件间交互和通信的媒介组件Component单封装特定功能的模块元这软组单们过连进则组三个基本要素构成了件架构的核心框架件代表系统的功能元,它通接件行互相通信,而配置描述了整个系统中件连组和接件的具体织方式这关软计关键应当这们协满理解些基本要素及其相互系,是掌握件架构设的一个优秀的架构明确定义些要素,并确保它之间的作能有效足系统的功能和非功能需求组件()Component功能模块划分责任分配典型示例组职责单过计组时师组组件是具有明确的功能元,通在设件,架构需要明确每个•用户界面件(处理用户交互)隐内现细节们职责围逻辑组现规则封装和抽象藏其部实它件的范,确保系统功能被合理分•业务件(实核心业务)应当职责遗责数访问组数储检具有明确的边界,提供定义良好的配,避免重叠或漏任分配通关频队结•据件(管理据存与接口,使系统能够模块化构建常基于功能相性、变更率和团索)组计应内构等因素组络优秀的件设遵循高聚、低耦合•通信件(处理网通信)则组专领责开组现认证权原,使每个件注于特定功能合理的任分配有助于提高发效率,•安全件(实与授)时组赖关简维时为队协域,同最小化与其他件的依化护工作,同团作提供清系晰的界限连接件()Connector应用程序接口消息队列API组标过传现定义件间交互的准接口,包括方法通异步消息递实松耦合通信,适签数名、参和返回值合分布式系统共享数据结构远程过程调用RPC过数库内数现许组调组通据或存中的共享据实间允一个件用另一个件上的函数隐接通信,藏分布式特性连选择对扩连简单颈连扩接件的系统性能、可靠性和可展性有重大影响同步接件直接但可能造成性能瓶,而异步接件提供更好的展杂计连时虑频数迟错误性但增加了复性设接件需要考通信率、据量大小、延要求和处理等因素配置()Configuration组件与连接件的组合方式组连组们逻辑配置定义了系统中件和接件如何合,描述了它的物理或排结组数连列它决定了系统的整体拓扑构,包括件的物理分布、实例量和接方式编排原则计应关层则结配置设基于注点分离、次化和模块化等原良好的配置构使维独扩系统易于理解和护,能够支持立部署和展各个部分演化方式扩调现来倾随着需求变化和系统展,配置需要能够灵活整代系统越越向态过现负载编术现时于使用动配置,通服务发、均衡和容器排等技实运行配置变更档过图进队结配置信息通常在架构文中通表和描述行表达,帮助团理解系统的整体构在杂专来大型分布式系统中,配置管理是一个复的任务,需要门的工具和流程确保一致性和可追溯性架构视图()View图图关关鲁图架构视是从不同角度描述系统架构的方法,每种视注特定方面的注点菲利普•克奇滕提出的4+1视模型是一种广泛使用的框架,包括逻辑图关进图关图关开图关软组场视(注功能需求)、程视(注并发和同步)、物理视(注部署与硬件)、发视(注件模块织)以及图连图图关景视(接其他视)不同视服务于不同利益相者的需求,从而提供系统的全面理解架构描述语言()ADL定义与作用常用举例ADL语语软专组协议架构描述言是一种正式言,用于描述件或系统架构它提•Wright注于件交互和描述来关供了一种明确、无歧义的方式表达架构元素及其系,支持架•Acme提供通用的架构表示框架评扩构分析、估和演化•xADL基于XML的可展ADL组连语语ADL通常包含用于描述件、接件、接口和配置的法和•Darwin支持分布式系统架构描述还验证码虽专义,有些提供工具支持,用于、模拟和代生成•UML非门的ADL,但常用于架构描述项应虽术图在实际目中,ADL的用程度各不相同然形式化ADL在学界得到广泛研究,但在工业界,非正式表示(如UML和文本描为选择应虑项规队述)更常见合适的ADL考目模、团熟悉度和工具支持等因素架构文档与沟通文档结构建议开发团队协作档应档队识有效的架构文包括概述、利架构文是团共享知的基关关础仅档益相者注点、架构决策及理,但有文是不够的定期图组详举讨创识由、各视描述、件情、接行架构研会,建架构知规质库这口范和量属性分析等部分,使用可视化工具,些措施档应当简图辅队对文洁明了,使用表都有助于提高团架构的理解说杂助明复概念和遵从利害相关者沟通关关员时应调不同利益相者注不同方面的架构信息与业务人沟通强商业价开员则关术细节现导维队值和功能特性,与发人沟通需注技和实指,与运团时讨论监交流要重点部署和控方面师仅图还积馈优秀的架构沟通是双向的,架构不要清晰表达架构意,要极听取反以进续评审议计讨论论改架构建立持的沟通机制,如架构会和设坛,有助于保持架关构的生命力和相性典型软件架构阶段架构分析关键质识别约术收集并分析需求,确定量属性,束条件,了解业务和技环这阶标问题境个段的目是全面理解域和解决方案的边界条件档质场约标成果包括需求文、量属性景、束列表和初步架构目架构设计创满选择当建足需求的架构解决方案,包括适的架构风格,定义系统结计组关键术分解构,设件和接口,制定技策略图规术选验证结成果包括架构视、接口范、技型决策和原型果架构实现与评估导开队计现时续评指发团按照架构设实系统,同持估架构的有效馈调质性根据反整架构,确保系统量和架构完整性评报进议终档成果包括架构估告、改建和最架构文常见架构风格概述单体架构分层架构应层组层赖层所有功能在一个用程序中功能按次织,上依下应简单开结职责适合小型用,易发构清晰,分明微服务架构事件驱动架构为独组过系统分解多个立服务件通事件异步通信独术杂支持立部署和技多样性高度解耦,适合复交互选择应规队质没组来杂问架构风格基于系统模、团能力、业务需求和量属性要求有普适的最佳风格,通常需要合多种风格解决复题术断进传单应现软开环架构风格随着技发展不演,从统的体用到代的云原生架构,反映了件发方法和境的变化分层架构()Layered Architecture表示层处理用户界面和交互业务逻辑层现规则实核心业务和流程数据访问层数储检管理据存和索层将关为层层为层赖层这分架构是最常见的架构风格之一,它系统按功能注点划分水平次,每上提供服务,并可能依下服务种架构的主结关层开测试对独进要优点是构清晰,注点分离,使不同次的发和可以相立行层过层导开销别当请层时严层赖然而,分架构也有其局限性多的次可能致性能,特是求需要穿越多格的次依可能造成不必要的耦合,践层许层调限制系统灵活性在实中,常见的变体包括松散分,允越用以提高效率客户端服务器架构()-Client-Server基本模型变体与应用将为组请杂逻辑轻负客户端-服务器架构系统分两类主要件服务求者(客•胖客户端复在客户端,减服务器担过络逻辑仅显户端)和服务提供者(服务器)客户端通网向服务器发送•瘦客户端主要在服务器,客户端处理示请请应层层逻辑求,服务器处理求并返回响•多C/S增加中间处理业务这职责专应浏览为种架构形成了明确的分离客户端注于用户交互和界面•Web用器作通用客户端现负责逻辑执数请应呈,服务器业务行和据管理通信通常基于求•移动用手机App与后端服务交互应标协议-响模式,使用准如HTTP势职责扩独扩资客户端-服务器架构的主要优在于清晰、可展性好(可立展客户端或服务器)和源集中管理其限制包括服务器可能成为单络赖规扩战点故障、网依性强以及在大模用户情况下的展挑管道过滤器架构()-Pipe-and-Filter数据源数生成初始据流过滤器1执转换筛选行或过滤器2进数一步处理据数据接收器终结处理最果过滤将骤计为独过滤组过连数过滤管道-器架构处理步设立的器件,通管道接形成据处理流每个器接收输执产传给过滤这别数编译入,行特定处理,然后生输出递下一个器种模式特适合于据处理、系统和文本处理领等域该势组换简测试架构的主要优包括件高度解耦、易于重用和替、支持并行处理、化理解和然而它也存在局数转换开销应对数时限,如可能引入据、不适合交互式用、在处理象据可能效率低下事件驱动架构()EDA事件生产者事件中间件事件消费者产创关谁为传层负责费订阅应们生者建并发布事件,但不心会处事件中间件作输,高效地分发消者并响特定类型的事件它这们负责满关费现过独来当理些事件它只在特定条件足事件到相消者它可以实事件立工作,不需要了解事件的源收时继续滤转换传时费执应逻辑准确地发出事件通知,然后自己的、和路由,确保事件能够可靠地到事件,消者行相的业务,时负载工作流程递,同处理均衡和故障恢复可能会触发其他事件驱势组扩应别时应场事件动架构的核心优在于件间的高度解耦,使系统更容易展和适变化它特适合需要实响和处理异步工作流的监应这杂导难调试景,如控系统、交易平台和物联网用然而,种架构也增加了系统的复性,可能致以和追踪事件流微内核架构()Microkernel面向服务架构()SOA服务抽象与组合互操作性企业系统构建将为调过标协议别环许SOA业务功能封装松散耦合的服SOA强通准化(如SOAP、SOA特适合大型企业境,它允标约现遗过层务,每个服务遵循准化契,可以REST)和格式(如XML、JSON)实逐步代化留系统,通服务统独开维杂现语访问被立发、部署和护复业务跨平台、跨言的服务互操作性一接口多种后端系统,并支持业过编来现线调应场流程通排多个基本服务实,企业服务总(ESB)等中间件提供务流程的快速整以响市变化,码转换组提高了代重用性和业务灵活性、路由和集成能力,使异构系统从而提高织敏捷性缝协能够无作尽历则计时现践轻级对级赖时管SOA概念已有多年史,但其核心原在云算和微服务代仍然有效代SOA实更加量,减少了重量中间件的依,同许调协调更注重API管理和服务治理SOA与微服务共享多理念,但通常SOA服务粒度更粗,更强中央微服务架构()Microservices单特性微服务架构体架构单独应部署元立服务整体用术栈技可以异构通常统一扩独扩扩展方式按服务立展整体展队组队术队团织按服务/功能垂直团按技水平团故障影响局部影响可能全局影响开队队协调杂发速度小团快速迭代大团复将应为组专单数微服务架构用拆分一小型、自治的服务,每个服务注于一业务能力,拥有自己的储过轻级协议进这调独据存,并通量(如HTTP/REST)行通信种架构模式强服务的立性,使队负责开维每个服务可以由小型团完全,从发到部署和运战杂数维监调微服务的主要挑包括分布式系统复性、服务间通信可靠性、据一致性护,以及控和试难链频度增加成功实施微服务通常需要成熟的DevOps文化和自动化工具支持,以处理更繁杂维的部署和更复的运需求云原生架构容器与编排应为环资编扩维简云原生用通常打包容器,提供一致的运行境和高效的源利用Kubernetes等容器排平台自动管理容器的部署、展和运,化了分布式系统管理弹性伸缩计为应负载态资这弹过监扩现应云原生架构设自动响变化,能够动增减源以保持性能和成本平衡种性通控系统和自动展策略实,使用能够高效处理流量波动动态服务发现环时创销断现许态册现编码络在云境中,服务实例可能随建或毁,IP地址不变化服务发机制允服务动注和发彼此,无需硬网位置,增强了系统灵活性还调础础码践计术环应云原生架构强声明式API、不可变基设施和基设施即代等实,使系统更加自治和自愈微服务、无服务器算、服务网格等技在云原生境中广泛用,共同构成现应术栈创资简维代云用的技采用云原生架构可以加速新,提高源利用率,并化运工作架构风格的比较12ms单体架构响应时间开销简单应低通信,适合用42ms微服务架构响应时间络调迟网用增加延85%事件驱动可扩展性评分异步处理提升并发能力65%分层架构可维护性评分结层构清晰但变更影响多选择综虑没规队质级终架构风格需要合考多种因素,有放之四海而皆准的最佳方案系统模、团能力、业务需求和量属性优先都会影响最决策在践内层将驱应实中,混合多种架构风格是常见做法,例如在微服务部采用分架构,或者事件动模式用于微服务通信进调许单规扩这进随着系统演,架构风格也可能随之整多成功系统都是从体架构起步,随着模大逐步迁移到更分布式的架构种演式方法可以平开维衡初期快速发和长期可护性的需求架构设计流程总览需求分析架构建模质识别关键约创结图组收集功能和量需求,束和建反映系统构的架构视,定义关利益相者期望件、接口和交互方式迭代完善方案评估馈调计现问验证满评根据反整架构设,解决发的架构方案是否足需求,估潜在题续虑,持优化风险,考替代方案计线过计队阶来对问题架构设不是性程,而是迭代式的设团通常会在不同段之间回移动,随着和解决方案的理解加深而精炼架构续选择应尽应早期决策会影响后,因此重要的架构决策早做出,但也要保留一定的灵活性以适变化架构需求分析功能性需求非功能性需求应该为这应该功能性需求描述系统做什么,定义了系统的行和功能非功能性需求描述系统如何工作,包括性能、可靠性、安全规则数逻辑维质这驱包括用户操作、业务、据处理等方面性、可护性等量属性些需求通常是架构决策的主要动责力从架构角度看,功能需求影响系统分解和任分配,但通常不是驱过应时资架构决策的主要动因素功能通常可以通多种架构方式实•性能响间、吞吐量、源利用率现关键选择错误数,是最适合整体需求的方式•可靠性故障恢复、处理、据一致性认证权数•安全性、授、据保护扩•可展性处理增长的能力访问时•可用性系统可的间比例阶应别关质场识别级质场应测关师需求分析段特注量属性景的和优先排序良好的量属性景具体、可量且与业务相架构需要与利益关记录关键约相者密切合作,确保正确理解并需求和束条件架构建模方法过图来结过语语图来架构建模是通可视化表示法和表描述系统构的程统一建模言UML是最广泛使用的建模言之一,提供了多种表类型图组图结图图图静态结关表达不同架构视件展示系统的模块化构,部署描述物理部署情况,序列表示交互流程,类表示构系过应层开细细节这顶队有效的建模程从高概述始,逐步化到具体种自向下的方法确保团首先理解系统的整体架构,然后再深入到各个部简图创维队协分建模工具如Enterprise Architect、Visual Paradigm和Lucidchart可以化表建和护,支持版本控制和团作识别系统组件领域分析领识别关键规则分析业务域和用例,业务实体、流程和功能分解将为关组虑内系统功能分解相的功能群,考聚性和耦合度确定组件边界组职责围关当定义件接口和范,确保注点分离和适的粒度验证与调整评组计满馈调组结估件设是否足需求,根据反整件构组册认证资产录产电商系统件拆分示例用户管理(处理注、、个人料)、品目(管理品购临时选择订单订单创状态信息和分类)、物车(保存用户的商品)、管理(处理建和更关库评新)、支付处理(集成支付网和交易管理)、物流管理(处理配送和存)、价系统馈(管理用户反)组件交互设计同步通信模式异步通信模式请应请传过传求-响模式客户端发出求并等待服消息递模式通中间件递消息,无应连务端响需直接接资队对传•REST API基于HTTP的源操作•消息列点点消息递订阅对•gRPC高性能的RPC框架•发布/一多消息分发调进内组连续•直接方法用程件通信•事件流事件流处理简单现弹负载优点直接、便于理解和实优点松耦合、提高性、支持削峰调杂导数缺点强耦合、阻塞用方、可能影响系缺点增加复性、可能致据一致性弹战统性挑选择考虑因素应时应还迟•响间要求需要立即响是可以延对败•可靠性需求通信失的容忍度负载负载负载•系统特性峰值和平均差异数还终•据一致性要求强一致性是最一致性开杂队对计•发复性团异步设的熟悉程度技术选型与架构决策架构原型与验证概念验证POC针对术验验证关单特定技或方法的小型实,其可行性通常注一方面,如性能、集术成能力或特定算法,目的是降低技风险架构原型现关键简验证计组关键实架构元素的化版本,整体架构设的有效性包括核心件、详细接口和主要交互流程,但省略功能和优化负载测试预负载验证压现测试数时模拟期工作,系统在力下的表高并发、大据量和长间运稳资行条件下的性能、定性和源利用情况迭代优化验证结调计现问题颈组计根据果整架构设,解决发的和瓶可能涉及件重新设、接调术换口整或技替验证应关扩颈战术应验证架构注最具风险的方面,如可展性、性能瓶、集成挑或新技用有效的过项识别问题现导程能够在目早期潜在,避免在后期发架构缺陷致的高昂修复成本架构评审与优化评审准备评审标围档图关键质评标请明确目和范,准备架构文和表,确定量属性和估准邀合适的参师术负责领专质证员与者,包括架构、技人、域家和量保人评审执行师绍计关键评审队质场架构介设和决策,然后由团从不同角度分析架构使用量属性景、架为讨论记录问题议构决策点和潜在风险作框架,所有和建3优化实施评审结进计关键问题简组赖关扩根据果制定改划,优先解决常见优化包括化件依系、增强计进错误关键径展点设、改处理机制和优化性能路验证成效进验证认问题测试码检测试实施优化后行,确是否得到解决使用基准、代查和原型等方法评进时进进调估改效果,必要行一步整评审应为应协进评审顾架构不被视批判性活动,而是作改的机会建立定期机制,如每季度架构回续应断评审过显质术会,有助于持优化架构并适不变化的需求有效的程能够著提升架构量,降低技债进队对务,并促团架构的理解和遵循演进式架构设计迭代开发与持续交付可演化性设计原则进计开调当组演式架构设与敏捷发理念相一致,强增量式发展而非一•适的模块化定义清晰的件边界计认时术环断稳次性设它承需求会随间变化,技境会不发展,因•接口定性确保接口变更可控须应这渐进此架构必能够适种变化•向后兼容性支持式更新过续践产环获换态通持交付实,每次架构变更都能快速部署到生境,•特性切支持功能的动启用/禁用馈这馈环弹败级得真实反种快速反循使架构能够根据实际使用情况不•构建性容忍部分失和降断调整和优化开闭则对扩开对闭•遵循原展放,修改封进许组单应开将为这进绞杀微服务演案例多织从体用始,然后逐步功能分解微服务种演通常遵循者模式,即先构建新服务,然将旧终换旧应这断后逐步流量从系统重定向到新服务,最完全替功能Netflix和Amazon等公司成功用了种方法,在不中业务的情况转下完成了架构型架构治理与文档化架构基线管理维当护前架构的正式版本变更控制机制评议估和批准架构修改建标准化流程开规践确立发范和最佳实蓝图过标监档架构治理是确保系统建设符合既定架构的程它包括制定架构准和指南、控架构遵从性、管理架构变更和保持架构文更新有效应过应标的治理不于僵化,而平衡控制与灵活性,确保架构能够支持业务目档关键档应层层队员详细术细节开员文化是架构治理的部分好的架构文包括高次概述(适合管理和新团成)、的技(供发人参考)以及决策记录释为选择档应过详尽关关键记录细节(解什么做出特定)文保持最新,但不必于——注重要决策和模式,避免容易变化的软件架构的质量属性可用性可靠性访问时执系统正常运行并可被用户的间比例系统在指定条件下正确行功能的能力标时•衡量准平均故障间隔间标时错误预错计•衡量准正常运行间百分比•策略防、容设、异常处检测•策略冗余、故障、自动恢复理安全性性能数权访问应保护系统和据免受未授的能力系统响和处理能力的速度和效率标数频标应时•衡量准漏洞量、安全事件率•衡量准响间、吞吐量验证权审计缓资•策略身份、授、加密、•策略存、并行处理、源优化质们为验虑质计须量属性是系统非功能特性,它影响系统的整体行、性能和用户体不同的系统可能优先考不同的量属性,架构设必根据当权虑关特定系统的需求做出适的衡例如,金融系统可能优先考安全性和可靠性,而媒体流系统可能更注性能和可用性可扩展性与性能高并发设计缓存机制时请应这缓当缓应高并发系统需要能够同处理大量用户求而保持响速度存是提高性能的强大工具,适的存策略可以大幅减少响过现时负载通常通以下策略实间并降低后端状态计扩级缓浏览应数库•无设便于水平展•多存器、CDN、用、据缓驱•异步处理减少阻塞操作•存更新策略TTL、主动刷新、事件动负载请压缓标记•均衡分散求力•存一致性版本、失效通知负载热数识别针对频访问数•服务分解隔离高功能•点据繁据优化数将数节•据分片据分散到多个点弹临战别销计弹扩层独性架构实例电商平台通常面流量波动挑,特是促活动期间一个设良好的性架构可能包括自动展的Web、扩组读写数库计缓订单现扩缩这立展的服务件、分离的据设、分布式存系统、异步处理的流程,以及基于容器的部署实快速容种架资静资构能够在流量高峰期自动增加源,在平期减少源,从而平衡性能和成本可靠性与容错容灾与备份策略服务降级/熔断机制难数别容灾策略确保系统在灾性事件(如故障是不可避免的,特是在分布式系继续区断级据中心故障)后能够运行多域统中熔器模式可以防止故障联,数当检测时暂时断开连部署是常见方法,在地理上分离的据到下游服务故障,请败中心部署冗余系统接防止更多求失数验级过备份策略包括定期据备份、备份服务降通提供有限功能而非完全失证练时标败来验、恢复演以及明确的恢复间目提高用户体例如,在推荐服务标环时显静态RTO和恢复点目RPO云境不可用,电商网站可以示推荐区简这热显错误中,自动快照和跨域复制可以化或门商品,而不是示信息过一程数据一致性保障数杂战则软状态终分布式系统中的据一致性是复挑BASE原(基本可用、、最一致传环性)通常比统的ACID事务更适合分布式境偿计这常见策略包括补事务、幂等操作设、事件溯源和CQRS模式些方法在保持系时环问题统可靠性的同,处理分布式境中的一致性安全性设计深度防御层多次安全控制数据保护加密和隔离机制访问控制认证权与授安全架构4础络基设施和网安全应当计虑认证权访问础现标协议安全性是架构设的核心考因素,而非事后添加的功能身份与授是控制的基,代系统通常采用OAuth/OpenID Connect等准,结认证对请进验证论来内还合多因素提高安全性零信任模型要求所有求行,无源自部是外部数应传储数态数数据加密包括输加密(TLS/SSL)、存加密(透明据加密、客户端加密)和特殊情况下的处理加密(同加密)据隔离策略可以限制敏感据的访问围逻辑结码审赖库时范,如使用多租户架构中的隔离或物理隔离安全漏洞防护需要合自动化工具(如SAST/DAST)和人工代查,并保持依的及更新可维护性与可测试性解耦设计自动化测试持续集成内维础组应该测试计测试续过测试过高聚低耦合是可护系统的基件可的架构设使自动化更加容易实持集成CI通自动化构建和程,确单职责过现这单测试测试独组码现有明确的一,并通定义良好的接口与包括元(立件)、集成保代更改不会破坏有功能CI管道可以包组赖术测试测试组测试测试码质检扫测试其他件交互使用依注入等技可以降低(件交互)和端到端(完括代量查、安全描、性能等多个组赖单独换组测试驱开为驱开环节为开队馈问件间的直接依,便于更改或替整流程)动发TDD和行动,发团提供快速反,降低集成论导测试题件发BDD等方法可以指策略的制定的风险维还现观测标开员为问题计时虑维良好的可护性体在系统的可性上完善的日志、指和分布式追踪可以帮助发人理解系统行,快速定位设考可护测试仅维还开质性和可性不有助于降低长期护成本,能提高发效率和系统量部署与运维服务治理可观测性数来自动化部署工具随着服务量增加,服务治理变得越越重要观测记录关认证可性包括三个主要方面日志(事件和API网提供集中的入口点,处理、限流和现础码错误标为请请册现态代部署通常采用基设施即代IaC方法,使)、指(量化系统行)和追踪(跟踪求路由服务注与发使服务能够动定位栈则额用工具如Terraform、Ansible和求流)ELK(Elasticsearch、Logstash、彼此,而服务网格提供外的流量控制、安全来础组观测CloudFormation定义和管理基设施容器Kibana)或Grafana+Prometheus等工具合和可性功能配置管理确保所有服务使用一术编监当环技(Docker)和排平台(Kubernetes)提可以构建强大的控系统适的告警机制确保致的配置,并支持境间的配置差异环选项续队时应问题验供了一致的运行境和灵活的部署持部团能够及响,避免用户体受到影过码署CD管道自动化整个发布程,从代提交到响产生部署可移植性与互操作性标准协议与数据格式开标关键标采用放准是确保互操作性的常用准包括HTTP/REST用于API通信,数换权档标JSON或XML用于据交,OAuth用于授,OpenAPI用于API文准化接许队组缝口减少了集成成本,并允不同团或织的系统无交互抽象层设计创当层关码数访问层建适的抽象可以隔离平台相代,提高可移植性例如,据可以隐数库细节现础简藏具体据的,UI抽象可以支持不同前端实,基设施抽象可以化云这计应术环提供商迁移种设使系统能够适技变化和境变化集成模式对不同系统间的集成可能采用多种模式,如点点集成、集中式集成(ESB)、API关驱选择规时网或事件动集成合适的模式取决于集成模、实性需求和已有系统特计错误试性良好的集成设包括处理、重机制和版本管理策略对弃一个成功的API接案例可能包括明确的API治理流程(版本控制、向后兼容性、用策略)、档码开测试环监状全面的文(包括示例代和SDK)、发者友好的境、控集成健康况的工具,以及扩这践时术处理高峰流量的展机制些实共同确保系统能够与外部世界高效互操作,同保持技灵活性架构决策权衡架构设计最佳实践SOLID原则领域驱动设计DDD对计调将领为软SOLID是面向象设的五个基本原DDD强业务域模型作件设则单职责则计过一原S要求每个类只有的核心它通限界上下文划分复开闭则调对扩杂领语一个变更理由;原O强域,使用通用言改善沟通,并开对闭换则过对展放但修改封;里氏替原通实体、值象、聚合等模式捕捉换规则别杂领L确保子类可以替父类;接口隔离业务DDD特适合复业务则议专赖创原I建小而注的接口;依倒域,能够帮助建更符合业务需求的则赖软置原D推荐依抽象而非具体实件模型现持续重构进码结为过续识别码重构是改代构而不改变其行的程持重构策略包括代异味(如重码过应骤进维测试测试复代、长方法)、用小步改以及护全面套件自动化是安全重关键构的,它提供信心确保更改不会破坏功能关践计稳导现换许其他值得注的最佳实包括API优先设(确保接口定并指实)、功能切(允时约测试验证协议检评运行启用/禁用功能)、契(服务间)以及架构健康查(定期估架构与则践应论应队规项杂原的一致性)成功的架构实平衡理与实用,适团模和目复性大型互联网系统架构案例3单体应用阶段规模扩展阶段服务化改造阶段全球化部署阶段阶单开缓层轻数库负将单为区迟访问初始段使用体架构快速发,引入存Redis减据体拆分微服务,采用DDD多域部署提供低延,全球应单读写现独负载请所有功能集成在一个用中,由担,采用分离和主从复制增强方法确定服务边界,实立部署均衡根据用户位置路由求,数库数库扩静术关数一据支持随着用户增长,性据展性,使用CDN加速和技多样性引入API网统一据同步机制确保全球一致性,采维战开显现态内现状态应册现态扩缩能和护挑始容分发,实无用集群入口,服务注发支持动用混合云策略平衡成本和性能扩队水平展容,消息列处理异步通信场应对扩预计资预队断级关键双11等高并发景的措施包括提前容留足够算源,实施流量削峰(如售、排机制),采用熔降策略保护核心服务,使用异步处理非操资过载级缓轻数库压作,限流机制防止源,以及多存减据力金融行业系统架构案例高可用集群部署核心交易系统隔离证将关键金融系统通常采用两地三中心架构,包括同城主备中心和异银行和券交易系统通常采用核心-渠道分离架构,交关键组单专地灾备中心件采用主备或集群部署,确保无点故障易功能与客户接入渠道隔离核心系统注于交易处理,采用保时数证数检测术栈稳则实复制和据同步机制保据一致性,而自动故障和切守技确保定性,而渠道系统更灵活,可以快速迭代以响换应问题应场系统能够快速响市变化许节时这过关线现断多金融系统使用主动-主动部署模式,所有点同处理交种隔离通API网和服务总实,配合限流和熔机制保缝将时缩级队迟易,在故障情况下可以无接管,恢复间RTO短到秒护核心系统在高峰期,非核心交易可能会排或延处理,优别这过练来验证关键种高可用架构通常通定期演其有效性先保障业务须满严审计规这记录获细节时内金融系统架构必足格的和合要求通常包括完整的交易日志(捕每个操作的,包括操作者、间和变更权职责权则数历数数容)、强大的限管理(实施分离和最小限原)、据保留政策(确保史据可追溯)以及安全控制(加密敏感据,防权访问监规数须储区止未授)管合经常影响架构决策,例如可能要求某些据必存在特定地云计算平台架构案例公有云架构私有云架构混合云架构础组数结势许公有云架构利用第三方提供的基设施,具有私有云架构在织自有据中心构建云服务,混合云架构合私有云和公有云优,允工弹费势计虑应数规负载高性和按需付优设考充分利用提供更高的据控制和合性通常使用作根据需求灵活部署核心敏感系统可以数库数创资弹应则云服务特性,如托管据、无服务器函和OpenStack等平台建源池,并提供自服务留在私有云,而性需求高的用部署在公扩维杂内队获资过连连自动展功能,以降低运复度门户,使部团能够按需取源有云,通安全接和统一管理平台接两者础码将础为编应扩云原生基设施采用一切即代理念,基设施定义声明性配置文件容器排平台(如Kubernetes)自动管理用部署和展,服务网过仓库驱环格(如Istio)提供微服务通信和安全控制,而GitOps工作流通Git动配置变更,确保境一致性和变更可追溯性微服务架构落地实践服务拆分策略服务注册与发现领进过册态基于业务能力和域边界行合理拆分,确保服通服务注中心动管理服务实例,支持自动内现负载务高聚低耦合发和均衡数据管理服务治理4数储数监质采用合适的据存策略,处理分布式事务和建立全面的控、追踪和管理体系,确保服务战据一致性挑量和可靠性应过过识别开虑队结频赖关数库计关键战微服务拆分避免度拆分和度融合两个极端成功案例通常从明确的业务边界始,考团构、变更率和依系据设是挑,需要决为独数库杂数库简定是否每个服务使用立据(提供自治但增加复性)或共享据(化但增加耦合)册现关微服务治理平台通常提供服务注发(如Eureka、Consul)、配置管理(如Apollo、Spring CloudConfig)、API网(如Kong、Spring Cloud链断践还独频Gateway)、路追踪(如Zipkin、Jaeger)、限流熔(如Sentinel、Hystrix)等功能成熟的微服务实需要配套DevOps流程,支持立服务的繁部署监和控架构失败案例分析过早优化案例单点故障案例创产杂销某业公司在品早期就采用了复的微服某电子商务平台在黑色星期五促期间完全扩问题结溃订单赖单数务架构,希望提前解决可能的展崩,原因是所有处理都依一据导开队费时库虽应现果致发速度大幅降低,团花大量实例然用服务器实了集群部署,杂专产数库为颈导间处理分布式系统复性,而不是注于但据成了瓶,致整个系统不可场验证品功能和市用规时过计关键单负根因在不确定业务模和方向度设根因架构中存在点,缺乏有效的创阶对载测试规架构,忽视了业段快速迭代的需求和容量划进议现简单进议数库读写改建采用适合在的架构,设改建实施据主从复制和分计时预扩库压测留展点,在业务明确后再逐步演离,采用分分表策略,建立完整的力进试扩流程和自动容机制缺乏监控案例级现败监队费数时某金融服务在升后出间歇性交易失,但由于缺乏有效的控和日志,团花了天间问题竞态导续严誉损才确定是由特定条件下的条件致期间客户持受到影响,造成重声失监观测计根因控盲点和不充分的可性设进议监现关键标开改建建立全面的控体系,实分布式追踪,设置业务指告警,发故障模拟和恢练复演流程团队协作与架构决策软项队协对关队协队队负责组关在大型件目中,有效的团作架构成功至重要常见的多团作模式包括团即服务模式,每个团一相服务队队负责队应队队础应的全生命周期;特性团模式,跨功能团端到端特性;以及平台团+用团模式,平台团提供共享基设施和工具,队专用团注于业务功能员许组协调师术负责关键领专组员应简架构决策委会是多织架构决策的机制,通常由首席架构、核心技人和域家成有效的委会保持精,围为员为颈层队员审设定明确决策范,并建立透明的决策流程避免委会成瓶,可以采用分决策模型只有跨团影响的重大决策才需委会队内队核,团部决策由团自主完成软件体系结构发展趋势总结与展望架构的核心价值未来架构师技能软结仅术蓝图师件体系构不是技,更成功的架构需要跨界能力深厚现标战术识是实业务目的略工具优秀的技知,清晰的业务理解,有权的架构能够平衡短期效率和长期演效的沟通技巧,以及平衡衡的决进为组创续术竞来师还能力,织造持的技策能力未架构需要掌握云杂软环计数争力在日益复的件境中,算、人工智能、安全和据科学将继续领识续习架构的重要性提升等域的知,并具备持学的意愿和能力持续学习与实践计论践结领议过开项阅读尝架构设是理与实相合的域建通参与源目、案例研究、试术败习记录验这仅新技原型,并从成功和失中学和分享您的架构决策和经,不区有助于社,也能加深自己的理解课软结础识计质践们讨本程涵盖了件体系构的基知、设方法、量属性和实案例我探了从单进关键计体到微服务的架构演,分析了不同架构风格的优缺点,并分享了设决策的最佳践这内杂计实希望些容能够帮助大家在复系统设中做出更明智的决策。
个人认证
优秀文档
获得点赞 0