图11 解决方案架构环形图
CapEx
),即前期成本,以及运维支出(OpEx
),即持续成本IT
基础设施需求:解决方案架构决定了项目执行需要的IT
基础设施图12 解决方案架构的有益属性
NonFunctionalRequirement
,NFR
)图13 解决方案架构的非功能性属性
图14 云计算模式的类型
图21 解决方案架构师的类型
IT
基础设施设计、安全防护和数据中心运维。他们与解决方案架构师紧密合作,以确保组织的基础设施战略与其整体业务需求相一致,并通过分析系统需求和现有环境来规划适当的资源能力来满足需求。他们能帮助减少用于运维支出的资本支出,以提高组织效率和投资回报率V**
的安全连接、防火墙配置、网络拓扑、负载均衡配置、DNS
路由、IT
基础设施连接等有非常深入的了解KeyPerformanceIndicator
,KPI
)并实现数据转换。他们确保整个组织的数据性能和数据质量保持一致BI
工具、数据安全性和加密技术,才能做出正确的选择DevOps
架构师可以让一切都实现自动化图22 解决方案架构师的职责模型
NonFunctionalRequirement
,NFR
)可能并不直观,但它们的缺失可能对整体的用户体验产生负面影响,并阻碍业务的开展图23 解决方案设计中的
NFR
NFR
的重要性,并确保它们作为解决方案交付的一部分得到实施图24 解决方案设计中的架构约束
bug
修复而增加成本。所以,在成本、质量、时间和范围之间找到平衡点是非常重要的。范围蔓延是最具挑战性的情况之一,因为它会对所有其他约束产生负面影响,并增加解决方案交付的风险ProofOfConcept
,POC
),以分析它们是否适合解决方案的功能性和非功能性需求POC
的思路是实现关键功能的一部分来评估技术,这可以帮助我们根据其能力来决定技术栈。它的生命周期很短,并且仅限于由团队或组织内的专家进行评审POC
是指解决方案架构师试图弄清楚解决方案的基础构件图2-5所示的流程图显示了解决方案交付生命周期。解决方案架构师参与了解决方案设计和交付的所有阶段
Web
应用程序和数据库HighAvailability
,HA
)架构,最好将工作负载分布在数据中心相互隔离的区域中DevSecOps
将最佳实践应用于实现安全需求与安全响应的自动化,它也因此被越来越多的组织所采用PersonalIdentifiableInformation
,PII
)数据(例如客户电子邮件ID
、电话号码和信用卡号)都需要加密DNS
缓存可以快速查询网站地址CDN
在用户位置附近缓存高分辨率图像和视频Redis
和Memcached
之类的缓存引擎来处理缓存层的频繁查询SOA
。最流行的两种SOA
分别是基于SOAP
(SimpleObjectAccessProtocol
,简单对象访问协议)服务的架构和基于RESTful
服务的架构图47 单体架构与微服务架构
表41 数据类型及其示例与存储类型
MoSCoW
是一种流行的需求优先级排序法,可以将客户的需求分为以下几类:Mo
(Musthave
,必须具备):对客户来说至关重要,没有的话产品将无法发布S
(Shouldhave
,应该具备):一旦客户开始使用该应用程序,它们就是客户最想要Co
(Cloudhave
,可以具备):锦上添花的需求,但是没有它们也不会影响应用程序该有的功能W
(Won
’thave
,不需要具备):即便没有也不会引起客户关注的需求你需要为客户规划包含
Mo
需求的最小价值产品(MinimumViableProduct
,MVP
)版本,然后在接下来的迭代中交付S
需求。使用这种分阶段交付的方式,你可以充分利用各种资源并克服时间、预算、范围和资源方面的挑战。MVP
方法可帮助你更好地确定客户需求
IT
资源都应受到保护,以防未经授权的访问IdentityandAccessManagement
,IAM
):只有经过身份验证的用户才能访问应用程序,用户可以根据自己的授权进行相应的操作A/B
测试)来发布变更IT
基础设施:可以通过基础设施即代码(InfrastructureasCode
,IaC
)脚本(例如Ansible
、Terraform
和AmazonCloudFormation
)来实现基础设施的自动化。基础设施的自动化能够在数分钟(而非数天)内完成环境的搭建CI/CD
(持续集成和持续部署)搭建自动化的部署流水线,可以让你更加敏捷,并通过频繁的部署来快速迭代产品功能IoT
)LiftandShift
是最快的迁移方式,因为只需要最小的工作量即可迁移应用程序。但是它没有利用云原生的优势LiftandShift
策略是重新托管(Rehost
)、更换平台(Replatform
)及重新部署(Relocate
),它们通常只需要对应用程序进行最小的变更,就可以完成迁移Rehost
方法速度快、可预测、可重复并且经济实用,这使其成为迁移上云的最优选择。Rehost
是最快的云迁移策略之一,它将本地环境中的服务器或应用程序直接整体迁移到云上。在迁移过程中,只需要对应用程序进行最小的更改Replatform
迁移策略时,可能需要在目标环境中重新安装应用程序,这将导致应用程序变更VMware
虚拟设备来部署应用程序。你可以使用名为Relocate
的加速迁移策略将此类工作负载移到云上。Relocate
可以在几天之内迁移上百个应用程序。你可以以最小的工作量和最简的方式将基于VMware
和容器技术的应用程序快速重新部署到云上Refactor
需要更多的时间和资源来重写应用程序,并进行重新架构,然后才能迁移上云。具有丰富云经验或高级技术人员的组织通常使用这种方式IT
资源和项目都迁移到云上后,可能需要为某些服务器或应用程序购买与云兼容的许可证或发行版Retain
:本地环境中可能会存在一些对业务至关重要,但由于技术原因(例如,云平台上不支持某个操作系统或应用程序)不适合迁移的应用程序。在这种情况下,可以让它们继续运行在本地环境中Retire
策略I/O
大小)×IOPS
IOPS
是20000,I/O
大小是4KB
(4096字节),那么吞吐量将是81.9MB/s
InfrastructureasCode
,IaC
)来实现自动化。最重要的是应该使用自动化来主动发现和响应安全威胁,这样运维团队也可以得到解放IT
资产管理,它可以跟踪IT
资源的库存资产;还介绍了配置管理,它可以确定资产之间的依赖关系IT
运维分析,如何使用“五问”(5Why
)法来执行RCA
,以及审计的重要性。审计可以使系统免受任何恶意行为和未被注意到的威胁的侵害DevOps
有助于在不影响质量、可靠性、稳定性、韧性或安全性的情况下完成交付DevOps
(开发运维的简称)方法中,开发团队和运维团队在软件开发生命周期的构建和部署阶段协同工作,分担责任,并提供持续反馈。在整个构建阶段,软件构建会在类生产环境中被频繁地测试,这样有助于及早发现缺陷DevOps
实践鼓励软件开发工程师和专业运维人员更好地合作。这有助于更密切的合作和沟通,从而缩短产品推向市场的时间(TimeToMarket
,TTM
),让发布更加可靠,提高代码质量,使系统更易于维护DevOps
是文化和实践的结合。它要求组织改变其文化,打破产品开发和交付生命周期中所有团队之间的壁垒。DevOps
不仅仅涉及开发和运维,还涉及整个组织,包括管理层、业务/应用负责人、开发人员、QA
工程师、发布经理、运维团队和系统管理员。DevOps
作为首选的运维文化,越来越受欢迎,特别是对于那些涉及云计算或分布式计算的组织DevOps
的工具和自动化将开发及系统运维结合在一起。以下是DevOps
实践的关键组成部分:CI/CD
)IaC
)CM
)IaC
的实践中,基础设施是通过代码和CI
来配置和管理的Ansible
、Terraform
和AWSCloudFormation
是时下流行的基础设施即代码的脚本工具DevOps
实施严格的安全实施和监控,俗称DevSecOps
DevSecOps
关注自动化安全和规模化安全实施DevSecOps
则需要在整个流程中确保应用程序的安全DevOps
是为了提高效率以加快产品发布,而DevSecOps
则是在不减慢产品发布周期的情况下验证所有构件图12-4
DevSecOps
和CI/CD
如图13-1所示,大数据流水线的标准工作流程包括以下步骤:
BI
)工具将结果可视化,或者将结果输入机器学习算法中进行预测图132 大数据架构设计中的工具与流程
图13-5 数据湖的对象存储
图136 使用数据湖
ETL
流水线处理数据
ML
可以帮助你解决这一复杂问题ML
就是利用技术手段根据历史数据来发现趋势、模式,并计算数学预测模型。ML
可以帮助解决以下复杂问题:例如,将一些股市趋势历史数据提供给机器学习模型,让它预测未来6个月到1年的市场波动情况
ML
模型的成功至关重要。高质量的数据能让ML
模型更准确,预测更正确如图13-8所示,机器学习工作流程包括以下阶段:
ML
模型使用训练数据集进行训练,并使用验证数据集进行评估。一旦模型就绪,就可以使用测试数据集来测试它。考虑到数据量和业务用例,一般需要将数据划分为训练集、测试集和验证集,可以将70%的数据用于训练,10%用于验证,20%用于测试ML
模型。为了获得精准的模型,你需要对各种超参数进行实验,并进行模型选择ML
模型在学习阶段得到训练,就要用已知的数据集来评估其准确性。使用预处理阶段保留的验证数据集来评估模型。如果模型预测精度没有达到可分辨验证数据确定的异常的程度,则需要根据评估结果对模型进行必要的调整图13-9 模型的过拟合与欠拟合
图14-1展示了遗留系统给企业带来的巨大挑战
图14-4 遗留系统现代化改造技术
API
封装器,这将允许其他业务应用与遗留应用通信EOL
),供应商不再提供支持和必要的安全补丁更新时,组织通常会选择这种方法图14-5 遗留大型机系统现代化改造上云
SaaS
)产品或商业成品软件(CommerciallyAvailableOfftheShelf
,COTS
)能以相对较低的成本满足业务需求。在进行重新设计之前,必须先进行重新设计与购买的成本效益分析(CBA
)SaaS
产品是基于订阅的,并按用户许可证收费,所以如果用户数量较少,它们可以是很好的选择。对于拥有数千名用户的庞大企业来说,选择自建系统可能成本效益更高图14-6 遗留系统现代化改造的云迁移路径
SolutionArchitectureDocument
,SAD
)提供了一种端到端的应用程序视图,解决了与应用程序开发相关的所有利益相关者的需求,并帮助大家达成共识SAD
有助于实现以下目的:NFR
)图15-1
SAD
视图
UML
部署图中添加更多细节,向技术用户(如开发团队和DevOps
团队)展示各种节点组件及其依赖关系。部署视图可以展示系统的物理布局SAD
的核心,体现了架构上和技术上的选择。解决方案架构师需要把架构图设置在这里,例如,显示出它是3层、N
层架构,还是事件驱动的架构,以及其背后的理由。你还需要详细说明技术选择,例如,Java
与Node.js
的使用对比,以及它们各自的利弊。你需要在实现视图中说明执行项目所需的资源和技能EntityRelationship
,ER
)图来显示数据库中不同表和模式之间的关系。数据视图还可以对所需的报告和分析进行说明SLA
、告警和监控功能、灾难恢复计划,以及系统的支持计划。运维视图还提供了有关如何进行系统维护的详细信息,包括修复bug
、打补丁、备份和恢复、处理安全事件等