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

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

作者: 爱上鱼的猫_产品狗 | 来源:发表于2024-04-06 11:10 被阅读0次

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

2024/3/29

第17章 性能和可靠性

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

存储

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

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

服务器

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

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

网络

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

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

操作系统

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

数据库
中间件

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

  • 动态应用服务器集群组:一组基于由多台物理服务器组成的计算资源池构建的、支持动态规模扩展、动态负载均衡以及动态请求路由的服务器集群,是提供应用运行环境的主体,由多个WVE节点实现;WVE不仅支持IBM WebSphere ApplicatiolServer,也同时支持Oracle WebLogicServer及JBoss、Tomcat等。
  • 应用路由控制节点:作为客户端请求的统一接入层,实现对动态集群成员间的载均衡和路由,由 WVE 的 On Demand Router(简称 ODR)实现。、
  • 管理控制节点:动态集群环境的管理和监控工具,通过该工具可定义和配置动态集群和应用路由控制节点的各种相关参数,包括运行时的动态集群需要循的各种策略,并可监控这个环境的运行状态,由WVE的Deployment Manager(简称Dmgr)实现。


    WVE系统典型拓扑图.png

SaaS

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


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

集群

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

集群系统的主要优点如下:
  • 高可扩展性。
  • 高可用性 HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。
  • 高性能:负载平衡集群允许系统同时接入更多的用户。
  • 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。
集群特点可扩展性和高可用性

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

集群具备的4大能力
  • 负载均衡(Load Balance)。负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。算法主要有轮循、权重(根据服务器硬件配置的不同)和随机三种,但更酷的做法是基于负载(直接查探或者由服务器主动报告它们的负载)。
  • 健康检查(Health Check)。通过心跳系统与发现协议,Server 一般会主动定期多播报告自己状态,也会Ping对方来问候平安。比如WebLogic每10秒会发送一次心跳,如果有30秒没有收到对方服务器的心跳了(考虑到多播可能会丢失数据包)就视对方为阵亡。
  • 错误恢复。由于某种原因,执行某个任务的资源出现故障,另一服务实体中技行同一任务的资源会接着完成任务。这种由于一个实体中的资源不能工作,另一行实体中的资源透明地继续完成任务的过程称为错误恢复。
  • 会话复制(Session Replicaton)。因为服务器会记录与特定用户的会话信息,所以Balancer应该把同一用户的请求定位到同一台服务器上。如果该服务器失效,则把该用户和会话信息转移到新服务器上。
什么是高可用性

计算机系统的可靠性用平均无故障时间(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个最佳开发实践的流程定义方法

  • 迭代式开发。迭代式开发允许在第次迭代过程中需求有变化,通过不断细化来加深对问题的理解。
  • 管理需求。确定需求是一个连续的过程。
  • 基于组件的体系结构。组件使重用成为可能,系统可以由组件组成。
  • 可视化建模。RUP往往和UML联系到一起,对软件系统建立可视化模型,以帮助人们提高管理软件复杂性的能力。
  • 验证软件质量。软件质量评估是内建于过程中的所有活动。
  • 控制软件变更。RUP中软件生命周期在时间上被分为四个顺序阶段。初始(Inception)阶段、细化(Elaboration)阶段、构造(Construction)阶段、交付(Transition)阶段。
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的建议。

演示

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

相关文章

  • SaaS产品是什么?

    SaaS是Software-as-a-Service的缩写名称,翻译为软件即服务。 SaaS的特点: 1、云端架构...

  • 站在云端

    站在云端看这人生 长的是清寂 短的是欢颜 那个坐在城楼上的吹箫人 是否也会邂逅另一个自己 隔着身影和湿气 在云端,...

  • 11 播客《 SaaS 太热闹,教你看尽门道 》读书笔记

    此篇为 《SaaS 太热闹,教你看尽门道》的读书笔记. 背景: 什么是 SAAS 软件即服务(英语:Softwar...

  • 三节课:1.saas导论

    一、saas模式的特点。 1⃣️ 云端架构。2⃣️ 成本下降(无需承担设施、维护成本)。3⃣️ 付费模式灵活。...

  • 酷报告——一个适用于各行业领域的云端报告服务

    酷报告云SAAS服务平台致力于为不同行业领域用户提供报告灵活定制、云端模板市场、报告快速出具、企业流程定义、云端电...

  • 在云端

    我常梦想站在云端 俯视众生 唯我独尊 我常梦想站在云端 金钱美女 权利欲望 我常梦想站在云端 封妻荫子 声传后世 ...

  • 工具、服务或开发,我们永远搞不清的Saas服务

    Saas是一个很大的概念,针对普通消费者,针对公司,针对开发人员。我们尝试从另一个角度对Saas服务进行细分:云端...

  • 软骨鱼SaaS管理平台助力传统软件SaaS化改造

    什么是SaaS SaaS就是将应用软件统一部署在云端服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的...

  • 站在云端写诗的屈原

    01 公元前 302 年,大约在百花盛开的三月下旬,楚国故都鄢郢(今湖北宜城)的先王庙里来了一对男女青年。 男的是...

  • 当我们站在云端

    曾有一日 高空雷电乍起 我和你站在云端 观望一起宇宙间的悲剧 你说 它常常如此 摇摆不定 又恍惚 而我希望我能讲出...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/mwnutjtx.html