SaaS云

读书笔记《站在云端的SaaS》 文杰(四)

2024-04-06  本文已影响0人  爱上鱼的猫_产品狗

读书笔记《站在云端的SaaS》 文杰(三)
读书笔记《站在云端的SaaS》 文杰(二)
读书笔记《站在云端的SaaS》 文杰(一)

2024/3/29

第17章 性能和可靠性

IaaS包括存储、服务器以及网络。

存储

云存储方案,虚似存储(Storage Virtualization)就是把多个存储介质模块通过一定的手段集中管理起来,所有的存储模块在一个存储池中,以便统一管理。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输的存储系统。

虚似存储的好处:
  1. 实现了存储资源池化和共享。
  2. 存储虚似化还可以利用旧,继续发挥一些老旧存储系统。
  3. 提供一些高级的管理特性。
  4. 简化管理。
  5. 提高安全性、可用性、扩展性。

服务器

服务器的性能和可用性要从可扩展性方面过最行考虑。对于服务器的扩展,包括横向扩展和纵向扩展。

横向扩展指的是增加服务器设备的数量。在性能方面,通过增加服务器数量可以提升并行计算情况下的处理能力,将需要并行处理的作业分发给多台服务器同时进行。在可用性方面,增加的服务器设备可以用于构建高可用集群,在主服务器发生故障而不可用时,启用备份服务器。
纵向扩展指的是增加单台服务器设备的处理能力。
服务器虚拟化,是指将单台硬件服务器中的软件环境分割为多个独立分区,每个分区均可以按照需要模似服务器的一项技术。

网络

可用性:一是网络线路的冗余,对于公有云,需要考虑出口网络分别采用两个网络服务提供商提供冗余的Internet接入服务,以保障可用性。二是网络设备的冗余。

PaaS层包括操作系统、数据库、应用服务器中间件

操作系统

支撑SaaS系统运行的服务器操作系统,主要是配合硬件服务器虑似技术提供上层应用的运行环境。

数据库
中间件

典型WVE系统的拓扑图,解决方案。

SaaS

SaaS是最终要为用户提供服务的软件系统。


性能开发生命周期-PDL.png
PDL性能生命周期方法
  1. Pre-PDL——培训
  2. 第1阶段-需求
    在需求阶段,应该确定SaaS系统要达到的性能指标。
  3. 第2阶段-设计
    性能瓶劲分析
    根据需求阶段输出的功能和场景说明以及性能指标,进行性能瓶颈分析,对可能产生性能问题的功能和无法满足的性能需求进行性能瓶颈分析。分析结果将作为深入设计分析和优化的重点。
    建立并遵照设计最佳实践
    设计阶段要结合具体的设计过程,要兼顾所做的设计决策对性能方面所产生的影响。
  4. 第3阶段-开发
    在开发阶段,要遵循性能开发方面的最佳实践。
  1. 第4阶段-测试
    性能测试是决定SaaS系统是否满足需求阶段确定的性能质量标准的最终验证环节。
    负载/压力测试
    1)单点性能测试,对关键功能或全部系统功能的每一个做单独的大数据量测试和负载/压力测试。
    2) 场景化测试,根据估算模似实际系统运行服务场景进行负载/压力测试,对整体体系系应用场景相关的所有功能进行并发性能没测试,寻找可能被忽略的性能瓶劲点以及功能之间是否有性能方面的影响。
    验证性能质量标准
    根据需求阶段提出的性能质量标准,对性能测试报告结果进行验证。
  2. 第5阶段-发布
    发布阶段是当SaaS系统已经符合各项质量标准,即准备好上线发布或升级工作。
  3. Post-PDL 响应
    持续关注响应计划并加以完善

集群

集群是一组协同工作的服务节点,用以提供比单一服务节点更具扩展性与可用性的服务平台。

集群系统的主要优点如下:
集群特点可扩展性和高可用性

可扩展性。集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。
高可用性。集群通过服务实体冗余使客户端免于轻易遇到out of service 的警告在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

集群具备的4大能力
什么是高可用性

计算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无敌障时间越长。可维护性用平期维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR)*100%。

集群的分类:

