IIS/Win Server (オンプレミス) を使用して Python Flask Web アプリを提供するのは、手間をかけるだけの価値があるでしょうか?

IIS/Win Server (オンプレミス) を使用して Python Flask Web アプリを提供するのは、手間をかけるだけの価値があるでしょうか?

IIS から Python Web アプリを提供することは可能であることを示唆するリソースはいくつかありますが (私が知る限りではごくわずかです)、実際にこれに関する実際の話を聞いたり読んだりしたことはありません。

ほぼ Windows のみを使用している組織では、このアプローチを検討する価値があるかどうかを知りたいです。

たとえば、Ubuntu マシン (組織内に少なくともある程度の知識がある) から Python を実行するためのスキルアップと投資は、はるかに優れた選択肢でしょうか?

これは VM 上のオンプレミス展開用です。クラウド サービスで Python を実行する場合は、当然ながらまったく別の話になります。

答え1

IIS/Azure App Services (Windows) 上の Python は、運用サイトでも非常に人気のあるオプションでした (Azure がまだ Windows Azure と呼ばれていた頃)。HttpPlatformHandler または wfastcgi のいずれかを使用して、IIS がトラフィックを Python プロセスに転送するようにすることができます。

しかし、本当の課題は、Python ウェブ フレームワーク/アプリが通常 Windows 上で十分に開発/テストされていないという事実から生じます。そのため、何かが壊れた場合、多くのフレームワーク/アプリ ベンダーが無視している少数派ユーザー ベースになることがほぼ確実です。

マイクロソフトでさえ、IIS/WindowsでのPythonの試みを断念し、顧客にAzure App Services(Linux)への移行を促しています。

重要

Microsoft は、この記事で説明されているように、App Service on Windows の Python 拡張機能を非推奨にし、代わりに App Service on Linux への直接展開を採用しました。

https://docs.microsoft.com/en-us/visualstudio/python/azure-app-service での Python の管理?view=vs-2019

したがって、どちらの道を進むべきかは簡単にわかります。

オンプレミスの場合、Windows Server を使用して Linux VM (Hyper-V) をホストしたり、Linux Docker コンテナーを使用したり、Linux サーバー ボックスを直接使用したりできます。私が関わった最も Windows 中心の顧客でさえ、現在 Linux Docker コンテナーを実行しています。

これは Python Web アプリにのみ当てはまるわけではないことに注意してください。PHP/Go/Java/Node.js Web アプリも同じ課題に直面しているため、Linux でホストする方が適しています。

関連情報