DevOps架构下如何进行微服务性能测试

一. 微服务架构下的性能测试挑战

微服务与DevOps

微服务是实现DevOps的重要架构

  1. 微服务3S原则
  2. DevOps核心点

微服务架构下的业务特点

  • 亿级用户的平台
  • 单服务业务随时扩容
  • 服务之间存在相互调用关系
  • 版本更新快,上线周期短

微服务架构下的性能测试挑战

单服务流量激增时扩容
调用链条变长,调用关系更加复杂
微服务拆分导致故障点增多
▼ ▼ ▼
单服务变更性能影响如何评估?
性能瓶颈在各微服务间漂移,如何做好性能测试?
应对突发流量需求,扩容能否解决问题,如何扩容?
服务实例数量众多,如何收集信息,快速定位性能问题?

二. 微服务性能保障解决方案设计

性能测试平台服务化

性能测试服务架构

三. 性能测试实施策略

分层开展微服务性能测试

  1. 单服务接口测试(契约)
    验证单服务的各个接口能力基线以及组合接口的能力基线,服务间遵循契约化原则,大部分问题屏蔽在集成之前
  2. 全链路测试(SLA)
    验证整个系统之上全链路场景以及多链路组合场景的性能,优化链路中性能不足的服务
  3. 伸缩能力验证(面向现网运维)
    验证单服务的水平扩容能力,验证既定模型下的多链路组合场景的资源模型

系统从开发到上线需要做哪些测试

在微服务架构下,自动化仍然是提升效率,看护质量的重要手段,每个微服务独立快速迭代上线,更加要求微服务的性能不劣化

循序渐进的性能测试执行

常见微服务性能问题测试结果分析

  • 存在部分响应超时:
    a) 服务器繁忙,如某个服务节点CPU利用率高
    b) 网络IO超过VM/EIP带宽
    c) 等待后端微服务、数据库的超时时间设置过长
  • TPS未随着并发数增长而上升:
    a) 系统性能到达瓶颈,持续并发加压过程中响应时延增加(可观察响应区间统计)
    b) 可通过进一步加压是否会出现非正常响应验证
  • 运行一段时间后全部响应超时或者检查点校验不通过:
    a) 大压力导致系统中某个微服务奔溃
    b) 后端数据库无响应
  • TP90响应时延较短,TP99时延高:
    a) 系统性能接近瓶颈
    b) 可通过进一步加压是否会出现非正常响应验证

常见的微服务性能优化手段

    1. 扩容:链路中的某一应用可能出现cpu使用率较高或者连接池资源不够用(rpc、jdbc、redis连接池等)但本身对于拿到连接的请求处理又很快,这一类需要横向扩展资源。
    2. 应用逻辑优化:比如存在慢sql、 逻辑的不合理如调用db或者redis次数过多、没有做读写分离造成写库压力过大。
    3. 超时时间的合理设置:对于应用之间的rpc调用或者应用与其他基础组件之间的调用,均需要设置合理的超时时间,否则过长的等待将造成整个链路的故障。
    4. 缓存的应用:请求尽可能从前端返回,而不是每一个都要让后端应用处理后再返回,减轻后端应用及数据库压力,提高系统吞吐能力。
    5. 限流:对于超出承载能力的QPS或并发,可以进行拦截并直接返回提示页面。
    6. 降级:对于非核心链路上的应用,允许故障关闭而不影响核心链路。

原文地址:https://www.cnblogs.com/linwenbin/p/11438348.html

时间: 2024-08-02 00:18:22

DevOps架构下如何进行微服务性能测试的相关文章

Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转

原文地址:http://mp.weixin.qq.com/s/eXvoJew3bjFKzLLJpS0Otg 随着微服务架构的推广,越来越多的公司采用微服务架构来构建自己的业务平台.就像前边的文章说的,微服务架构为业务开发带来了诸多好处的同时,例如单一职责.独立开发部署.功能复用和系统容错等等,也带来一些问题. 例如上手难度变大,运维变得更复杂,模块之间的依赖关系更复杂,数据一致性难以保证,等等.但是办法总是比问题多,本篇文章就来介绍一下我们是如何保障微服务架构的数据一致性的. 微服务架构的数据一

唯品会、滴滴、沪江架构师,关于微服务粒度、高可用、持续交互的实践分享交流(下)

