作者丨李艳鹏,支付平台架构师主页丨http://www.jianshu.com/u/581f548ef0ec 一、背景武林中,“天下武功出少林”指中国各门各派的武功都与少林武学有一定的渊源,技术也是相同的道理,所有的技术最终体现在计算机知识的基本功上,这些基本功是技术的易筋经,是“内功”,一些年轻的攻城狮更热衷于追崇高大上的框架,过去在炒SSH,现在在炒Spring Cloud,这些对框架掌握的程度体现在“剑术”上,我推荐每个技术研发人员在修炼好内功的基础上,再去练“剑术”。回头看IT行业的发展,先有传统行业,再有互联网,传统行业和互联网是少林与武当的关系,他们的技术相辅相成,并不一定是互联网的技术要比传统行业的技术高深很多,而是它们有自己的侧重点,传统行业更偏向于企业级开发,项目具有业务复杂、流程丰富、中心化管理、企业级抽象度高、业务重用率高的特点,而互联网倾向于把复杂的业务进行拆分成单一的职责,对于单一职责模块的非功能质量进行大幅度的优化,这包括高可用性、高性能、可伸缩、可扩展、安全性、稳定性、可维护性、健壮性等。 这篇文章提供一个基本的面向互联网技术评审的方法论,它主要论述在互联网的行业里,如何在完成产品功能的前提下,更好的满足非功能质量的需求,是每个互联网程序设计人员和架构设计人员都应该掌握的一项基本技能。 本文的目的是为了初入互联网或者有意愿踏入互联网的研发人员起到抛砖引玉的效果,如果想全面了解互联网非功能质量设计的方方面面,可以参考美国互联网方法论Architecture Tradeoff Analysis Method:http://www.sei.cmu.edu/architecture/tools/evaluate/atam.cfm,相关的书籍可以从这里下载ATAM: Method for Architecture Evaluation:http://cloudate.net/?page_id=1604 二、目标2.1 非功能质量需求的概述通过参考技术评审指标,保证系统架构设计满足用户和系统对非功能质量的需求: 核心非功能质量:
其他非功能质量:
2.2 非功能质量需求的具体指标主要分为4部分:应用服务器、数据库、缓存和消息队列。 2.2.1 应用服务器应用服务器是服务的入口,请求流量从这里进入系统,数据库,缓存和消息队列的访问量取决于应用服务器的访问量,对应用服务器的访问量进行评估至关重要,应用服务器主要关心每秒请求的峰值,请求响应时间等指标,通过这些指标可以评估需要的应用服务器资源的数量。 全面考虑下列指标:
2.2.2 数据库根据应用层的访问量和访问峰值,计算出需要的数据库资源的QPS,TPS,每天的数据总量等,由此来评估所需数据库资源的数量和配置,部署结构等。 全面考虑下列指标:
2.2.3 缓存根据应用层的访问量和访问峰值,通过评估热数据占比,计算出的缓存资源的大小,存取缓存资源的峰值,由此来计算所需缓存资源的数量和配置,部署结构等。 全面考虑下列指标:
2.2.4 消息队列根据应用层的访问量和访问峰值,计算需要消息队列传递的数据内容和数据量,计算出的消息队列资源的数量和配置,部署结构等。 全面考虑下列指标:
三、技术评审提纲业务项目千差万别,没有一个统一的方法论完成架构设计和技术评审,架构设计只需要从某些关键点来表达系统即可,提纲就是用来帮助大家做架构评审的工具,帮助大家整理思路并形成可实施的方案,因此在做系统设计时,可有选择性的参考此提纲,根据业务特点来完成一个可实现的有效的架构设计。 3.1 现状业务背景
技术背景
3.2 需求业务需求
性能需求
3.3 方案描述方案1整个方案需要参考技术评审指标提出的各方面指标来考虑满足系统的非功能质量需求。
方案2整个方案需要参考技术评审指标提出的各方面指标来考虑满足系统的非功能质量需求。 ...... 3.4 方案对比对比可选方案,并给出选择这种方案的理由,选择倾向的方案, 3.5 风险评估标识所选方案的风险,提出解决此风险发生时候的应对策略,比如:上线失败时的回滚策略。 3.6 工作量评估描述使用所选方案需要做的具体工作,并评估开发、测试等细化任务需要的时间,形成可实施的任务计划表,任务计划表推荐采用简单的表格形式,减少工具使用和学习的成本。 四、性能和容量评估经典案例4.1 背景物流系统包含如下两个质量优先需求:
由于会员数量较大,可能有较快的增长速度,订单数量更是巨大,促销期峰值的订单产生量可能很高,这两个业务模块的数据存储需要分库分表,并借助消息队列和缓存抗写和读的流量,因此,本方案主要涉及这两个业务的容量评估。 4.2 目标数据量级 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|