Есть несколько ресурсов (насколько я могу судить, их очень мало), предполагающих, что обслуживание веб-приложения 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.
Так что нетрудно понять, в каком направлении двигаться.
Для локального размещения вы можете использовать Windows Server для размещения Linux VMs (Hyper-V) или использовать контейнеры Linux Docker, или использовать сервер Linux напрямую. Даже у самых ориентированных на Windows клиентов, с которыми я работал, сегодня запущены некоторые контейнеры Linux Docker.
Обратите внимание, что это применимо не только к веб-приложениям Python. Веб-приложения PHP/Go/Java/Node.js сталкиваются с теми же проблемами, поэтому их лучше размещать на Linux.