服务器软件评估的非功能需求指标框架

服务器软件评估的非功能需求指标框架,第1张

满足功能需求只是对一个软件基本的要求,作为一个好的软件必须关注一系列的非功能的要求,比如容易部署,界面友好,可以扩展,性能优良,等等。

一些软件框架以不同的维度提出了自己的非功能需求列表,供评估和提出需求时参考,自己也在开发过程中针对服务端软件,按照软件生命周期过程中参与服务端软件不同操作的不同人员,以及这些人员对系统的关注点不同,拟出了一个服务端软件的非功能需求指标框架,可以用于提出指标,也可以用于进行软件评估。

第一层的划分是来自于询问自己的一个问题:软件生命周期中,都有谁会关注这个软件,他和软件有什么操作,他关注软件的哪些部分?从这个问题出发,可以得到软件生命周期中有以下相关方:

软件本身的正常和异常运行

    开发人员 :软件本身的设计和实现中的要求

    运维人员 :操作/监测/部署升级 这三类运维人员在履行自己职责时对软件的要求

    安全人员 :从安全角度出发对系统各个方面的要求

    用户人员 :软件的不同用户对软件界面和接口的要求

    机房/审计人员: 对软件的效能进行审计和控制

这样基本保证了指标的完整性,也许还有其他的点,后续继续补充了。

Rocket

Rocket是Rust生态系统中对初学者来说最容易上手的web框架。

它是高度可定制化的,可以快速启动一个新的应用程序。同时,它避免了许多不必要的文件。

与ActixWeb不同的是,该框架运行在Rust语言的“实验”版本)上。

ActixWeb

ActixWeb通常被认为比Rocket性能更稳定。

在下面,它与Erlang和Akka中使用的角色模型一起工作。

与Rocket相比,需要使用第三方库来实现额外的功能。

Yew

Yew是一个Rust框架,用于使用WebAssembly创建web应用。

在它的主要优点中,它列出了一个像React和Elm那样的基于组件的框架,由于对多线程的支持和JavaScript的互操作性,它具有出色的性能。

到目前为止,它还没有生产就绪,但是对于内部工具来说,它应该是一个非常好的选择,特别是如果想使用WASM的场景。

Zola

如果你需要一些快速和简单的提供一个静态网站,Zola是一个极好的工具,可以创建快速和可伸缩的网页,没有任何其他依赖。

Warp

Warp是一个用Rust编写的web服务器框架。与Rocket和Actix相比。

对于一个web框架来说,它是相当小巧的,并且只提供基本的开箱即用的功能。

这种就类似于云计算等后端基础服务的测试,对于一些大的公司,会有一个专门的团队来开发这种后端基础服务,这种服务当然也需要测试人员来保证质量。

这类服务一般都是通过HTTP接口的方式提供给刚才讲的WEB/APP的后端使用,所以,第一个要做的也就是接口测试,也就是用Postman等工具做手工测试、用TestNG+HttpClient或者Python的Nose框架做自动化测试。

不过,对于这类后端服务来说,接口只是暴露给外用的部分,内部逻辑通常是非常复杂的,所以,除了针对接口做测试之外,测试人员还需要细致地了解这些服务端产品的技术框架及技术实现,需要了解到模块的级别,对于系统框架图、时序图等都有很好的理解。针对这些理解去设计用例,再跟开发一起讨论如何实现用例。

如果这种基础服务用了某一个开源软件,那通常也需要测试人员能关注社区的进展,并把我们发现的Bug及解决方案等推到社区,为社区做贡献。

除了接口测试之外,在我们公司,异常测试、稳定性测试、性能测试也是服务端测试必备的测试类型。

异常测试会模拟各种异常情况,比如硬件异常-机器挂掉的情况下能否启动备机、硬盘挂掉的情况下是否会丢失数据;网络异常-网络忽然断掉、或者网络流量变小的情况;系统异常-操作系统忽然挂掉的情况。这些极端的情况出现的时候,我们需要验证数据有没有丢、能不能尽快启动备机对外提供服务、系统状态有没有异常等。我们会采用各种方式或者工具来模拟这些异常,比如用TrafficControl工具来控制网络流量。

稳定性测试,就是模拟系统在724的运行下会不会出问题,一般会用接口测试或者性能测试用例不断地跑,在运行期间,我们会模拟各种情况,比如说负载的变化、系统的各种干扰等。可以用ChaosMonkey等工具来进行这类测试。

性能测试,其实细分起来会有各种类型,比如负载测试、压力测试、配置测试、甚至还有线上压测、容量规划等。最常规的性能测试,一般是先规定一个系统需要承受的压力,比如说,某一个系统,1个小时之内会有1W单的单子,那基于这个需求我们分析服务器后端需要承受的压力,分析出来以后,就写性能测试脚本,然后逐渐增加压测的力度,直到超过这个预定的压力。通常在这个测试过程中会发现各种问题,比如数据库索引没有建、线程池太小、系统异常等。需要解决了之后再加大压力测试。也是用Grinder/JMeter等工具来进行性能测试,不过难的不是这些工具的使用,而是发现问题以后的定位。

对于这种后端服务的测试人员来说,技术上的要求是挺高的,需要有较好的编程能力,需要对数据库、操作系统等机制有很好的了解才行。

小米服务框架在系统中的作用是将联系人、深入的系统各项设置等等基本的设置都可以随时随地实现云同步。有了小米服务框架,从包括WLAN、甚至是桌面布局、照片、视频等都可以进行同步。小米云服务是小米公司在2012年推出的云端数据同步备份功能。

小米手机服务框架耗电解决方法

1,首先打开小米手机,点击电机与性能;