高可用集群(High Availability Cluster)、负载均衡集群(Load Balance Cluster)、高性能科学计算集群(High Performance Computing Cluster)

高可用集群(High Availability Cluster)

简称HA集群,这类集群致力于提供高度可靠的服务。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。

#######HA集群的三种工作方式

  1. 主从方式(非对称方式)
  2. 双机双工方式(互备互援)
  3. 集群工作方式(多服务器互备方式)
负载均衡集群(Load Balance Cluster)

负载均衡集群中所有的节点都处于活动状态,使任务可以在集群中尽可能平均地分摊到不同的计算节点进行处理,充分利用集群的处理能力,提高对任务的处理效率。

高性能科学计算集群(High Performance Computing Cluster)

简称HPC集群,提供强大的计算能力。开发运行专门的关行应用程序,它可以把一个问题的数据分布到多台计算机上,利于这些计算机共同资源来完成计算任务。

2024/4/4

第18章 搜索技术

搜索的商业价值

  1. 利用搜索广告 创造商业价值。如google和百度
  2. 利用搜索内容创造商业价值。如视频网站
  3. 利用与搜索内容相关的实体产业创造商业价值。如淘宝
  4. 将搜索作为SaaS系统增值的亮点功能实现商业价值。如企业级搜索
  5. 搜索隐私保护。禁止过度利用用户个人隐私信息过度商业化。

三种搜索的特点

三种搜索的特点.png

互联网搜索引擎和企业级搜索引擎对比

互联网搜索引擎和企业级搜索引擎对比.png
2024/4/7

第19章 富客户端和瘦客户端技术

客户端分为:胖客户端、富客户端、瘦客户端

三种客户端类型及特点.png

胖客户端:代表360系统安全助手

胖客户端C/S架构

最早的网络化软件系统是C/S架构,体系界面基于胖客户端技术实现,后端直接连接数据库。


胖客户端C/S架构.png

胖客户端C/S/S架构

C/S/S架构,特点就是将业务逻辑提取到中间服务器层,对于客户端更新的问题也可台利用这个中间服务器进行控制,从而实现客户端自动更新,但首次部署还是需要进行安装或实施工作。


胖客户端C/S/S架构.png

瘦客户端:代表google

瘦客户端(Thin Client)指客户端到服务器的网络服务体系中,客户端基本无需安装任何应用程序的客户终端。它通过特定的协议和服务器通信,进而接入网络。


瘦客户端架构.png

富客户端

富互联网应用(Rich_Intemnet Applications。RIA运行在虚拟机之上,具备马上成为一个全功能桌面程序的潜力。与那些只需要从服务器上下载而来、只能显示简单内容的 Web页面不同的是,RIA却是的的确确运行在客户端的,就像在客户端/服务器端那个年代一样,能够在本地处理很多的数据(例如,排序、分组、过滤)。RIA应用程序使用异步客户/服务器架构连接现有的后端应用服务器。


富客户端架构.png

富客户端开发技术

  1. Macromedia Flash/Flex
  2. Laszlo
  3. Adobe AIR
  4. avalon
  5. Sileverlight
  6. Java SWT
  7. java Web Start
  8. XUL
  9. EXT
  10. Bindows

客户端选型

客户端选型全过程.png
2024/4/8

第20章 管理模式:流程、人员、团队文化

2024/4/11

第21章 研发理念和角色定位

目前比较流行的研发管理模式

IPD

IPD是指集成产品开发(Intergrated Product Development,简称IPD)是一套开发的模式、理念与方法,我们通常称之为矩阵式研发管理模式。
IPD的核心思想
1)新产品开发是一项投资决策:IPD强调要对产品开发进行有效的综合分析,并在开发过程设置检查点,通过阶段性评审来决定项目是继续、暂停、终止,还是改变方向。
2)基于市场的开发:IPD强调产品创新一定是基于市场需求和竞争分析的创新。为此,IPD 把正确定义产品概念、市场需求作为流程的第一步,从开始就把事情做正确。
3) 跨部门、跨系统的协同:采用跨部门的产品开发团队(Product Development Team,PDT),通过有效的沟通、协调以及决策,达到总将产品推向市场的目的。
4) 基于平台的异步研发和重用模式,也称并行工程:即通过严密的计划、准确的接口设计,把原来许多后续活动提前进行,这样也可以缩短产品上市时间。采用公用构建模块的重用性(Common Building Block,CBB)提高产品开发的效率。
5) 结构化的并行研发流理:产品开发项目的帽对不通定性,要求开发流程在非结构化与过于结构化之间找到平衡。
整个产品研发周期我们可以划分为9个阶段,分别是:产品规划、产品立项、产品概念、产品设计、产品开发、产品发版、产品上市 、产品服务、产品退市。

