SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
联动优势科技有限公司
北京市海淀区学院南路12号学创大厦A座9层(100088)
Version 1.2.20150528
《业务系统上线标准参考指引》介绍
刘胜 liusheng@umpay.com
『 联 动 技 术 大 讲 堂 』
2
热点事件
 昨天——
 支付宝大面积瘫痪,缘由杭州萧山的一根光缆被挖断了。什么
互联网+,什么4.0,什么大数据,都顶不住传统行业的一铲
子。这一战,蓝翔赢了。
 今天——
 携程彻底瘫痪。所有节点代码被删除,数据库也被删除了。
 某某回复: 现在情况是所有节点上的业务代码被干掉了,业
务部门都在忙着部署,所有发布日志没有了,具体原因在差,
内部推测可能是内部报复。
 看这架势,应该没备份,或者备份不同步,备份数据过老。否
则恢复很快,不至于新闻公布出来。
 应该不是代码上传服务器自动删除的事,是这样的话,换新的
服务器环境就ok了,最多2个小时就可以搞定。这么长时间还
不行,只能说是数据出问题了。估计备份也受损了。
 5个小时还没修好,估计真要挂了。
3
小调查
 《联动风采》2015第一季
 『业务系统上线标准指引』
 开源BS3框架
 http://10.10.67.45:18080/svn3/
 /docs/20150122-UMP_DEV_online-system-requirements-
outline-v0.7.0512.10.pdf
看过  进一步阐述
没看  更应该了解
4
关于我
——本次课程——
关于上线标准?
关于软件需求?
——有趣的我——
助理软件工程师@1997
软件工程师@1998
系统分析员@2002
资深系统分析师@2008
——主要挑战——
交互不足
反馈单一
——主要收获——
内容逻辑化
活动游戏化
@刘胜
5
1.引言
 1 引言
 背景,目的,涉众,术语
 2 上线参考要求
 三大能力要求
 三大测试要求
 三大规范要求
 3 附录
 上线要求快速检查表
6
软件开发文档
 软件需求规格说明书 /SRS
 软件接口设计说明书 /外部接口
 软件概要设计文档 /总体设计
 软件详细设计文档
 软件功能测试计划
 软件功能测试报告
 软件性能测试报告
 软件安全测试报告
 软件验收测试报告
 软件系统上线步骤
 …
 源代码
Jack W. Reeves @ C++ Journal
1992,What Is Software Design? ——Code As Design
2005,What Is Software Design: 13 Years Later
2005,Letter to the Editor
7
需求规格说明书
 Software Requirements Specification(SRS)
 功能性需求 Functional Requirements
 非功能性需求 Non-Functional Requirements
 例:能满足100个人同时使用,页面反应时间不能超过6秒;
 例:能7×24连续运行,年非计划宕机时间不能高于8小时;
软件体系架构
(关键需求决定架构,其余需求验证架构)
功
能
性
需
求
非功能性需求
高
可
用
,
高
可
靠
高
性
能
,
高
扩
展
多
功
能
,
高
扩
展
易
用
性
,
可
测
试
安
全
性
,
健
壮
性
可
复
用
性
互
操
作
性
可
维
护
性
可
移
植
性
8
需求的重要性
 事实1:缺陷在系统中的时间越长,解决它的代价就越大! 【债务】
 事实2:一半以上的软件缺陷是在需求阶段引入的。 【不幸】
 事实3:有接近一半的软件功能模块,从未被使用。 【Excel】
表1.
摘自《代码大全》
发现BUG阶段
需求 架构 建设 系统测试 发布之后
引入
BUG
阶段
需求 1 3 5~10 10 10~100
架构 -/- 1 10 15 25~100
建设 -/- -/- 1 1 10~25
图 1.不同阶段缺陷引入的分布 图2.IT项目实际功能模块使用频率的分布
9
非功能需求
 定义
 需求=功能+质量+约束
 质量=场景+定量
 分类
 功能性需求~表面功能
 非功能需求~潜在质量
 需求大局观
 关键需求决定架构
 其余需求验证架构
重要性
紧
急
性
功能性
需求
非功能
需求
1.重要不紧急 2.重要且紧急
3.紧急不重要
10
FQC原则
分布式系统CAP定律
(Eric A. Brewer 2000)
———————————
Consistency 一致性
Availability 可用性
Partition tolerance 分布性
需求分析的FQC原则
(刘胜 2014)
————————————
Functional Features 功能需求
Quality 质量需求
Cost reduction 成本需求
Cost reduction
Pick Two !
11
我司现状+案例2
可行性分析
 可行性分析报告
需求分析
 需求规格说明书
软件设计
 概要设计,详细设计
编码实现
软件开发生命周期(SDLC)
软件测试
 功能、性能、安全 运行和维护
部署/上线
运行/监控
维护/升级
需求反馈
(非功能性需求)
需求定义
(功能性需求)
前期
(xx周,xx月)
中期
(xx周,xx月)
后期
(xx年)
非功能需求一般很笼统,但考虑非功能目标要趁早!
盲点 & 要点
12
涉众组织
 需求:由事业部的产品团队提出需求
 设计:由事业部的开发团队完成设计。
 评审:由事业部的开发团队提出,有架构师和DBA参与
 功能测试:由事业部的测试团队完成功能测试;
 性能测试:由技术发展中心完成性能测试评估;
 安全测试:由技术发展中心完成安全检测评估;
 部署:由网络与运行中心完成部署上线;
 运维:由网络与运行中心进行后期运维;
13
相关术语
 单点故障(Single Point of Failure)
 纵向扩展(Scale-Up)
 横向扩展(Scale-Out)
 负载均衡(Load Balance)
 故障转移(Fail Over)
 故障恢复(Fail Back)
 灾难恢复(Disaster Recovery)
 流量控制(Flow Control)
 功能测试(Functional Testing)
 性能测试(Performance Testing)
 负载测试(Load Testing)
 压力测试(Stress Testing)
14
2.内容
 我们的软件系统,需要——
 具备哪些能力?
 进行哪些测试?
 符合哪些规范?
15
上线参考要求
 三大能力要求
 横向扩展能力*5项
 故障转移能力*2项
 流量控制能力*3项
 三大测试要求
 功能测试报告*2项
 性能测试报告*4项
 安全检测报告*4项
 三大规范要求
 应用发布规范*5项
 应用部署规范*1项
 应用运行规范*4项
