Home IT Sicherheits Updates Eine einfachere Möglichkeit, alten Python-Code gesund und sicher zu halten

Eine einfachere Möglichkeit, alten Python-Code gesund und sicher zu halten

by nwna_de

Python hat seine Vor- und Nachteile, wird aber dennoch häufig verwendet. Beispielsweise wird Python häufig in Datenverarbeitungsaufgaben verwendet, selbst wenn es geeignetere Sprachen zur Auswahl gibt.

Wieso den? Nun, Python ist relativ einfach zu lernen. Jemand mit einem naturwissenschaftlichen Hintergrund kann Python viel schneller verstehen als, sagen wir, C. Allerdings schafft die inhärente Zugänglichkeit von Python auch ein paar Probleme.

Jedes Update von Python bedeutet einen großen Refactoring-Aufwand, der oft schlecht – oder gar nicht – bewältigt wird. Das führt zu schlechter Performance und Sicherheitslücken. Aber vielleicht gibt es einen besseren Weg: ein Tool, mit dem Ihre Python-Aufgaben Tag für Tag reibungslos und sicher ausgeführt werden. Lass uns einen Blick darauf werfen.

Es ist langsam, aber es macht den Job

Python ist nicht die schnellste Sprache, aber trotz ihrer relativen Nachteile wird sie oft für intensive Datenverarbeitungsoperationen verwendet. Denken Sie an maschinelles Lernen, Computer Vision oder sogar reine Mathematik in High Performance Computing (HPC)-Systemen.

Trotz seines guten Rufs werden daher sehr schwierige Workloads häufig mit Python-Code bewältigt, einfach weil es so praktisch zu verwenden ist. Wenn Sie einen naturwissenschaftlichen oder mathematischen Hintergrund haben, können Sie Python relativ einfach lernen und Ihren eigenen Code erstellen, der die Aufgabe erfüllt.

Aber wie so oft kann etwas, das zugänglich ist, auch viele Risiken mit sich bringen. Unerfahrene Programmierer, die Python-Code schreiben, können mit Aufgaben zu kämpfen haben, die erfahrenere Programmierer für selbstverständlich halten.

Refactoring ist mühsam … und ein Risiko

Wie alle Programmiersprachen wird Python häufig aktualisiert. Der Wechsel von Python 2.7 zu Python 3.0 beispielsweise brachte eine ganze Reihe von Features und Verbesserungen mit sich. Es bedeutet auch, dass alles, was für Python 2.7 geschrieben wurde, aufgrund von Änderungen in der Funktionsweise von Python für Python 3.0 “umgestaltet” werden muss.

Refactoring bezieht sich auf die Art und Weise, wie Programmierer eine Codebasis anpassen, um auf Umgebungsänderungen zu reagieren, wie z. B. eine Änderung der Sprachversion, oder einfach nur, um vorhandenen Code in irgendeiner Form zu verbessern. Ohne Refactoring bedeutet ein Wechsel von Python 2.7 zu Python 3.0 oft, dass der Code für Python 2.7 einfach nicht mehr so ​​gut oder gar nicht mehr funktioniert.

Und hier ist das Problem: Die Benutzer, die den ursprünglichen Python-Code geschrieben haben, verfügen möglicherweise nicht über das Fachwissen zum Refactoring. Schließlich sind sie oft Wissenschaftler – und keine erfahrenen Programmierer. Wenn unerfahrene Programmierer versuchen, Code anzupassen, besteht die reale Gefahr, dass die Leistung abnimmt und sich Fehler einschleichen – manchmal nur sichtbar, wenn ein Grenzfall auftritt. Kleine Fehler werden zu einem großen Problem, wenn Python-Code rund um die Uhr für kritische Zwecke wie wissenschaftliche Analysen verwendet wird.

Refactoring kann auch zu unerwarteten Leistungseinbußen führen. Selbst wenn es sich nur um einen Leistungseinbruch von 5 % handelt, kann ein schlecht ausgeführtes Code-Update schnell viel höhere Rechnungen auf teuren Pay-for-Use-HPC-Plattformen verursachen.

