Una forma más fácil de mantener el código antiguo de Python sano y seguro


Python tiene sus pros y sus contras, pero, no obstante, se usa mucho. Por ejemplo, Python se usa con frecuencia en tareas de procesamiento de datos, incluso cuando hay lenguajes más apropiados para elegir.

¿Por qué? Bueno, Python es relativamente fácil de aprender. Alguien con experiencia en ciencias puede aprender Python mucho más rápido que, digamos, C. Sin embargo, la accesibilidad inherente de Python también crea un par de problemas.

Cada vez que se actualiza Python, significa una gran carga de trabajo de refactorización, que a menudo se trata mal, o no se trata en absoluto. Eso conduce a un bajo rendimiento y vulnerabilidades de seguridad. Pero tal vez haya una mejor manera: una herramienta para mantener sus tareas de Python funcionando sin problemas y de forma segura día tras día. Vamos a ver.

Es lento, pero hace el trabajo

Python no es el lenguaje más rápido que existe, pero a pesar de sus desventajas comparativas, a menudo verá que se usa para operaciones intensivas de procesamiento de datos. Piense en el aprendizaje automático, la visión artificial o incluso en las matemáticas puras en los sistemas informáticos de alto rendimiento (HPC).

Entonces, a pesar de su reputación de rendimiento, las cargas de trabajo muy difíciles se manejan comúnmente con el código Python, simplemente porque es muy práctico de usar. Si tiene experiencia en ciencias o matemáticas, puede aprender Python con relativa facilidad y producir su propio código que hará el trabajo.

Pero, como suele ser el caso, algo que es accesible también puede crear muchos riesgos. Los programadores sin experiencia que escriben código Python pueden tener problemas con tareas que los programadores más experimentados dan por hecho.

La refactorización es una molestia… y un riesgo

Como todos los lenguajes de programación, Python pasa por actualizaciones frecuentes. El cambio de Python 2.7 a Python 3.0, por ejemplo, trajo un montón de funciones y mejoras. También significa que cualquier cosa escrita para Python 2.7 debe «refactorizarse» para Python 3.0 debido a los cambios en el funcionamiento de Python.

La refactorización se refiere a la forma en que los programadores ajustan una base de código para responder a los cambios ambientales, como un cambio en la versión del lenguaje, o simplemente para mejorar el código existente de alguna forma. Sin la refactorización, un cambio de Python 2.7 a Python 3.0 a menudo significa que el código de Python 2.7 ya no funciona tan bien, o incluso deja de funcionar.

Y aquí está el problema: es posible que los usuarios que escribieron el código original de Python no tengan la experiencia para refactorizar. Después de todo, a menudo son científicos y no programadores experimentados. Cuando los programadores sin experiencia intentan ajustar el código, existe un riesgo real de que el rendimiento se degrade y de que aparezcan errores, a veces solo visibles cuando aparece un caso extremo. Los errores pequeños se convierten en una preocupación importante cuando el código de Python se usa para fines críticos las 24 horas del día, los 7 días de la semana, como el análisis científico.

La refactorización también puede conducir a una degradación inesperada del rendimiento. Incluso si solo se trata de un impacto del 5 % en el rendimiento, una actualización de código mal ejecutada puede crear rápidamente facturas mucho más altas en costosas plataformas HPC de pago por uso.

¿Apegarse al viejo Python? Ese es un riesgo aún mayor.

Si piensa en el arduo trabajo y los riesgos que implica ajustar el código, no sorprende que los usuarios a menudo opten por apegarse a las versiones anteriores de Python. Ejecutar el código existente en una versión desactualizada de Python evita muchos desafíos porque no necesita refactorizar: está manteniendo su código tal como estaba.

Por lo general, los proveedores de software harán exactamente eso: solo actualizarán su software para que coincida con una nueva versión de Python cuando lancen una nueva versión del producto de software. Si compró una versión específica, que se ejecuta en, por ejemplo, Python 2.7, está atascado y necesita continuar ejecutando Python 2.7 sin importar qué.

No parece un gran problema, pero confiar en bloques de construcción obsoletos y sin soporte para su computación es una pesadilla para DevSecOps. Aparecerán nuevas vulnerabilidades y los parches necesarios simplemente no llegarán. Confiar en versiones antiguas de lenguajes de programación, por lo tanto, introduce grandes riesgos en su entorno informático.

Hay pocas opciones en él, ¿o sí?

Lo más responsable es actualizar la versión de Python cuando sea necesario y editar el código que se ejecuta en ella, pero no hay una forma indolora de hacerlo. Siendo realistas, debido a la falta de recursos, la refactorización a menudo no se realiza, con consecuencias potencialmente costosas.

Hay una gran necesidad de un mejor enfoque, y esto es lo que es interesante. La situación que acabamos de describir en torno a las versiones de Python se ve con frecuencia en el mundo de la informática. Por ejemplo, es común que las organizaciones ejecuten versiones del sistema operativo Linux que ya no están cubiertas por el soporte oficial del proveedor, asumiendo el riesgo de que las vulnerabilidades de seguridad no se corrijan. solo para asegurarse de que las aplicaciones críticas no se rompan.

Ese es un problema para las actualizaciones de idioma, así como también para otras piezas de la infraestructura de TI. Pero, en los últimos años, las soluciones de parches avanzadas permiten a las empresas extender el ciclo de vida de soporte habitual para múltiples componentes, desde sistemas operativos completos hasta bibliotecas compartidas críticas específicas. Aquí en TuxCare, hemos desarrollado varias soluciones que extienden la operación segura del software antiguo más allá del final de la vida útil del proveedor.

Ejecución de aplicaciones antiguas de Python de forma segura

¿Qué pasaría si se pudiera hacer lo mismo con las versiones de idiomas? Bueno, ahora puede esperar ejecutar su antiguo código de Python en una versión antigua de Python, pero sin los riesgos que implica. No hay construcciones de lenguaje en desuso, ni tampoco vulnerabilidades.

En otras palabras, el soporte de ciclo de vida extendido para versiones de lenguaje, como Python, se está convirtiendo en una realidad. Pronto podrá mantener su código de Python seguro y protegido sin la necesidad de volver a escribir una sola línea de código, simplemente obteniendo soporte de ciclo de vida extendido para Python, lo que le brinda la misma protección de seguridad que una actualización de la versión completa.

Programado para implementarse a precios accesibles, el soporte de ciclo de vida extendido de Python de TuxCare ayudará a su organización a lidiar con las preguntas difíciles sobre las cargas de trabajo antiguas de Python. Esté atento a nuestro anuncio, que llegará pronto.



ttn-es-57