本篇文章由黄亚铭,郑佳宁,王卫波,王玥,顾浩,高烁,孙萌阳共同完成。
一半以上的新项目,都始于交接。交接期有长有短,交接形式多种多样。不管怎样,从客户关系、团队工作方式等各方面,交接期都奠定了项目进入稳定交付或维护期的基调。
2020年10月,Thoughtworks的C团队从客户团队交接了一个有近20年历史的支付网关系统。这个支付网关主要向英语系地区的企业提供信用卡支付,储蓄卡支付等支付相关的功能,每个月的交易额过亿。
2021年1月起,C团队正式接手该项目的日常运维工作。不仅需要保证系统稳定运行,提供7×24小时On Call支持,还要响应日常业务的需求,同时保证整个支付网关符合支付卡行业数据安全标准(Payment Card Industry Data Security Standard,缩写为 PCI-DSS)。
在交接的过程中,团队面临很多的挑战,尝试了很多办法,同时沉淀了一些经验。我们将通过这篇文章将经验和实践分享出来,希望帮助到更多人。
挑战
作为一个历史悠久的“大龄”支付网关,在交接过程中我们遇到了一系列的挑战,大致可以分为下面两类:
1. 业务复杂度高
业务上,这个支付网关光是在卡支付的场景下就同时支持8种技术,还有信用卡相关的安全功能,数不清的报表和各种增值服务。
技术上,总共有100多个服务和300多个代码库,部署在超过200个EC2上;服务之间耦合严重;许多服务没有部署流水线、没有测试环境甚至没有源代码;经常需要手工操作生产环境数据库来解决