真实流量,本地回放:一种轻量的性能测试思路

性能测试最大的谎言是:你的模拟数据能代表生产环境。

我们正在做一个数据库查询中间件的版本迁移。新版本用了完全不同的查询协议,需要验证性能不会退化。

之前同事做了第一个版本的性能测试方案:在生产环境里开一个 shadow 线程池,用独立线程回放查询。这个方案能跑,但有几个问题。第一,任何改动(修 bug、加功能、调参数)都需要部署生产环境才能生效,迭代速度很慢。第二,虽然是在独立线程池里跑,但多少会对生产流量产生影响——CPU、内存、数据库连接都是共享的。第三,指定 TPS 进行压测时,需要人工构造请求之间的时间间隔来模拟真实的流量波动,这既不准确也增加了复杂度。

我想要的是:直接用生产流量来测,但完全不需要部署任何东西到生产环境。

Read More

用AWS创建工作流

AWS提供了一系列易于使用的服务,其中的Step Functions可以用于创建工作流。本文主要介绍了Step Functions的使用并顺带介绍了其它几个相应的AWS服务。此外,亚马逊提供了为期一年的免费账户,可以访问AWS来试用。

Read More

未来的软件开发什么样

前一阵子经常看到各种文章说以后人工智能如何如何强大,人类各种失业,要么凄惨,要么极乐,软件开发也无法幸免。那么开挂后未来的软件开发究竟会如何演进?其实我们可以借助传统制造业来推演一下。

Read More

组合型软件架构

以前玩游戏的时候,总是希望在高手后面看他怎么操作,以提高自己的水平。当时悟出了一个道理:菜鸟看老鸟,只觉得每一步都顺理成章。但是菜鸟自己上时,老鸟却是看得频频摇头。今天这个标题讲的就是这么个理所当然的架构,源于我的同事对当前系统的思考。

Read More

逆向工作法

我们经常听到以客户为中心,可是说来容易做来难。“地球上最以客户为中心的公司”亚马逊是怎么做的呢?这可不是喊喊口号就完事了,逆向工作法(Working Backwards)了解一下?

Read More