Lohnt sich die Bereitstellung einer Python Flask-Web-App mit IIS/Win Server (vor Ort)?

Lohnt sich die Bereitstellung einer Python Flask-Web-App mit IIS/Win Server (vor Ort)?

Es gibt einige Ressourcen (sehr wenige, soweit ich weiß), die nahelegen, dass die Bereitstellung einer Python-Web-App über IIS machbar ist, ich habe jedoch keine Praxisberichte dazu gehört oder gelesen.

Ich möchte wissen, ob dieser Ansatz in einer Organisation, in der fast ausschließlich Windows verwendet wird, überhaupt eine Überlegung wert ist.

Ist die Weiterbildung und Investition in die Ausführung von Python beispielsweise auf einer Ubuntu-Maschine (für die in der Organisation zumindest einige Kenntnisse vorhanden sind) eine wesentlich bessere Option?

Dies gilt für die Bereitstellung vor Ort auf VMs. Python auf einem Cloud-Dienst auszuführen ist natürlich eine ganz andere Geschichte.

Antwort1

Python auf IIS/Azure App Services (Windows) war eine recht beliebte Option (als Azure noch Windows Azure hieß), auch für Produktionssites. Sie können entweder HttpPlatformHandler oder wfastcgi verwenden, sodass IIS den Datenverkehr an die Python-Prozesse weiterleitet.

Die wirklichen Herausforderungen ergeben sich jedoch aus der Tatsache, dass Python-Web-Frameworks/-Apps unter Windows im Allgemeinen nicht besonders gut entwickelt/getestet sind. Wenn also etwas schiefgeht, gehören Sie mit ziemlicher Sicherheit zu der Minderheit der Benutzer, die von vielen Framework-/App-Anbietern vernachlässigt wird.

Sogar Microsoft hat beschlossen, seine Versuche mit Python auf IIS/Windows aufzugeben und fordert seine Kunden auf, auf Azure App Services (Linux) zu migrieren.

Wichtig

Microsoft hat die Python-Erweiterungen für App Service unter Windows, wie in diesem Artikel beschrieben, zugunsten einer direkten Bereitstellung für App Service unter Linux abgelehnt.

https://docs.microsoft.com/en-us/visualstudio/python/managing-python-on-azure-app-service?view=vs-2019

Es ist also nicht schwer zu erkennen, in welche Richtung man gehen soll.

Vor Ort können Sie Windows Server verwenden, um Linux-VMs (Hyper-V) zu hosten, Linux-Docker-Container verwenden oder direkt eine Linux-Server-Box verwenden. Sogar die Windows-zentriertesten Kunden, mit denen ich gearbeitet habe, haben heute einige Linux-Docker-Container im Einsatz.

Beachten Sie, dass dies nicht nur auf Python-Webanwendungen zutrifft. PHP-/Go-/Java-/Node.js-Webanwendungen stehen vor denselben Herausforderungen und sollten daher besser unter Linux gehostet werden.

verwandte Informationen