保持旧Python代码健康和安全的更简单方法

为什么?嗯,Python相对来说比较容易学。具有科学背景的人能够比C更快地掌握Python。然而,Python固有的可接近性也带来了一些问题。
每当Python更新时,就意味着一个很大的重构工作量,这通常处理得很糟糕;或者根本没有。这会导致性能差和安全漏洞。但也许有更好的方法:一个工具,让你的Python任务日复一日地平稳、安全地运行。让我们看看。
虽然速度很慢,但很管用
因此,尽管Python代码在性能上享有声誉,但通常使用Python代码来处理非常困难的工作负载,这仅仅是因为它非常实用。如果你有科学或数学背景,你可以相对轻松地学习Python并编写自己的代码来完成这项工作。
但是,正如通常情况一样,一些容易获得的东西也会产生很多风险。编写Python代码的经验不足的程序员可能会在更有经验的程序员认为理所当然的任务中挣扎。
重构是一件麻烦事,还有风险
与所有编程语言一样,Python也会经历频繁的更新。例如,从Python 2.7到Python 3.0的转变带来了一系列特性和改进。这还意味着,由于Python工作方式的变化,为Python 2.7编写的任何内容都需要为Python 3.0“重构”。
重构是指程序员调整代码库以响应环境变化的方式,例如语言版本的变化,或只是以某种形式改进现有代码。如果不进行重构,从Python 2.7到Python 3.0的转换通常意味着Python 2.7的代码不再那么好用,甚至根本不能用。
问题是:编写原始Python代码的用户可能没有重构的专业知识。毕竟,他们通常是科学家,没有经验的程序员。当没有经验的程序员试图调整代码时,真正的风险是性能会下降,bug会悄悄进入,有时仅在出现边缘情况时可见。当Python代码用于关键的、全天候的目的(如科学分析)时,小错误成为一个主要问题。
重构还可能导致意外的性能下降。即使只是5%的性能损失,执行不佳的代码更新也会在昂贵的按使用付费HPC平台上迅速产生更大的开销。
坚持使用老Python?这是一个更大的风险
如果您考虑到调整代码所涉及的艰苦工作和风险,那么用户通常选择只使用较旧版本的Python也就不足为奇了。在过时的Python版本上运行现有代码可以避免很多挑战,因为您不需要重构,您保持了代码的原样。
通常,软件供应商会做到这一点;只有在发布新版本的软件产品时,才更新他们的软件以匹配新的Python版本。如果您购买了特定版本#8211,比如说,在Python 2.7上运行时,您陷入了困境,无论发生什么情况,您都需要继续运行Python 2.7。
这听起来不是什么大问题,但依赖过时的、不受支持的构建块进行计算是DevSecOps的噩梦。新的漏洞将出现,而所需的补丁将不会出现。因此,依赖旧版本的编程语言会给您的计算环境带来巨大风险。
它几乎没有选择,还是有?
负责任的事情是在需要时更新Python版本,并编辑在其上运行的代码,但这不是一种简单易行的方法。实际上,由于缺乏资源,重构往往无法完成,这可能会带来代价高昂的后果。
主要需要一种更好的方法,下面是有趣的地方。我们刚才描述的Python版本的情况在计算世界中很常见。例如,组织通常会运行不再受官方供应商支持的Linux操作系统版本,冒着安全漏洞无法修补的风险只是为了确保关键应用程序不会中断。
这对于语言更新以及其他IT基础设施也是一个问题。但是,近年来,先进的补丁解决方案允许公司将多个组件的通常支持生命周期从整个操作系统扩展到特定的关键共享库。在TuxCare,我们开发了几种解决方案,将旧软件的安全操作扩展到供应商生命周期结束后。
安全可靠地运行较旧的Python应用程序
如果语言版本也可以这样做呢?现在,您可以期待在旧版本的Python,但是没有它所带来的风险。没有弃用的语言结构,也没有漏洞。
换句话说,语言版本的扩展生命周期支持,如Python,正在成为现实。您很快就能确保Python代码的安全,无需重写一行代码,只需获得Python的扩展生命周期支持,这为您提供了与完整版本升级相同的安全保护。
TuxCare的Python扩展生命周期支持将以可接受的价格推出,它将帮助您的组织解决围绕旧Python工作负载的难题。请留意我们的公告,这很快就会到来。