Python 2 寿命即将终结,是时候将 3500 万行代码迁

Python 2.x 版本的技术支持即将于 2020 年 1 月 1 日截止,你准备好将你的项目做迁移了吗?

Python 2 寿命即将终结,是时候将 3500 万行代码迁移到 Python 3 了

作者 | James Sanders

译者 | 风车云马,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

Athena(雅典娜)交易平台是JPMorgan(摩根大通)业务运营的核心,它拥有3500万行Python代码,如果不尽快迁移到Python 3可能会带来安全风险。

Python 3对Python 2的支持将于2020年1月1日结束,这距离当时Python 3的引入仅有11年多的时间。Python 3是对Python语言的一次重大重组,消除了重复的结构和模块,以追求现代化。鉴于Python的流行程度和普遍性,基于Python的业务数量是相当庞大的,这对于仍然依赖于Python 2的组织来说面临一定的问题。

摩根大通的雅典娜交易平台就是采用Python的应用程序——虽然雅典娜平台自2018年开始才直接对客户开放,但摩根大通内部使用雅典娜平台进行定价、交易、风险管理和分析,并提供大数据和机器学习工具。摩根大通执行董事Misha Tselman在PyData 2017年的一次演讲中提到,这个广泛的特性集使用了超过15万个Python模块、超过500个开源包以及1500名开发人员贡献的3500多万行Python代码。

将3500万行代码从Python 2迁移到Python 3是一件相当艰巨的任务,摩根大通将错过最后期限,据eFinancialCareers称,摩根大通规划将于2020年第一季度末实现“大多数战略组件”的Python 3兼容——也就是说,在安全补丁程序结束三个月之后,在2020年第四季度计划实现“所有遗留Python 2.7组件”与Python 3的兼容性。

Tselman认为这种规模的项目需要现代开发人员来维护——幸运的是,摩根大通使用连续交付,每周有10,000到15,000个任务变更。CI/CD(持续集成/持续交付)将在这种规模的重构中发挥重要作用,尽管时间是至关重要的——英国国家网络安全中心(NCSC)警告开发人员使用Python 2.7的风险,尤其是对于库的开发。

如果其他开发者依赖一些你开发的库,你可能会影响他们更新到Python 3。您可能无意中间接地增加了其他程序的安全风险,不公开源代码的开发人员应该考虑那些可能也在内部调用您的代码的同事。