Стоит ли обслуживать веб-приложение Python Flask с помощью IIS/Win Server (локально) затраченных усилий?

Стоит ли обслуживать веб-приложение Python Flask с помощью IIS/Win Server (локально) затраченных усилий?

Есть несколько ресурсов (насколько я могу судить, их очень мало), предполагающих, что обслуживание веб-приложения Python из IIS осуществимо, но я не слышал и не читал ни одной реальной истории об этом на практике.

Я хочу узнать, стоит ли вообще рассматривать такой подход в организации, которая занимается почти исключительно продажей Windows.

Является ли повышение квалификации и инвестиции в запуск Python, скажем, на машине с Ubuntu (о которой в организации имеются хотя бы некоторые знания) гораздо лучшим вариантом?

Это для локального развертывания на виртуальных машинах. Запуск Python в облачном сервисе — это, очевидно, совсем другая история.

решение1

Python на IIS/Azure App Services (Windows) был довольно популярным вариантом (когда Azure все еще назывался Windows Azure), также и для производственных сайтов. Вы можете использовать HttpPlatformHandler или wfastcgi, чтобы IIS перенаправлял трафик в процессы Python.

Однако реальные проблемы возникают из-за того, что веб-фреймворки/приложения Python обычно недостаточно хорошо разработаны/протестированы на Windows, поэтому, если что-то сломается, вы почти наверняка окажетесь в меньшинстве пользователей, которое многие поставщики фреймворков/приложений игнорируют.

Даже Microsoft решила отказаться от своих попыток внедрения Python в IIS/Windows и настоятельно рекомендует своим клиентам перейти на Azure App Services (Linux).

Важный

Корпорация Microsoft прекратила поддержку расширений Python для App Service в Windows, описанных в этой статье, в пользу прямого развертывания в App Service в Linux.

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

Так что нетрудно понять, в каком направлении двигаться.

Для локального размещения вы можете использовать Windows Server для размещения Linux VMs (Hyper-V) или использовать контейнеры Linux Docker, или использовать сервер Linux напрямую. Даже у самых ориентированных на Windows клиентов, с которыми я работал, сегодня запущены некоторые контейнеры Linux Docker.

Обратите внимание, что это применимо не только к веб-приложениям Python. Веб-приложения PHP/Go/Java/Node.js сталкиваются с теми же проблемами, поэтому их лучше размещать на Linux.

Связанный контент