架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享. 本期小组交流会邀请到了沪江黄凯.唯品会郑明华.滴滴赵伟.七牛云肖勤,对微服务粒度.高可用.持续交互展开了交流. 本期接着上期唯品会.滴滴.沪江架构师,关于微服务粒度.高可用.持续交互的实践分享交流(上)进行了交流. 第一轮:话题交流 滴滴赵伟:在整个服务,从单体服务到微服务的演进过程当中,如何去影响业务的这种正常发展? 唯品会郑明华:从单体服务到微服务的改造,有两种方式,一种是小打小闹,每次稍微改一点,这个时间会非常长,有时候

百度“百老汇”架构师深刻透视微服务架构

首先解释这个"百老汇"=百度老年架构师活动中心.......什么是微服务首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应用,来理解什么是微服务.传统的WEB应用核心分为业务逻辑.适配器以及API或通过UI访问的WEB界面.业务逻辑定义业务流程.业务规则以及领域实体.适配器包括数据库访问组件.消息组件以及访问接口等.一个打车软件的架构图如下: 尽管也是遵循模块化开发,但最终它们会打包并部署为单体式应用.例如Java应用程序会被打包成WAR,部署在T

架构设计之「 微服务入门 」

微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务.一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来的危害,比如很多中小团队对微服务的基础知识只是做了很浅显的了解就开始盲目的推动微服务的实施,最后导致了项目的失败. 微服务要想做好是一个非常复杂的架构,今天就先只聊一聊微服务的一些基础架构,算是入门篇. 一.什么是「 微服务 」? 「 微服务 」由 Martin Fowler 提出,它是指一种软件架构风格.一个大型的系统可以由多个

Atitit.架构设计趋势 设计模式 ---微服务架构  soa

Atitit.架构设计趋势 设计模式 ---微服务架构  soa 什么是微服务架构?1 .微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1 微服务与康威定律2 微服务的一些设计 断路器 幂等2 <微服务设计>([英] 纽曼(Sam Newman))3 微服务架构与实践4 什么是微服务架构? Martin Fowler认为,微服务架构是一种独立部署的软件应用设计方式.这种架构方式没有准确的定义,但是在业务能力.自动部署.端对端的整合.对语言及数据的分散控制上有着共性.

微服务架构之「 下一代微服务 Service Mesh 」

Service Mesh 被大家称为下一代的微服务,是微服务领域的一颗新星,被大家讨论的非常多. 我在大家的讨论中,还看到有人说 “目前的微服务架构我都没学会呢,现在又来一个下一代微服务,真学不动了”. 哈哈,没办法,互联网技术就是发展得这么快,这些技术其实也都是由于大家所在的公司业务规模和复杂度变大以后所推动出来的. 最开始 Service Mesh 的概念是由Buoyant公司在2016年提出.然后在随后几年,业内就围绕着 Service Mesh 思想探索出了各种实现,其中包括以 Link

个推首席架构师Qcon分享 |微服务架构的那些事儿

微服务架构需要注意哪些问题? 微服务架构,首先考虑客户端与服务端之间的通信问题.有两种解决办法,一是客户端与多个服务端直接进行通信,但存在对外暴露接口细节.众多接口协议无法统一.客户端的代码复杂.服务端升级相对困难等问题.二是客户端访问统一的API网关,由API网关调用众多服务接口,易实现统一通信协议,降低客户端和服务端代码耦合,也可以达到统一的鉴权和流控,然而此方式存在延时增加的风险,可能使API网关成为系统发展的瓶颈. 微服务架构是分布式服务架构,如何进行服务的注册和发现也是需要解决的问题.

罗辑思维首席架构师:Go微服务改造实践

转自:http://www.infoq.com/cn/news/2018/05/luojisiwei 方圆 曾先后在 Cisco,新浪微博从事基础架构研发工作.十多年一直专注于后端技术的研发,在消息通信,分布式存储等方向有着丰富的经验.个人技术兴趣广泛,主要专注 Go/Java/Python 等编程语言的发展,尤其是在云计算等前沿领域的应用. 一.改造的背景 得到最早的APP就是一个单体的PHP的应用,就是图中最大的黄色块,中间蓝色块代表不同模块.下面的黄色部分代表passport 和支付系统,

架构演进之「微服务架构」

"为什么要搞「微服务架构」"?这也是我们当初讨论的聚焦点.现在天天把"微服务"挂在嘴边的人很多,但是有多少人真正深入思考过"为什么",我认为可能不多. 于是我在梳理材料的时候,就决定从源头入手--即"为什么". 架构是演进的,不是一蹴而就. "架构演进趋势图"中的趋势分析,在业界比较公认.这个图本身的内容.关于各个架构的描述.优缺点等等,网上简单搜索一下有大把大把的,感兴趣的同学可以自行搜索,毕竟这也不是我