凡事预则立,不预则废。
16
不同维度
需求/设计/评审 测试 运维
高扩展 3.1横向扩展能力 3.1横向扩展能力
高可用 3.2故障转移能力
3.3流量控制能力
3.2故障转移能力
3.3流量控制能力
高性能 3.5性能测试 3.7.4隔离静态资源
安全性 3.6安全检测
易测试 3.4功能测试
易配置 3.7.2参数配置
易部署 3.7应用发布规范
3.8应用部署规范
易监控 3.9.1健康状态检查
3.9.2运行状态检查
易维护 3.9.3业务日志规范
3.9.4增量数据规划
…
17
各小章节
4功能测试/黑盒测试
4功能测试/白盒覆盖率
5性能测试/单机性能*1
5性能测试/集群性能*4
5性能测试/弹性负载
5性能测试/服务耦合
6安全检测/安全认证
6安全检测/安全传输
6安全检测/非法注入
6安全检测/移动客户端
1横向扩展/负载均衡器
1横向扩展/应用系统
1横向扩展/消息队列
1横向扩展/关系数据库
1横向扩展/非关系型库
2故障转移/后台服务
2故障转移/后台数据库
3流量控制/分流
3流量控制/限流
3流量控制/降级
7发布/目录结构
7发布/启停脚本
7发布/参数配置/动静分离
7发布/隔离静态资源
7发布/自动化打包
8部署/自动化部署
9运行/健康状态检查
9运行/运行状态检查
9运行/业务日志规范
9运行/增量数据规划
18
2.1 故障转移能力
 故障节点
 后台服务系统  流量控制/分流
 后台数据库 !!!
 解决方案
 应用级解决方案
 TDDL,UDDS(动态数据源)
 中间层解决方案
 DRDS,UDAL(数据访问层)
 必备工具
 数据复制中心
 服务配置中心
19
2.2 横向扩展能力
 相关节点
 负载均衡器 如 LVS/HaProxy/Nginx等
 应用系统 如 Tomcat/Resin等
 消息队列 如 ActiveMQ/Kafka等
 非关系型库 如 Memcached/Redis/MongoDB等。
 关系数据库 如 DB2/Oracle/MySql等
 …
 存储、网络、机房、城市
 能力分级
 1.单点:存在单点故障;
 2.主备:两个互为主备,无单点,存在性能瓶颈;
 3.双活:两个同时工作,无单点,也无性能瓶颈;
 4.多活:多个同时工作,无单点,也无性能瓶颈;
20
2.3 流量控制能力
 概念:
 指控制发送方的发送数据量,使其不超过接收方的接收能力。
 目的:
 有效地防止由于网络中瞬间的大量数据对网络和服务器带来的
冲击,保证网络和服务器系统高效而稳定的运行。
 分类:
 网络流量控制:是针对在单位时间内的网络带宽、被发送到网
络中的数据量,或者是最大速率的数据流量发送。
 服务流量控制:主要是针对单位时间内的服务请求数量进行控
制,及时分流或限流,防止后台某单一服务器的过载,而无法
响应用户请求,甚至导致整个服务器集群的“雪崩”。
 控制——分流、降级、限流
21
2.3.1 分流
 相关节点
 业务应用
 数据库 【读写分离/多读,多写】
 场景:已具备横向扩展能力
 实现:
 模式1:负载均衡器 【如LVS,Ha-Proxy,Nginx】
 模式2:服务查找器 【如DNS,服务配置中心】
 相关:
 灰度发布
 AB测试
22
2.3.2 降级
 节点
 业务应用
 数据库 不具备
 场景:无法通过分流解决服务可用性问题
 实现:将非关键业务降级
 关闭推荐应用,以减少数据库和服务资源占用;
 非关键的业务信息不进行更新,如商品价格;
 远程配置服务改为本地访问内存方式;
 …
 相关:
23
2.3.3 限流
 节点:
 业务应用
 数据库 不具备
 场景:无法通过分流和降级解决服务可用性问题
 实现:
 访问接入层/代理服务:可通过配置限制前端访问流量;
 服务端应用:可通过队列大小,滑动窗口,超时时间等机制,
控制系统内部单位时间的交易处理数量。
 相关:
24
2.4 功能测试指标
 黑盒测试 ——出具“测试报告”
 白盒测试 ——检查测试覆盖率,暂不作要求
 兼容性测试
 针对Web UI应用
 不同浏览器下的兼容性测试:包括IE,Firefox,Chrome等
 不同J2EE容器的兼容性测试:包括Resin-3.x/4.x和Tomcat-7x/8x等。
 针对手机客户端UI应用
 iOS客户端——两代iPhone手机,两个以上iOS版本
 手机:4/4s,5c/5s,6/6plus
 版本:6.x,7.x,8.x,..
 Android客户端——
 手机:五个厂商十款不同手机
 版本:两个以上Android版本(4.x,4.4,5.x)
25
2.5 性能测试指标
 环境
 硬件标配参考:x64双核CPU,8G内存,普通磁盘
 性能测试
 单机性能测试+稳定性测试
 集群性能测试+稳定性测试
 弹性负载测试
 服务依赖测试
26
2.5.1 单机&集群
 3.5.1 单机性能测试 & 3.5.2 集群性能测试
 前提:
 除了依赖数据库、缓存等外,不依赖其他后台子系统;
 依赖后台子系统,但响应延迟时间在可控范围内(<1s)
 补充要求:
 2机集群性能至少达到单机性能的1.7倍;
 4机集群性能至少达到单机性能的3倍;
业务系统(单机系统) 并发用户数 TPS/QPS Rt(Delay) 测试时间
非核心系统(×1) >=100 >=200 <=6s 24小时
核心系统(×1) >=300 >=1000 <=6s 72小时
业务系统(多机集群) 并发用户数 TPS/QPS Rt(Delay) 测试时间
非核心系统(×4) >=400 >=600 <=6s 24小时
核心系统(×4) >=1200 >=3000 <=6s 72小时
27
2.5.3 弹性&耦合
 3.5.3 弹性负载测试
 步骤:
 单机3倍负载压力, 连续15分钟超负荷压力测试;
 中止压力测试客户端, 等待30分钟,无明显下降;
 恢复1倍负载压力, 进行15分钟标准压力测试;
 3.5.4 耦合性负载测试
 原因:后台子系统的响应延迟时间不可控
 目标:解除紧耦合关系,具备一定容错能力
业务系统(单机系统) 并发用户数 TPS/QPS Rt(Delay) 测试时间
核心系统(×1) >=300 >=3000 <=6s 1小时
后台子系统延迟 并发用户数 TPS/QPS Rt(Delay) 测试时间
固定延迟120s 大于等于100 大于等于200 <=60s 1小时
随机延迟1~120s 大于等于300 大于等于1000 <=60s 1小时
28
2.6 安全检测评估
 应用类型
 对外提供Web服务  漏洞扫描、渗透入侵
 对外提供App客户端  混淆、加壳、反篡改、反分析
 参考文档
 华为Web安全测试规范_V1.2.1.doc
 绿盟远程安全评估系统(漏洞管理系列)用户手册.pdf
 光荣之路系列测试培训-安全测试.pdf
 OWASP 安全编码规范
 OWASP 测试指南
 OWASP 风险评级方法论
 (通付盾)移动应用支付安全三战法.pdf