RUP

Rational统一过程是Rational软件公司创建的软件工程方法。

RUP的主要特征
1) 采用迭代的、增量式的开发过程
2) 采用UML语言描述软件开发过程,UML(Unified Modeling Language,统一建模语言)是一种用于对软件密集型系统进行可视化、描述、构造和文档化的图形语言。
3)有一系统Rational公司软件支撑工具。

RUP的核 心思想和框架

RUP是一个基于6个最佳开发实践的流程定义方法

UCD

以用户为中心的设计(User-Centered Design,简称UCD)

UCD包含4种行为
1)定义使用场景。明确产品的目标用户,了解用户用产品做什么、了解用户将在什么条件下使用产品。
2)定义需求。明确如果产品能够成功,其必须满足的商业需求或用户目标。
3)创造设计方案。设计方案按照几个步骤,从粗糙的概念原型到完整的细节设计逐步完成。
4)设计评估。设计评估是流程中重要部分。理想情况下,应该使用真实的用户进行可行性测试。
UCD流程需要的4个步骤:
用户研究=>需求分析=>用户调研=>设计结果验证

Scrum

Scrum是一种轻量级的软件开发方法。它是一个敏捷开发框架,是一个增量的、迭代的开发过程。
Sprint:整个开发周期包括若干个小的迭代周期,每个小迭代周期称为一个Sprint,每个Sprint的建议周期是2-4周。
Backlog:使用产品Backlog来管理产品或项目的需求。产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。

1) 敏捷价值观之敏捷宣言

2) 敏捷价值观之敏捷原则

Scrum的组成
3个角色:产品负责人、团队Master、Scrum团队。
4个会议:Sprint计划会议、每日站会、Sprint评审会议、Springt回顾会议
3个物件:产品Backlog(需求列表)、Sprint Backlog(小迭代周期需求)、燃尽图(剩余工作量)

Scrum较传统开发模型的优点

  1. 拥抱变化。尽快响应变化。
  2. 以客户体验及客户为导向
  3. Scrum强调团队自治,提升员工士气、动力及责任感
  4. 每一个Sprint(小迭代)的提交物是可运行的软件,要保证提交的质量。

产品研发流程及工作内容

产品研发流程.png
制定Sprint计划之前的工作
  1. 应用架构设计及产品业务需求
    参于人员:产品经理、应用架构师、需求分析师。
    产出物:产品需求文档
    主要内容:整体业务流程、应用场景描述、非功能性需求、业务功能范围。
  2. 技术架构总体设计
    参与人员:架构师
    产出物:架构设计文档
    主要内容:了系统划分、功能模块划分、交互模型、系统逻辑视图、系统物理视图、系统运行视图、非功能设计。
  3. 确定产品功能列表
    参于人员:架构师、开发Leader
Sprint计划会议

参于人员:团队所有成员。
主要内容:确定本次迭代需要完成的功能、细化功能列表、估算完成时间。

Sprint 实现

参于人员:产品需求团队
主要内容:细化PRD、书写SRS文档(SRS描述功能和非功能性需求,除用于指导设计之外,还作为测试用例的依据)

参于人员:开发团队
主要内容:每天举行Scrum meeting。阐述内容包括:昨天工作完成情况、今天的计划、碰到了什么困难,需要哪些帮助。

参于人员:测试团队
主要内容:持续不断的测试每个功能点。反馈bug,周期性回归测试。性能测试。

Sprint总结会

参于团队每个人,对自己不足总结,对整个团队的建议、对team leader的建议。

演示

向产品经理、市场部门、实施部门等相关人员演示软件。由产品经理判断是否满足要求。

上一篇 下一篇

猜你喜欢

热点阅读