2,然后选择打开耗电统计,查看耗电详细信息;

3,此时可以看到,有图示的耗电详细信息点击进去;

4,点击应用信息,此时查看省电策略处于智能限制;

5,选择后台运行超过十分钟或是禁止后台运行就可以很好的阻止后台运行了。

影响不大。因为http的请求,会受到网络速度的限制。与此相比,程序内部实现造成的影响,可能是很微小的。目前流行的php框架有yii、ci等。用它们编写一个简单的程序,和不使用框架,运行速度几乎没有差别。但使用框架时也需注意一些问题。

一个网页响应速度,和其网站架构、HTML的结构和比较耗时的操作关系较大。

其中网站架构涉及硬件设备和应用程序分布式布署的问题,对性能影响最为显著。一些程序难以解决的性能瓶颈,要用架构设计去解决。比如数据库读写分离。

优化HTML结构也是优化网站的课题之一。更为简约的编码,可以节约带宽,也能加快浏览器渲染的速度。页面字节大小,是前端设计的重要指标。异步加载和代码压缩,是减少网页下载时间的重要手段。

程序比较耗时的操作,如数据库查询、处理、压缩文件等。其中数据库的因素较为普遍。这里要提到一个框架的问题。yii框架自带的数据库模型非常强大,有了它我们基本上不用写SQL语句。但是,它自己生成的SQL语句不一定是最佳的。为了保证网站性能,关键的查询需要自己把握。而且比较复杂的抽象,也会降低性能。它的官方文档中,也不建议在大型网站中使用模型。

综上,框架的特性要选择性地使用。使用前要仔细阅读文档。优化网站要考虑多种因素,而不是仅仅关心程序的实现。要杜绝对程序效率影响不大的"微优化"。

python在web开发方面有着广泛的应用。鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题。为此,我特此对比较常见的几种框架从性能、使用感受以及应用情况进行一个粗略的分析。

1 Django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。Django与其他框架比较,它有个比较独特的特性,支持orm,将数据库的操作封装成为python,对于需要适用多种数据库的应用来说是个比较好的特性。不过这种特性,已经有其他库完成了,sqlalchemy

2 Flask

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。

推荐学习《python教程》

3 Tornado

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。不过现在与众多的框架比较,Tornado已经被抛在了后面,Django已经超过了它,更不说其他框架了,只能说Tornado使用纯python开发的性能还是不能与其他框架借助于cython开发的性能相比。

4 webpy

webpy 是一个Python 的web 框架,它简单而且功能强大。webpy 是公开的,无论用于什么用途都是没有限制的。而且相当的小巧,应当归属于轻量级的web 框架。但这并不影响webpy 的强大,而且使用起来很简单、很直接。在实际应用上,webpy 更多的是学术上的价值,因为你可以看到更多web 应用的底层,这在当今“抽象得很好”的web 框架上是学不到的 :)

5 Aiohttp

 高性能异步web框架,既有客户端的也有服务端的,还支持web-socket

6 Sanic

与flask类似,并支持异步

7 Vibora

旨在成为最快的python web框架。vibora的高性能依赖于 cython实现的uvloop异步框架及cython实现的http_parser, 再加上一些cython构建的web组件,比如 模板,user-route等。目前还处于测试阶段。

8 Bottle

Bottle是一个简单高效的遵循WSGI的微型python Web框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。

9 Falcon

Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。

10 weppy

性能优于flask的一个全栈web框架。

微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。

PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过

PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内部,有100多个业务、16多万台服务器上运行使用。

Swoft是基于swoole协程的高性能PHP微服务框架,内置http服务器。框架全协程实现,性能优于传统的php-fpm模式。是一款简单、快速、高效的框架。

目前最火,且有大量使用案例的就这两个PHP微服务框架居多,其他的我就不一一举例了

对于PHP程序员来讲都是比较好用的框架,不少企业使用,程序员学会可为自己的技术项目加分!在学习这些框架的过程中难免遇到问题,Swoole、协程编程、并发编程、Swoft微服务、SQL性能优化,分布式、高并发都是成为一个中高级PHPer,架构师的必经之路为了帮助大家进阶中高级涨薪我为大家准备了一套精品福利!还可加入大牛学习圈子,分享tp,laravel,Swoole,Swoft微服务等教程,各种大牛都是3-8年PHP开发者,每天还有12年的架构师做讲解,助你进阶中高级PHP程序员,增值涨薪!需要可关注本头条号,并且发送私信:PHP

在学习微服务框架和进阶中高级、架构师的过程中有疑惑、遇到瓶颈期的可在底部留言给我!!!

两种服务器还是有一定的区别,端游服务器一般比较重,用长连接tcp的比较多,手游服务器要考虑很多弱网络的情况,用短连接的比较多,因此在后台服务器选型方面,端游一般使用C++语言开发的服务器,手游选择比较广泛,有用java、php的,也有使用C++直接开发的。另外手游在移动互联网时代,在微信、QQ的强大影响力之下,加入了SNS社交元素。在支付层面,也会使用微信、QQ支付,iOS会使用苹果支付。在存储模块,手游使用KV存储居多,端游使用关系型数据库mysql居多。其它方面都大同小异,不论使用什么框架开发,只要注重服务器性能方面的优化,在游戏开发过程中或上线前,不妨找一款压测工具上去压一下,这里推荐腾讯游戏专用的服务器压测工具WeTest(WeTest服务器性能|压力|负载测试 高并发,实时性能报表,专家级性能优化建议腾讯WeTest),上个100万个机器人,就可以知道自己的服务器能不能撑得住了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 服务器软件评估的非功能需求指标框架

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情