小编理解到某家大型社交电商公司在 2020 年底实现了云迁徙的动作,有幸与他们的性能测试负责人张哥(化名)进行了深刻交换,为大家带回了一线情报。
1 次云迁徙,每年能够节俭 500 万的硬件老本投入,做么?
先别急着答复, 迁徙的老本、新平台的可靠性、过程的安全性些都是须要三思而行的。
企业能够使用云计算技术推动业务翻新, 实现麻利、灵便治理,升高 IT 老本,以进步企业在新常态下的倒退能源和竞争力。 企业上云不再是新事物,但随着本身业务倒退以及云计算服务产品的一直变动,为了以更低成本取得更好的服务,越来越多的企业须要面对云平台之间的迁徙挑战。
该如何平安高效地进行云迁徙呢?
小编理解到某家大型社交电商公司在 2020 年底实现了云迁徙的动作,有幸与他们的性能测试负责人张哥(化名)进行了深刻交换,为大家带回了一线情报。出于信息爱护,以下咱们简称该电商公司为 A。
敲定迁徙计划,功能测试验证
2020 年底,A 公司做出了一项重大决策,要将公司业务从阿里云平台迁徙至华为云平台。公司现有业务蕴含上百个利用以及数十 PT 的数据都要进行迁徙,如何平安高效地实现迁徙成了大家最关怀的问题。
若迁徙之后业务在云上无奈失常发展,那损失将不可估量,所以首先要做的就是敲定迁徙计划。
为了更好地测验迁徙计划的可行性,测试一次必定是不够的,更不可能间接上生产环境进行测试。A 公司测试团队先在华为云上搭建了一套最小单元的测试环境,用来测试不同计划的可行性以及实现华为云的中间件和阿里云中间件的比照验证。
先迁服务再迁数据的计划行不行?
波及跨云功能测试,测试团队将数据库、redis 缓存这些保留在阿里云上,将应用服务先迁徙至华为云。业务上须要跨云调用,因为两个云端拜访时延较大,响应工夫是失常的三倍以上。后果不言而喻,先迁服务再迁数据计划是不可行的。
所以最终采纳停机全量迁徙的计划。
测试团队将所有服务、测试环境的数据同步下来,开始进行整个业务流程的功能测试。测试笼罩了像商品能不能新建流动,能不能失常下单,下完单后订单、资金、客服售后等全场景的流程是否跑通。
业务流程失常跑通,性能实现上没有问题,那么接下来要做的就是零碎性能测试,验证零碎能不能达到高可用性,高稳定性及预期的性能指标。
筛选最优性能测试计划
“咱们过后得出的论断是,用跟阿里云同一套利用代码和同一套数据来做压测,不便做数据比照,失去的性能测试后果也是最精确的。”正式发展性能测试前,测试团队针对多种测试计划开展了具体探讨。
在这里遇到整个我的项目中最为外围的问题——如何解决压测数据?咱们来看看在过后次要探讨的 3 种计划有何区别。
计划一:
将阿里云的业务与数据 1:1 搬迁至华为云,在生产环境间接利用现有数据进行性能压测,实现后只对压测过程产生的测试数据数据进行清理解决。
计划二:
同样是将阿里云的业务与数据 1:1 搬迁至华为云,在生产环境间接利用现有数据进行压测,不同的是压测数据的清理更加简略粗犷,将数据层的数据库,文件,缓存,消息中间件等全副清理掉,从新全量同步一份。
计划三:
第一步仍旧是将阿里云的业务与数据 1:1 搬迁至华为云,而后引入生产环境全链路压测技术,对压测数据做标识,压测过程中对压测数据做隔离,达到压测数据不净化业务数据的成果。
计划被提出和探讨,必然是有其对应的劣势和劣势,项目组在做决定前,也做了屡次比照和论证。
先看计划一。这个计划的挑战点是复杂度极高,并且很容易对正式数据产生净化,具体有如下几点:
- 压测波及数据表很多,很容易漏清理或者错清理,清理脚本的调试和清理后的验证也是一大工作量;
- 除了数据表里的压测数据,音讯队列,缓存也会有压测数据,都给清理带来了极大的复杂度;
- 对于主键自增型的表还会影响前期增量数据的同步;
- 即便革除了压测数据,报表类利用仍会受到压测数据烦扰,除非对报表类利用做些硬革新。
再来看计划二。这个计划尽管也可行,然而这外面有两个问题,一是二次同步后没通过测试依然存在危险,还是须要再进行次回归测试;二是数据迁徙周期比拟长,要实现数 PT 数据、文件迁徙、缓存迁徙预热等动作,动辄几周。这期间须要同时租用两边云环境的 1:1 机器,硬件老本投入是笔不小的开销,此外数据迁徙须要各个业务线配合,二次迁徙造成的人力资源的反复投入与节约不容忽视。
最初咱们来看看计划三。生产环境全链路压测技术的引入使得迁徙新云环境性能测试这件事件变得很简略了。在压测前将所有业务的调用链路梳理进去,不必更改业务代码,利用数列科技的探针 agent 进行生产环境数据隔离,就能放心大胆地在生产环境去做压测,不用放心数据净化问题。
数列的 ForceCop 生产压测数据隔离能力,当初反对数百款中间件,也包含云原生的中间件,可能让生产环境压测数据流入提前配置好的影子缓存,影子音讯队列,影子库表里,不必放心影响业务数据。配合流量施压平台,压测控制台,可能在生产环境模拟海量用户进行操作,跑所有业务调用链路,测试后果天然实在牢靠。
通过综合考量,最终选定计划三进行性能测试,老本投入起码也最为平安。
1 集体的生产环境全链路压测实际
基于以上计划的探讨,兼顾 A 公司人员配置,最终项目组决定,实现性能压测这个光彩的工作就交给了性能测试工程师张哥。
影响着 200 万商家生意和 1500 万用户体验的大工程,之前也没有可复制的教训,1 集体如何扛起这支大旗?有遇到什么特地辣手的问题吗?在聊到这些问题时,张哥脸色轻松。
第一步就是制订正当的压测指标,为保障业务的顺利开展,华为云的性能起码要与阿里云并驾齐驱。为此张哥以 2020 年的大促性能指标为基准,将流量缓缓递增来做压测。参考之前做过的全链路压测性能体现数据,在等同流量条件下比照阿里云和华为云的响应工夫,以此为根据去找寻网关、连接池、带宽、数据库等一些能够优化的中央。
1 集体必定无奈实现所有的工作,那最辣手的就是内部人员合作的问题。为了不便配合全链路压测后果及时进行性能优化调整,张哥特意将性能压测工夫定在技术团队发版后的 1 - 2 个小时。这时大部分的技术人员都在,能够及时配合起来解决相干问题进行性能优化。
测试工作在张哥的调配下按计划进行,耗时十多天,实现了几轮生产环境全链路压测后,的确发现了不少的问题。
作为电商企业,高并发是业务的突出个性,加上 A 公司对 Redis 的依赖比拟重,很多 Redis 接口都是循环调用的,所以对 Redis 连接数的要求就比拟高。测试到一半的时候,忽然呈现 Redis 连贯上不去的景象,通过排查发现是华为云的 Redis 的最大连接数配置有问题,无奈满足其应用场景。
除此之外最让人印象粗浅的就是华为云网关负载平衡问题,测试结果显示为曲线。华为云上有 3 套主 ELB 和 8 个子 ELB,可是压力永远只会在第 1 个 ELB 上,这个 ELB 打满了才会到第二个 ELB 上,单台服务器 cpu 65% 其余服务器 15%,负载重大不平衡。
这俩典型的配置和环境问题如果不通过全链路压测是很难找进去的。A 公司技术团队联结华为云的驻场工作人员一起依据压测后果进行调试整改,最终胜利实现所有性能优化。
通过后面的测试验证之后,就能够放心大胆地发展正式云迁徙了。因为后期准备充分,主体迁徙理论耗时仅 2 天,上线后业务失常发展,0 性能故障产生。
企业云迁徙的趋势不可逆转,现今企业须要思考的不仅仅是要不要进行云迁徙,还要思考如何平安地进行云迁徙。我想生产环境全链路压测技术曾经给出了本人的答案。
如果对全链路压测技术比拟感兴趣的,能够加【小树】企业微信,邀您进群交换;如果对文中提到的压测平台感兴趣也能够私聊小树申请产品收费试用哦~