29
2.6.1 安全认证问题
 身份认证的要求:
 认证过程信息安全:不允许传输密钥,而是用密钥参与MAC运算,再做比对。
 认证过程传输安全:如通过SSL方式传输;
 认证信息保存安全:服务端不保存密钥;或仅保存密钥的哈希值;
 会话管理的要求:
 会话信息脱敏性:会话信息中不保存敏感信息,如密码、身份证等。
 会话信息安全性:会话只允许授权访问,不允许匿名访问或修改。
 会话管理可扩展:会话管理器不是单点,建议采用分布式架构。
第一类认证 第二类认证
典型案例 SMPP/CMPP/… HTTP-Auth(BASIC,DIGEST)
独立认证请求报文 独立认证请求报文 无
每次携带认证信息 否 每次携带认证信息
状态性 有状态 无状态
高扩展性 难,依赖分布式会话服务 易,可以透明地横向扩展
故障转移 无 有
性能优化 提高客户端性能 保护服务端性能
防重放攻击 简单 无,每次使用相同认证信息/Basic;
有,每次使用不同认证流水/Digest
30
2.6.2 安全传输问题
 内部传输:
 对外提供访问的IT系统,应该与核心系统的网段隔离。
 部署在非核心网段上;
 当其访问核心网段时,需由网络部提供合适的访问端口和服务
 外部传输:
 对外提供访问的IT系统,当涉及敏感信息时,
 必须通过SSL等方式进行加密传输;
 对用户上传的文件,必须进行充分合理的检查验证;
 确保文件完整性; 【CRC,MAC】
 确保文件不被篡改; 【MAC,签名】
 确保上传目录范围,无可执行权限;【防止木马、病毒等】
31
2.6.3 非法注入问题
 原因:
 应用程序缺少对输入进行安全性检查,攻击者把一些包含指令
数据发送给解释器,解释器会把收到的数据转换成指令执行。
 类型:
 SQL注入
 导致整个数据库可被读写与修改;
 攻击者还可能得到整个数据库访问权限或系统账户的访问权限;
 攻击者甚至能得到操作系统管理员的权限;
 OS Shell注入
 LDAP注入
 XPath注入
 Hibernate注入
 …
32
2.6.4 客户端APP安全*
 方案1——封闭体系(iOS,TrustZone,TSM)
 方案2——
 防止逆向分析 (-反编译)
 防止恶意篡改 (-被篡改)
 防止被动态注入 (-动态跟踪)
 数据的二次加密 (-数据窃取)
—加固—
反分析
移动客户端APP安全解决方案
—密信—
反篡改
—风控—
行为分析
33
2.7 应用发布规范
 3.7.1. 目录结构
 3.7.2. 参数配置
 3.7.3. 起停脚本
 3.7.4. 隔离静态资源
 3.7.5. 自动打包脚本
34
2.7.1 目录结构
 3.7.1 目录结构
 Applications
 重启脚本
 日志目录
 配置参数
 静态
 动态
 WebApps
 静态资源
 日志目录
$(APPNAME)
----启停脚本:start.sh,stop.sh,restart.sh
----日志配置:log4j.properties 或 logback.xml
----./lib 全部依赖库(*.jar)
----./log 通过ln建立的软链接
----./conf 静态配置参数文件
$(WEBAPPNAME)
----启停脚本:start.sh,stop.sh,restart.sh
----日志配置:log4j.properties 或 logback.xml
----./WEB-INF
----./WEB-INF/classes
----./WEB-INF/lib
----./WEB-INF/conf
----./WEB-INF/jsp
----./static 静态文件(jpg/css/js等)
----./log 通过ln建立的软链接
35
2.7.2 参数配置
 3.7.2 参数配置
 补充:待上线的业务系统,必须提供自动化打包脚本,生成单一部署文
件,在目标主机上解压即可运行,而无需再修改配置文件,从而为自动
化部署提供方便。
 3.7.3 启停脚本  自动化运维
 3.7.4 隔离静态资源  性能
 3.7.5 自动打包脚本  自动化部署
启动参数 说明 配置方式
静态配置 启动时所需,相对固定的配置参数。测试环境和生产环境
的配置完全相同;多机部署时不同主机的配置完全相同。
如:组件依赖关系等。
本地化:
配置文件
动态配置 启动时所需,经常修改的配置参数。测试环境和生产环境
的配置有所不同;多机部署时不同主机的配置有所不同。
如:涉及权限的用户名和密码,数据库连接池大小,线程
池大小等。
集中化:
配置中心
36
2.8 应用部署规范
 3.8.1 自动部署脚本
 参考步骤——
 以普通用户登录主机,进入相应目录;
 通过URL下载获取单一部署文件(tar、jar、war格式);
 执行文件完整性校验;
 解压部署文件(或者将war复制到J2EE容器相应位置);
 执行config.sh脚本,完成jdk版本检测、log目录初始化等工作。
 执行start.sh脚本,启动应用进程;
 补充改进——
 与Web管理平台集成;
 与Docker工具集成;
增量部署 vs. 全量部署
37
2.9 应用运行规范
 3.9.1 健康状态输出
 业务调用接口——响应状态,响应时间;
 运行指标接口——内存大小,缓存对象大小,队列大小等
 3.9.2 运行指标输出——运行时产生指标参数
 3.9.3 业务日志规范
 避免重复日志——简要日志,STDOUT,
 简要日志规范——
 日志级别规范——
 日志切换规范——周期(小时)
 3.9.4 增量数据规划
 日志文件,静态文件,数据库
 备份周期?增量or全量?压缩?日志合并?NAS/磁带?