Bleiben Sie beim alten Python? Das ist ein noch größeres Risiko

Wenn Sie an die harte Arbeit und die Risiken denken, die mit der Anpassung von Code verbunden sind, ist es keine Überraschung, dass Benutzer sich oft dafür entscheiden, einfach bei älteren Versionen von Python zu bleiben. Das Ausführen von vorhandenem Code auf einer veralteten Version von Python vermeidet viele Herausforderungen, da Sie kein Refactoring durchführen müssen: Sie behalten Ihren Code so, wie er war.

Üblicherweise tun Softwareanbieter genau das – sie aktualisieren ihre Software nur, um sie an eine neue Python-Version anzupassen, wenn sie eine neue Version des Softwareprodukts veröffentlichen. Wenn Sie eine bestimmte Version gekauft haben – die beispielsweise auf Python 2.7 läuft, stecken Sie fest und müssen weiterhin Python 2.7 ausführen, egal was passiert.

Es hört sich nicht nach einem großen Problem an, aber sich auf veraltete, nicht unterstützte Bausteine ​​für Ihr Computing zu verlassen, ist ein Albtraum für DevSecOps. Neue Schwachstellen werden auftauchen und die benötigten Patches werden einfach nicht kommen. Sich auf alte Versionen von Programmiersprachen zu verlassen, bringt daher enorme Risiken in Ihre Computerumgebung ein.

Da bleibt wenig Auswahl – oder doch?

Die Verantwortung besteht darin, die Python-Version bei Bedarf zu aktualisieren und den darauf ausgeführten Code zu bearbeiten, aber es gibt einfach keinen einfachen Weg, dies zu tun. Realistischerweise wird Refactoring aufgrund fehlender Ressourcen oft nicht durchgeführt, was potenziell kostspielige Folgen haben kann.

Es besteht ein großer Bedarf an einem besseren Ansatz, und hier ist, was interessant ist. Die Situation, die wir gerade in Bezug auf Python-Versionen beschrieben haben, wird häufig in der Welt der Computer gesehen. Beispielsweise ist es üblich, dass Unternehmen Versionen des Linux-Betriebssystems ausführen, die nicht mehr vom offiziellen Anbieter-Support abgedeckt werden, und das Risiko eingehen, dass Sicherheitslücken nicht gepatcht werden nur um sicherzustellen, dass kritische Anwendungen nicht kaputt gehen.

Das ist ein Problem für Sprachaktualisierungen sowie andere Teile der IT-Infrastruktur. Aber in den letzten Jahren haben fortschrittliche Patching-Lösungen es Unternehmen ermöglicht, den üblichen Support-Lebenszyklus für mehrere Komponenten zu verlängern, von ganzen Betriebssystemen bis hin zu bestimmten kritischen gemeinsam genutzten Bibliotheken. Hier bei TuxCare haben wir mehrere Lösungen entwickelt, die den sicheren Betrieb älterer Software über das Lebensende des Anbieters hinaus verlängern.

Ältere Python-Apps sicher und zuverlässig ausführen

Was wäre, wenn dasselbe für Sprachversionen gemacht werden könnte? Nun, Sie können sich jetzt darauf freuen, Ihren älteren Python-Code auf einer alten Python-Version auszuführen – aber ohne die damit verbundenen Risiken. Keine veralteten Sprachkonstrukte – und auch keine Schwachstellen.

Mit anderen Worten, die erweiterte Lebenszyklusunterstützung für Sprachversionen – wie Python – wird Realität. Sie werden bald in der Lage sein, Ihren Python-Code sicher und geschützt aufzubewahren, ohne eine einzige Codezeile neu schreiben zu müssen, indem Sie einfach den erweiterten Lebenszyklus-Support für Python erhalten – der Ihnen den gleichen Sicherheitsschutz wie ein Vollversions-Upgrade bietet.

Der Python Extended Lifecycle Support von TuxCare wird zu erschwinglichen Preisen eingeführt und hilft Ihrem Unternehmen, die schwierigen Fragen zu älteren Python-Workloads zu bewältigen. Halten Sie Ausschau nach unserer Ankündigung – die in Kürze erscheint.

Via HN