非功能需求(SaaS的NFR)是跨越应用功能的跨越所有模块和功能的要求。这些要求深入到应用程序的架构,这是他们得到解决的地方。因此,在SaaS架构阶段之前了解这些NFR对于特定应用程序很重要,因此应用程序设计可以满足这些要求。

SaaS模式的本质使得某些NFR对其运行至关重要。让我们看看SaaS应用程序的十大关键NFR以及其背后的原因。

SaaS应用的关键NFR

可扩展性:

SaaS是一个按需的业务模式,很难预测系统的负载。同时,您无法计划峰值负载情况,因为这将消耗高水平的成本,并导致资源使用效率低下。因此,应用程序应设计为基于系统上的实时负载动态扩展和缩小。这就是SaaS架构师必须利用云模型来利用按需资源消耗模型的地方。

性能:

随着互联网速度和带宽可用性的不断增加,客户期望基于互联网应用的照明响应。无论应用程序的类型还是屏幕后面的处理量,SaaS客户都将期望相同。因此,架构师必须有意识地考虑潜在的性能瓶颈,并实施可以帮助利用异步处理,微服务架构,多数据可用性等概念的设计。

可用性:

可能是所有NFR中最重要的。SaaS应用程序必须首先提供给其他NFR才能播放。SaaS应用程序的可用性是最大的问题,特别是如果应用程序涉及到关键业务解决方案。SaaS应用程序的计划外停机可能导致客户的重大损失,从而可能破坏SaaS提供商的业务。架构师必须了解针对性的SLA,并以不存在单点故障的方式设计部署模型。在设计DR策略时,还应考虑恢复时间目标(RTO),恢复点目标(RPO)因素。

积分:

我们今天生活在一个高度互联的世界,这在未来几年只会增加。客户非常关心选择SaaS应用程序,该应用程序不仅可以解决预期的功能,而且还能够根据客户端的现有设置进行良好的凝结。这导致了SaaS应用程序必须与不同的内部和外部系统对话的情况。建筑师必须将SaaS应用程序设计为具有足够钩子的开放系统,以便集成不仅可行,而且可以以最小的努力完成。

审计:

从SaaS提供商的角度来看,系统的所有权及其功能与供应商有关。因此,SaaS提供商有责任实施适当的措施来跟踪系统的使用情况及其中发生的事件。此信息对于诊断目的以及解决与客户的冲突至关重要。审计设计应确保所有用户和系统操作都被正确地记录和存储,以便跟踪和识别系统中发生的事件的确切顺序。存储数据更改(旧数据与新数据)以及引发更改的时间戳和用户详细信息也很重要。

在下一个博客中,我们将看到SaaS应用的下一个5关键NFR。

原文:https://blog.techcello.com/2016/04/top-10-critical-nfr-for-saas-applications-part-1/

转 SaaS应用十大关键NFR - 第1部分的更多相关文章

  1. SaaS应用十大关键NFR - 第2部分

    SaaS应用十大关键NFR - 第2部分 在继续上一篇关于SaaS应用的十大关键NFR的博客之后,我们来看看接下来的5个对SaaS解决方案架构产生深刻影响的关键NFR. SaaS应用的关键NFR 多租 ...

  2. 3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作

    十大全球CEO亲授 企业高速成长的关键战略(<哈佛商业评论>增刊) <哈佛商业评论>上的10来篇文章合集.大部分都看过,除了一篇中信的访谈,其他大部分是美国的有点旧的案例. 总 ...

  3. 推荐Linux管理员不可不知十大PHP安全要点 - SCutePHP

    PHP是使用最广泛的脚本编程语言之一.市场份额颇能说明其主导地位.PHP 7已推出,这个事实让这种编程语言对当前的开发人员来说更具吸引力.尽管出现了一些变化,但是许多开发人员对PHP的未来持怀疑态度. ...

  4. 十大经典排序算法总结(JavaScript描述)

    前言 读者自行尝试可以想看源码戳这,博主在github建了个库,读者可以Clone下来本地尝试.此博文配合源码体验更棒哦~~~ 个人博客:Damonare的个人博客 原文地址:十大经典算法总结 这世界 ...

  5. 十大开源的.NET用户界面框架 让GUI设计不再犯难

    选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户.好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键.下面 ...

  6. 十大广泛使用的Linux发行版

    回到上世纪90年代,Mandrake Linux还是唯一的Linux发行版:而今天,Linux发行版的数量变得数不胜数.本文为大家整理出了十大广泛使用的Linux发行版,希望能帮助大家在选择合适的Li ...

  7. 十大经典排序算法总结——JavaScrip版

    首先,对于评述算法优劣术语的说明: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面:即排序后2个相等键值的顺序和排序之前它们的顺序相同 不稳定:如果a原本在b的前面,而a=b,排序之后a ...

  8. JS的十大经典算法排序

    引子 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements JavaScript. 当年,想凭借抱Java大腿火一把而不惜把自己名字给改了的JavaScript(原名LiveScript ...

  9. 十大技巧快速提升原生APP开发性能

    移动应用市场用户争夺战日益激烈,原来做APP拼想法拼创意拼是否抓住用户痛点.现在,精细化用户体验成为了一个APP能否留存用户的关键问题,一旦用户觉得体验不畅,马上就有竞品APP后补,如何开发高性能的移 ...

随机推荐

  1. Python学习—数据库篇之pymysql

    一.pymysql简介 对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...

  2. 128bit 整数运算的实现

    对于128bit的长整型运算,GCC提供了扩展类型:__int128.然而该类型不在C/C++语言的标准之中,并且对于不同种类的编译器,它的实现情况不同.因此,在编写相关的可移植程序时,我们有必要实现 ...

  3. Python开发【初始篇】:Linux下安装Python3

    Linux系统默认自带python2.6的版本,这个版本被系统很多程序所依赖,所以建议不要轻易删除,除非你能解决其他程序的依赖问题.如果使用最新的Python3需要进行编译安装源码包,这样就对系统默认 ...

  4. python的os模块fnmatch模块介绍

    一.先介绍一下os模块 import os print(os.getcwd()) # E:\python\test\python_models # 获取当前的目录 print(os.listdir(& ...

  5. 使用Spring Cache缓存出现的小失误

    前文:今天在使用Spring Boot项目使用Cache中出现的小失误,那先将自己创建项目的过程摆出来 1.首先创建一个Spring Boot的项目(我这里使用的开发工具是Intellij IDEA) ...

  6. 关于键盘事件对象code值

    e.keyCode || e.which || e.charCode; //IE只有keyCode属性,FireFox中有which和charCode属性,Opera中有keyCode和which属性 ...

  7. jenkins远程执行脚本时报Bad version number in .class file

    这几天在学习jenkins的持续集成和部署,到了最后一步启动服务的时候,遇到了一个这个Bad version number in .class file的报错(如下图). 这个报错在最开始手工部署的时 ...

  8. Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'

    学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlo ...

  9. Kubernetes 1.3.1 快速单机部署

    Kubernetes发展到今天, 在官网上已经有非常多的成熟部署方案, 但是由于墙的原因, 最简单的MiniKube都无法进行, 参考了以下两篇文章后, 终于安装成功. k8s-1.13版本测试环境搭 ...

  10. ORM学员管理系统

    1.使用MySQL自己创建一个数据库,以下例为例 CREATE DATABASE orm DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 2.在项目的set ...