38
3.附录:上线系统快速检查表
检查项 类型 评估效果 补充说明
1.1 横向扩展/负载均衡器 硬件|软件 0缺失|1单点|2主备|3多活
1.2 横向扩展/应用系统 WEB|TCP 1单点|2主备|3多活
1.3 横向扩展/消息队列 集中|集群 1单点|2主备|3双活|4多活
1.4 横向扩展/关系数据库 DB2|MySql|… 1单点|2主备|3多读|4双写或多写
1.5 横向扩展/非关系型库 MC|Redis|… 1单点|2主备|3多读|4双写或多写
2.1 ○ 故障转移/后台服务 0缺失|1下次转移|2本次转移
2.2 ○ 故障转移/后台数据库 0缺失|1下次转移|2本次转移
3.1 ○ 流量控制/分流 0缺失|1具备
3.2 流量控制/限流 0缺失|1具备
3.3 流量控制/降级 0缺失|1具备
4.1 ● 功能测试/黑盒测试 0缺失|1测试通过 用例数=___
4.2 功能测试/白盒覆盖率 (暂不检查)
4.3 功能测试/兼容性测试 Web-UI| 客户端 环境__;版本__
5.1 ○ 性能测试/单机性能*1 QPS/TPS/Delay 并发数=___
5.2 ○ 性能测试/集群性能*4 QPS/TPS/DT/*N 并发数=___
5.3 性能测试/弹性负载 0缺失|1具备弹性
5.4 性能测试/服务耦合 0缺失|1松耦合/具备容错性
6.1 ○ 安全检测/安全认证 0缺失|1部分|2全部
6.2 ○ 安全检测/安全传输 0缺失|1部分|2全部
6.3 ○ 安全检测/非法注入 0严重|1轻微|2无
7.1 ● 发布/目录结构 0不符|1符合
7.2 ● 发布/启停脚本 0不符|1符合
7.3 ● 发布/隔离动态匹配值 0不符|1动静分离|2配置中心
7.4 ● 发布/隔离静态资源 0缺失|1具备
7.5 ● 发布/自动化打包 0缺失|1具备
8.1 ● 部署/自动化部署 0缺失|1具备
9.1 ○ 运行/健康状态检查 0缺失|1部分|2全部
9.2 ○ 运行/运行状态检查 内存|线程|队列 0缺失|1部分|2全部
9.3 ● 运行/业务日志规范 重复|切换|简要 0不符|1符合
9.4 ○ 运行/增量数据规划 日志|文件|DB 0缺失|1部分|2全部
39
Q & A
40
参考资料
 20150304联动优势2015技术路线图(刘胜)
v3.0324.pptx
 20150122联动优势业务系统上线标准指引(技术发展中心
)v0.7.0421.9.docx
 20150122联动优势业务系统上线标准指引(技术发展中心
)v0.7.0512.10.pdf
 20150216内刊投稿(刘胜)业务系统上线标准指引
v1.0.doc
 公开课-研发骨干进阶架构师的15项修炼-2015年6月11-13
日-北京.docx
 http://wdhdmx.iteye.com/blog/1553506 《一线架构师
实践指南》读书笔记
41
集群方式 说明 可用性% 年停机
单机方式 1 -(88/24/365) 99(假设) 87.6H
双机集群 1 -(88/24/365)^2 99.99 53m
三机集群 1 -(88/24/365)^3 99.9999 32s
1 概念:系统可用性
系统可用性 = 运行时间 / (运行时间+停机时间)
集中式高可用 vs. 分布式高可用
术语 说明 可用性% 年停机 容灾 说明
Available 较可用 99 87.6H 无 一般业务
Highly Available 高可用 99.9 8.8H 局部 故障恢复,主备
Extremely Available 极可用 99.99 53m 较强 自动故障转移
Most Available 最可用 99.999 5m 最强 自动灾难恢复
可
用
性
级
别
99%
投入成本
99.9% 99.99% 99.999%

Más contenido relacionado

La actualidad más candente

議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護
Nicolas su
 
2010 b5 spam source detection at home
2010 b5 spam source detection at home2010 b5 spam source detection at home
2010 b5 spam source detection at home
Canaan Kao
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
drewz lin
 
安博士Asec 2010年8月安全报告
安博士Asec 2010年8月安全报告安博士Asec 2010年8月安全报告
安博士Asec 2010年8月安全报告
ahnlabchina
 

La actualidad más candente (17)

議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護
 
11/14王團研究室—安全大師王團論毒 in台中
11/14王團研究室—安全大師王團論毒 in台中11/14王團研究室—安全大師王團論毒 in台中
11/14王團研究室—安全大師王團論毒 in台中
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
2010 b5 spam source detection at home
2010 b5 spam source detection at home2010 b5 spam source detection at home
2010 b5 spam source detection at home
 
Fiddler使用技巧
Fiddler使用技巧Fiddler使用技巧
Fiddler使用技巧
 
台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
Tdohconf 2017-ncku
Tdohconf 2017-nckuTdohconf 2017-ncku
Tdohconf 2017-ncku
 
網站程式資安白箱與黑箱檢測處理經驗分享
網站程式資安白箱與黑箱檢測處理經驗分享網站程式資安白箱與黑箱檢測處理經驗分享
網站程式資安白箱與黑箱檢測處理經驗分享
 
安博士Asec 2010年8月安全报告
安博士Asec 2010年8月安全报告安博士Asec 2010年8月安全报告
安博士Asec 2010年8月安全报告
 
渗透测试思路技术与方法
渗透测试思路技术与方法渗透测试思路技术与方法
渗透测试思路技术与方法
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
用戶端攻擊與防禦
用戶端攻擊與防禦用戶端攻擊與防禦
用戶端攻擊與防禦
 
Forensics 101
Forensics 101Forensics 101
Forensics 101
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
賽門鐵克個人資料保護法解決方案 (專注在 DLP)
賽門鐵克個人資料保護法解決方案 (專注在 DLP)賽門鐵克個人資料保護法解決方案 (專注在 DLP)
賽門鐵克個人資料保護法解決方案 (專注在 DLP)
 

Destacado

The Political Economy of the Trans Pacific Partnership
The Political Economy of the Trans Pacific PartnershipThe Political Economy of the Trans Pacific Partnership
The Political Economy of the Trans Pacific Partnership
Ira Kristina Lumban Tobing
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
Ganesh Kondal
 
Good governance guidelines independence and transparency.
Good governance guidelines independence and transparency.Good governance guidelines independence and transparency.
Good governance guidelines independence and transparency.
Ira Kristina Lumban Tobing
 
Colour Blindness Ishihara Charts
Colour Blindness Ishihara ChartsColour Blindness Ishihara Charts
Colour Blindness Ishihara Charts
Somya Tyagi
 
coagulation system
coagulation systemcoagulation system
coagulation system
derosaMSKCC
 

Destacado (20)

20140818内刊投稿(刘胜)技术创新和专利申请.图文版v3.3
20140818内刊投稿(刘胜)技术创新和专利申请.图文版v3.320140818内刊投稿(刘胜)技术创新和专利申请.图文版v3.3
20140818内刊投稿(刘胜)技术创新和专利申请.图文版v3.3
 
Startup program details
Startup program detailsStartup program details
Startup program details
 
PCI DSS-based Security: Is This For Real? by Dr. Anton Chuvakin
PCI DSS-based Security: Is This For Real? by Dr. Anton ChuvakinPCI DSS-based Security: Is This For Real? by Dr. Anton Chuvakin
PCI DSS-based Security: Is This For Real? by Dr. Anton Chuvakin
 
The Political Economy of the Trans Pacific Partnership
The Political Economy of the Trans Pacific PartnershipThe Political Economy of the Trans Pacific Partnership
The Political Economy of the Trans Pacific Partnership
 
UNCTAD OECD Sixteenth Report on G20 Investment Measures
UNCTAD OECD Sixteenth Report on G20 Investment MeasuresUNCTAD OECD Sixteenth Report on G20 Investment Measures
UNCTAD OECD Sixteenth Report on G20 Investment Measures
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
Símbolos patríos del perú
Símbolos patríos del perúSímbolos patríos del perú
Símbolos patríos del perú
 
Better Living Through Storytelling
Better Living Through StorytellingBetter Living Through Storytelling
Better Living Through Storytelling
 
Olga Markina et Francois Laprade avec la Chine
Olga Markina et Francois Laprade avec la ChineOlga Markina et Francois Laprade avec la Chine
Olga Markina et Francois Laprade avec la Chine
 
Presentacion de tecnologia
Presentacion de tecnologiaPresentacion de tecnologia
Presentacion de tecnologia
 
Good governance guidelines independence and transparency.
Good governance guidelines independence and transparency.Good governance guidelines independence and transparency.
Good governance guidelines independence and transparency.
 
Incorta Data Security
Incorta Data SecurityIncorta Data Security
Incorta Data Security
 
Canada - Ukraine Free Trade Agreement: A Primer for the Canadian Lawyer
Canada - Ukraine Free Trade Agreement: A Primer for the Canadian LawyerCanada - Ukraine Free Trade Agreement: A Primer for the Canadian Lawyer
Canada - Ukraine Free Trade Agreement: A Primer for the Canadian Lawyer
 
Colour Blindness Ishihara Charts
Colour Blindness Ishihara ChartsColour Blindness Ishihara Charts
Colour Blindness Ishihara Charts
 
Presentación tpp
Presentación tppPresentación tpp
Presentación tpp
 
APEC: Cooperación Económica Asia Pacífico
APEC: Cooperación Económica Asia PacíficoAPEC: Cooperación Económica Asia Pacífico
APEC: Cooperación Económica Asia Pacífico
 
Si proyecto feria tec 7°
Si proyecto feria  tec 7° Si proyecto feria  tec 7°
Si proyecto feria tec 7°
 
7º blogger indicadores copia
7º  blogger indicadores copia7º  blogger indicadores copia
7º blogger indicadores copia
 
Dumping
DumpingDumping
Dumping
 
coagulation system
coagulation systemcoagulation system
coagulation system
 

Similar a 20150528联动技术大讲堂15(刘胜)业务系统上线标准指引

王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
YANGL *
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
ahnlabchina
 
Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0
ahnlabchina
 
1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事
llkk0914
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
 
微信201204
微信201204微信201204
微信201204
drewz lin
 
微信之道201204
微信之道201204微信之道201204
微信之道201204
shaomeng shi
 

Similar a 20150528联动技术大讲堂15(刘胜)业务系统上线标准指引 (20)

众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
 
Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0
 
1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
OpenStack Network Planning
OpenStack Network PlanningOpenStack Network Planning
OpenStack Network Planning
 
CDP方案介绍
CDP方案介绍CDP方案介绍
CDP方案介绍
 
MCCC Lab
MCCC LabMCCC Lab
MCCC Lab
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
 
Sae
SaeSae
Sae
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
 
微信201204
微信201204微信201204
微信201204
 
微信之道201204
微信之道201204微信之道201204
微信之道201204
 

Más de liu sheng

20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
liu sheng
 
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
liu sheng
 
20150211支付清算协会分布式架构研究与设计参考 v1.0.0211
20150211支付清算协会分布式架构研究与设计参考 v1.0.021120150211支付清算协会分布式架构研究与设计参考 v1.0.0211
20150211支付清算协会分布式架构研究与设计参考 v1.0.0211
liu sheng
 
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
liu sheng
 

Más de liu sheng (12)

20160315内刊投稿(刘胜)区块链研究综述v1.1.0331
20160315内刊投稿(刘胜)区块链研究综述v1.1.033120160315内刊投稿(刘胜)区块链研究综述v1.1.0331
20160315内刊投稿(刘胜)区块链研究综述v1.1.0331
 
20160230联动技术大讲堂xx(刘胜)区块链应用研究1初探v1.2.0305
20160230联动技术大讲堂xx(刘胜)区块链应用研究1初探v1.2.030520160230联动技术大讲堂xx(刘胜)区块链应用研究1初探v1.2.0305
20160230联动技术大讲堂xx(刘胜)区块链应用研究1初探v1.2.0305
 
20160301内刊投稿(刘胜)区块链应用初探v1.doc
20160301内刊投稿(刘胜)区块链应用初探v1.doc20160301内刊投稿(刘胜)区块链应用初探v1.doc
20160301内刊投稿(刘胜)区块链应用初探v1.doc
 
20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
20150820支付清算协会分布式架构研究与设计参考 v2.0820正式版
 
20151113 uptc(刘胜)联动优势技术之路v6.1112.out
20151113 uptc(刘胜)联动优势技术之路v6.1112.out20151113 uptc(刘胜)联动优势技术之路v6.1112.out
20151113 uptc(刘胜)联动优势技术之路v6.1112.out
 
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
20150925联动技术大讲堂xx(刘胜)初创企业知识产权保护和专利挖掘实践.out
 
20150211支付清算协会分布式架构研究与设计参考 v1.0.0211
20150211支付清算协会分布式架构研究与设计参考 v1.0.021120150211支付清算协会分布式架构研究与设计参考 v1.0.0211
20150211支付清算协会分布式架构研究与设计参考 v1.0.0211
 
20150111专利知识和专利申请实践(刘胜)号码集合和网络认证.84p.pptx
20150111专利知识和专利申请实践(刘胜)号码集合和网络认证.84p.pptx20150111专利知识和专利申请实践(刘胜)号码集合和网络认证.84p.pptx
20150111专利知识和专利申请实践(刘胜)号码集合和网络认证.84p.pptx
 
20141212联动优势(刘胜)北京公交一卡通平台架构演进参考.v1.1.1218
20141212联动优势(刘胜)北京公交一卡通平台架构演进参考.v1.1.121820141212联动优势(刘胜)北京公交一卡通平台架构演进参考.v1.1.1218
20141212联动优势(刘胜)北京公交一卡通平台架构演进参考.v1.1.1218
 
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
20141204支付清算行业分布式系统架构设计研究报告(草案)联动优势刘胜.doc
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 

20150528联动技术大讲堂15(刘胜)业务系统上线标准指引

  • 2. 2 热点事件  昨天——  支付宝大面积瘫痪,缘由杭州萧山的一根光缆被挖断了。什么 互联网+,什么4.0,什么大数据,都顶不住传统行业的一铲 子。这一战,蓝翔赢了。  今天——  携程彻底瘫痪。所有节点代码被删除,数据库也被删除了。  某某回复: 现在情况是所有节点上的业务代码被干掉了,业 务部门都在忙着部署,所有发布日志没有了,具体原因在差, 内部推测可能是内部报复。  看这架势,应该没备份,或者备份不同步,备份数据过老。否 则恢复很快,不至于新闻公布出来。  应该不是代码上传服务器自动删除的事,是这样的话,换新的 服务器环境就ok了,最多2个小时就可以搞定。这么长时间还 不行,只能说是数据出问题了。估计备份也受损了。  5个小时还没修好,估计真要挂了。
  • 3. 3 小调查  《联动风采》2015第一季  『业务系统上线标准指引』  开源BS3框架  http://10.10.67.45:18080/svn3/  /docs/20150122-UMP_DEV_online-system-requirements- outline-v0.7.0512.10.pdf 看过  进一步阐述 没看  更应该了解
  • 5. 5 1.引言  1 引言  背景,目的,涉众,术语  2 上线参考要求  三大能力要求  三大测试要求  三大规范要求  3 附录  上线要求快速检查表
  • 6. 6 软件开发文档  软件需求规格说明书 /SRS  软件接口设计说明书 /外部接口  软件概要设计文档 /总体设计  软件详细设计文档  软件功能测试计划  软件功能测试报告  软件性能测试报告  软件安全测试报告  软件验收测试报告  软件系统上线步骤  …  源代码 Jack W. Reeves @ C++ Journal 1992,What Is Software Design? ——Code As Design 2005,What Is Software Design: 13 Years Later 2005,Letter to the Editor
  • 7. 7 需求规格说明书  Software Requirements Specification(SRS)  功能性需求 Functional Requirements  非功能性需求 Non-Functional Requirements  例:能满足100个人同时使用,页面反应时间不能超过6秒;  例:能7×24连续运行,年非计划宕机时间不能高于8小时; 软件体系架构 (关键需求决定架构,其余需求验证架构) 功 能 性 需 求 非功能性需求 高 可 用 , 高 可 靠 高 性 能 , 高 扩 展 多 功 能 , 高 扩 展 易 用 性 , 可 测 试 安 全 性 , 健 壮 性 可 复 用 性 互 操 作 性 可 维 护 性 可 移 植 性
  • 8. 8 需求的重要性  事实1:缺陷在系统中的时间越长,解决它的代价就越大! 【债务】  事实2:一半以上的软件缺陷是在需求阶段引入的。 【不幸】  事实3:有接近一半的软件功能模块,从未被使用。 【Excel】 表1. 摘自《代码大全》 发现BUG阶段 需求 架构 建设 系统测试 发布之后 引入 BUG 阶段 需求 1 3 5~10 10 10~100 架构 -/- 1 10 15 25~100 建设 -/- -/- 1 1 10~25 图 1.不同阶段缺陷引入的分布 图2.IT项目实际功能模块使用频率的分布
  • 9. 9 非功能需求  定义  需求=功能+质量+约束  质量=场景+定量  分类  功能性需求~表面功能  非功能需求~潜在质量  需求大局观  关键需求决定架构  其余需求验证架构 重要性 紧 急 性 功能性 需求 非功能 需求 1.重要不紧急 2.重要且紧急 3.紧急不重要
  • 10. 10 FQC原则 分布式系统CAP定律 (Eric A. Brewer 2000) ——————————— Consistency 一致性 Availability 可用性 Partition tolerance 分布性 需求分析的FQC原则 (刘胜 2014) ———————————— Functional Features 功能需求 Quality 质量需求 Cost reduction 成本需求 Cost reduction Pick Two !
  • 11. 11 我司现状+案例2 可行性分析  可行性分析报告 需求分析  需求规格说明书 软件设计  概要设计,详细设计 编码实现 软件开发生命周期(SDLC) 软件测试  功能、性能、安全 运行和维护 部署/上线 运行/监控 维护/升级 需求反馈 (非功能性需求) 需求定义 (功能性需求) 前期 (xx周,xx月) 中期 (xx周,xx月) 后期 (xx年) 非功能需求一般很笼统,但考虑非功能目标要趁早! 盲点 & 要点
  • 12. 12 涉众组织  需求:由事业部的产品团队提出需求  设计:由事业部的开发团队完成设计。  评审:由事业部的开发团队提出,有架构师和DBA参与  功能测试:由事业部的测试团队完成功能测试;  性能测试:由技术发展中心完成性能测试评估;  安全测试:由技术发展中心完成安全检测评估;  部署:由网络与运行中心完成部署上线;  运维:由网络与运行中心进行后期运维;
  • 13. 13 相关术语  单点故障(Single Point of Failure)  纵向扩展(Scale-Up)  横向扩展(Scale-Out)  负载均衡(Load Balance)  故障转移(Fail Over)  故障恢复(Fail Back)  灾难恢复(Disaster Recovery)  流量控制(Flow Control)  功能测试(Functional Testing)  性能测试(Performance Testing)  负载测试(Load Testing)  压力测试(Stress Testing)
  • 15. 15 上线参考要求  三大能力要求  横向扩展能力*5项  故障转移能力*2项  流量控制能力*3项  三大测试要求  功能测试报告*2项  性能测试报告*4项  安全检测报告*4项  三大规范要求  应用发布规范*5项  应用部署规范*1项  应用运行规范*4项 凡事预则立,不预则废。
  • 16. 16 不同维度 需求/设计/评审 测试 运维 高扩展 3.1横向扩展能力 3.1横向扩展能力 高可用 3.2故障转移能力 3.3流量控制能力 3.2故障转移能力 3.3流量控制能力 高性能 3.5性能测试 3.7.4隔离静态资源 安全性 3.6安全检测 易测试 3.4功能测试 易配置 3.7.2参数配置 易部署 3.7应用发布规范 3.8应用部署规范 易监控 3.9.1健康状态检查 3.9.2运行状态检查 易维护 3.9.3业务日志规范 3.9.4增量数据规划 …
  • 17. 17 各小章节 4功能测试/黑盒测试 4功能测试/白盒覆盖率 5性能测试/单机性能*1 5性能测试/集群性能*4 5性能测试/弹性负载 5性能测试/服务耦合 6安全检测/安全认证 6安全检测/安全传输 6安全检测/非法注入 6安全检测/移动客户端 1横向扩展/负载均衡器 1横向扩展/应用系统 1横向扩展/消息队列 1横向扩展/关系数据库 1横向扩展/非关系型库 2故障转移/后台服务 2故障转移/后台数据库 3流量控制/分流 3流量控制/限流 3流量控制/降级 7发布/目录结构 7发布/启停脚本 7发布/参数配置/动静分离 7发布/隔离静态资源 7发布/自动化打包 8部署/自动化部署 9运行/健康状态检查 9运行/运行状态检查 9运行/业务日志规范 9运行/增量数据规划
  • 18. 18 2.1 故障转移能力  故障节点  后台服务系统  流量控制/分流  后台数据库 !!!  解决方案  应用级解决方案  TDDL,UDDS(动态数据源)  中间层解决方案  DRDS,UDAL(数据访问层)  必备工具  数据复制中心  服务配置中心
  • 19. 19 2.2 横向扩展能力  相关节点  负载均衡器 如 LVS/HaProxy/Nginx等  应用系统 如 Tomcat/Resin等  消息队列 如 ActiveMQ/Kafka等  非关系型库 如 Memcached/Redis/MongoDB等。  关系数据库 如 DB2/Oracle/MySql等  …  存储、网络、机房、城市  能力分级  1.单点:存在单点故障;  2.主备:两个互为主备,无单点,存在性能瓶颈;  3.双活:两个同时工作,无单点,也无性能瓶颈;  4.多活:多个同时工作,无单点,也无性能瓶颈;
  • 20. 20 2.3 流量控制能力  概念:  指控制发送方的发送数据量,使其不超过接收方的接收能力。  目的:  有效地防止由于网络中瞬间的大量数据对网络和服务器带来的 冲击,保证网络和服务器系统高效而稳定的运行。  分类:  网络流量控制:是针对在单位时间内的网络带宽、被发送到网 络中的数据量,或者是最大速率的数据流量发送。  服务流量控制:主要是针对单位时间内的服务请求数量进行控 制,及时分流或限流,防止后台某单一服务器的过载,而无法 响应用户请求,甚至导致整个服务器集群的“雪崩”。  控制——分流、降级、限流
  • 21. 21 2.3.1 分流  相关节点  业务应用  数据库 【读写分离/多读,多写】  场景:已具备横向扩展能力  实现:  模式1:负载均衡器 【如LVS,Ha-Proxy,Nginx】  模式2:服务查找器 【如DNS,服务配置中心】  相关:  灰度发布  AB测试
  • 22. 22 2.3.2 降级  节点  业务应用  数据库 不具备  场景:无法通过分流解决服务可用性问题  实现:将非关键业务降级  关闭推荐应用,以减少数据库和服务资源占用;  非关键的业务信息不进行更新,如商品价格;  远程配置服务改为本地访问内存方式;  …  相关:
  • 23. 23 2.3.3 限流  节点:  业务应用  数据库 不具备  场景:无法通过分流和降级解决服务可用性问题  实现:  访问接入层/代理服务:可通过配置限制前端访问流量;  服务端应用:可通过队列大小,滑动窗口,超时时间等机制, 控制系统内部单位时间的交易处理数量。  相关:
  • 24. 24 2.4 功能测试指标  黑盒测试 ——出具“测试报告”  白盒测试 ——检查测试覆盖率,暂不作要求  兼容性测试  针对Web UI应用  不同浏览器下的兼容性测试:包括IE,Firefox,Chrome等  不同J2EE容器的兼容性测试:包括Resin-3.x/4.x和Tomcat-7x/8x等。  针对手机客户端UI应用  iOS客户端——两代iPhone手机,两个以上iOS版本  手机:4/4s,5c/5s,6/6plus  版本:6.x,7.x,8.x,..  Android客户端——  手机:五个厂商十款不同手机  版本:两个以上Android版本(4.x,4.4,5.x)
  • 25. 25 2.5 性能测试指标  环境  硬件标配参考:x64双核CPU,8G内存,普通磁盘  性能测试  单机性能测试+稳定性测试  集群性能测试+稳定性测试  弹性负载测试  服务依赖测试
  • 26. 26 2.5.1 单机&集群  3.5.1 单机性能测试 & 3.5.2 集群性能测试  前提:  除了依赖数据库、缓存等外,不依赖其他后台子系统;  依赖后台子系统,但响应延迟时间在可控范围内(<1s)  补充要求:  2机集群性能至少达到单机性能的1.7倍;  4机集群性能至少达到单机性能的3倍; 业务系统(单机系统) 并发用户数 TPS/QPS Rt(Delay) 测试时间 非核心系统(×1) >=100 >=200 <=6s 24小时 核心系统(×1) >=300 >=1000 <=6s 72小时 业务系统(多机集群) 并发用户数 TPS/QPS Rt(Delay) 测试时间 非核心系统(×4) >=400 >=600 <=6s 24小时 核心系统(×4) >=1200 >=3000 <=6s 72小时
  • 27. 27 2.5.3 弹性&耦合  3.5.3 弹性负载测试  步骤:  单机3倍负载压力, 连续15分钟超负荷压力测试;  中止压力测试客户端, 等待30分钟,无明显下降;  恢复1倍负载压力, 进行15分钟标准压力测试;  3.5.4 耦合性负载测试  原因:后台子系统的响应延迟时间不可控  目标:解除紧耦合关系,具备一定容错能力 业务系统(单机系统) 并发用户数 TPS/QPS Rt(Delay) 测试时间 核心系统(×1) >=300 >=3000 <=6s 1小时 后台子系统延迟 并发用户数 TPS/QPS Rt(Delay) 测试时间 固定延迟120s 大于等于100 大于等于200 <=60s 1小时 随机延迟1~120s 大于等于300 大于等于1000 <=60s 1小时
  • 28. 28 2.6 安全检测评估  应用类型  对外提供Web服务  漏洞扫描、渗透入侵  对外提供App客户端  混淆、加壳、反篡改、反分析  参考文档  华为Web安全测试规范_V1.2.1.doc  绿盟远程安全评估系统(漏洞管理系列)用户手册.pdf  光荣之路系列测试培训-安全测试.pdf  OWASP 安全编码规范  OWASP 测试指南  OWASP 风险评级方法论  (通付盾)移动应用支付安全三战法.pdf
  • 29. 29 2.6.1 安全认证问题  身份认证的要求:  认证过程信息安全:不允许传输密钥,而是用密钥参与MAC运算,再做比对。  认证过程传输安全:如通过SSL方式传输;  认证信息保存安全:服务端不保存密钥;或仅保存密钥的哈希值;  会话管理的要求:  会话信息脱敏性:会话信息中不保存敏感信息,如密码、身份证等。  会话信息安全性:会话只允许授权访问,不允许匿名访问或修改。  会话管理可扩展:会话管理器不是单点,建议采用分布式架构。 第一类认证 第二类认证 典型案例 SMPP/CMPP/… HTTP-Auth(BASIC,DIGEST) 独立认证请求报文 独立认证请求报文 无 每次携带认证信息 否 每次携带认证信息 状态性 有状态 无状态 高扩展性 难,依赖分布式会话服务 易,可以透明地横向扩展 故障转移 无 有 性能优化 提高客户端性能 保护服务端性能 防重放攻击 简单 无,每次使用相同认证信息/Basic; 有,每次使用不同认证流水/Digest
  • 30. 30 2.6.2 安全传输问题  内部传输:  对外提供访问的IT系统,应该与核心系统的网段隔离。  部署在非核心网段上;  当其访问核心网段时,需由网络部提供合适的访问端口和服务  外部传输:  对外提供访问的IT系统,当涉及敏感信息时,  必须通过SSL等方式进行加密传输;  对用户上传的文件,必须进行充分合理的检查验证;  确保文件完整性; 【CRC,MAC】  确保文件不被篡改; 【MAC,签名】  确保上传目录范围,无可执行权限;【防止木马、病毒等】
  • 31. 31 2.6.3 非法注入问题  原因:  应用程序缺少对输入进行安全性检查,攻击者把一些包含指令 数据发送给解释器,解释器会把收到的数据转换成指令执行。  类型:  SQL注入  导致整个数据库可被读写与修改;  攻击者还可能得到整个数据库访问权限或系统账户的访问权限;  攻击者甚至能得到操作系统管理员的权限;  OS Shell注入  LDAP注入  XPath注入  Hibernate注入  …
  • 32. 32 2.6.4 客户端APP安全*  方案1——封闭体系(iOS,TrustZone,TSM)  方案2——  防止逆向分析 (-反编译)  防止恶意篡改 (-被篡改)  防止被动态注入 (-动态跟踪)  数据的二次加密 (-数据窃取) —加固— 反分析 移动客户端APP安全解决方案 —密信— 反篡改 —风控— 行为分析
  • 33. 33 2.7 应用发布规范  3.7.1. 目录结构  3.7.2. 参数配置  3.7.3. 起停脚本  3.7.4. 隔离静态资源  3.7.5. 自动打包脚本
  • 34. 34 2.7.1 目录结构  3.7.1 目录结构  Applications  重启脚本  日志目录  配置参数  静态  动态  WebApps  静态资源  日志目录 $(APPNAME) ----启停脚本:start.sh,stop.sh,restart.sh ----日志配置:log4j.properties 或 logback.xml ----./lib 全部依赖库(*.jar) ----./log 通过ln建立的软链接 ----./conf 静态配置参数文件 $(WEBAPPNAME) ----启停脚本:start.sh,stop.sh,restart.sh ----日志配置:log4j.properties 或 logback.xml ----./WEB-INF ----./WEB-INF/classes ----./WEB-INF/lib ----./WEB-INF/conf ----./WEB-INF/jsp ----./static 静态文件(jpg/css/js等) ----./log 通过ln建立的软链接
  • 35. 35 2.7.2 参数配置  3.7.2 参数配置  补充:待上线的业务系统,必须提供自动化打包脚本,生成单一部署文 件,在目标主机上解压即可运行,而无需再修改配置文件,从而为自动 化部署提供方便。  3.7.3 启停脚本  自动化运维  3.7.4 隔离静态资源  性能  3.7.5 自动打包脚本  自动化部署 启动参数 说明 配置方式 静态配置 启动时所需,相对固定的配置参数。测试环境和生产环境 的配置完全相同;多机部署时不同主机的配置完全相同。 如:组件依赖关系等。 本地化: 配置文件 动态配置 启动时所需,经常修改的配置参数。测试环境和生产环境 的配置有所不同;多机部署时不同主机的配置有所不同。 如:涉及权限的用户名和密码,数据库连接池大小,线程 池大小等。 集中化: 配置中心
  • 36. 36 2.8 应用部署规范  3.8.1 自动部署脚本  参考步骤——  以普通用户登录主机,进入相应目录;  通过URL下载获取单一部署文件(tar、jar、war格式);  执行文件完整性校验;  解压部署文件(或者将war复制到J2EE容器相应位置);  执行config.sh脚本,完成jdk版本检测、log目录初始化等工作。  执行start.sh脚本,启动应用进程;  补充改进——  与Web管理平台集成;  与Docker工具集成; 增量部署 vs. 全量部署
  • 37. 37 2.9 应用运行规范  3.9.1 健康状态输出  业务调用接口——响应状态,响应时间;  运行指标接口——内存大小,缓存对象大小,队列大小等  3.9.2 运行指标输出——运行时产生指标参数  3.9.3 业务日志规范  避免重复日志——简要日志,STDOUT,  简要日志规范——  日志级别规范——  日志切换规范——周期(小时)  3.9.4 增量数据规划  日志文件,静态文件,数据库  备份周期?增量or全量?压缩?日志合并?NAS/磁带?
  • 38. 38 3.附录:上线系统快速检查表 检查项 类型 评估效果 补充说明 1.1 横向扩展/负载均衡器 硬件|软件 0缺失|1单点|2主备|3多活 1.2 横向扩展/应用系统 WEB|TCP 1单点|2主备|3多活 1.3 横向扩展/消息队列 集中|集群 1单点|2主备|3双活|4多活 1.4 横向扩展/关系数据库 DB2|MySql|… 1单点|2主备|3多读|4双写或多写 1.5 横向扩展/非关系型库 MC|Redis|… 1单点|2主备|3多读|4双写或多写 2.1 ○ 故障转移/后台服务 0缺失|1下次转移|2本次转移 2.2 ○ 故障转移/后台数据库 0缺失|1下次转移|2本次转移 3.1 ○ 流量控制/分流 0缺失|1具备 3.2 流量控制/限流 0缺失|1具备 3.3 流量控制/降级 0缺失|1具备 4.1 ● 功能测试/黑盒测试 0缺失|1测试通过 用例数=___ 4.2 功能测试/白盒覆盖率 (暂不检查) 4.3 功能测试/兼容性测试 Web-UI| 客户端 环境__;版本__ 5.1 ○ 性能测试/单机性能*1 QPS/TPS/Delay 并发数=___ 5.2 ○ 性能测试/集群性能*4 QPS/TPS/DT/*N 并发数=___ 5.3 性能测试/弹性负载 0缺失|1具备弹性 5.4 性能测试/服务耦合 0缺失|1松耦合/具备容错性 6.1 ○ 安全检测/安全认证 0缺失|1部分|2全部 6.2 ○ 安全检测/安全传输 0缺失|1部分|2全部 6.3 ○ 安全检测/非法注入 0严重|1轻微|2无 7.1 ● 发布/目录结构 0不符|1符合 7.2 ● 发布/启停脚本 0不符|1符合 7.3 ● 发布/隔离动态匹配值 0不符|1动静分离|2配置中心 7.4 ● 发布/隔离静态资源 0缺失|1具备 7.5 ● 发布/自动化打包 0缺失|1具备 8.1 ● 部署/自动化部署 0缺失|1具备 9.1 ○ 运行/健康状态检查 0缺失|1部分|2全部 9.2 ○ 运行/运行状态检查 内存|线程|队列 0缺失|1部分|2全部 9.3 ● 运行/业务日志规范 重复|切换|简要 0不符|1符合 9.4 ○ 运行/增量数据规划 日志|文件|DB 0缺失|1部分|2全部
  • 40. 40 参考资料  20150304联动优势2015技术路线图(刘胜) v3.0324.pptx  20150122联动优势业务系统上线标准指引(技术发展中心 )v0.7.0421.9.docx  20150122联动优势业务系统上线标准指引(技术发展中心 )v0.7.0512.10.pdf  20150216内刊投稿(刘胜)业务系统上线标准指引 v1.0.doc  公开课-研发骨干进阶架构师的15项修炼-2015年6月11-13 日-北京.docx  http://wdhdmx.iteye.com/blog/1553506 《一线架构师 实践指南》读书笔记
  • 41. 41 集群方式 说明 可用性% 年停机 单机方式 1 -(88/24/365) 99(假设) 87.6H 双机集群 1 -(88/24/365)^2 99.99 53m 三机集群 1 -(88/24/365)^3 99.9999 32s 1 概念:系统可用性 系统可用性 = 运行时间 / (运行时间+停机时间) 集中式高可用 vs. 分布式高可用 术语 说明 可用性% 年停机 容灾 说明 Available 较可用 99 87.6H 无 一般业务 Highly Available 高可用 99.9 8.8H 局部 故障恢复,主备 Extremely Available 极可用 99.99 53m 较强 自动故障转移 Most Available 最可用 99.999 5m 最强 自动灾难恢复 可 用 性 级 别 99% 投入成本 99.9% 99.99% 99.999%