Рейтинг:1

Стоит ли обслуживать веб-приложение Python Flask с сервером IIS/Win (локально)?

флаг cn

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

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

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

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

Michael Hampton avatar
флаг cz
Я никогда не слышал о том, что _производственные_ приложения Python запускаются за IIS или в Windows, если на то пошло, но я полагаю, что все возможно. Технически вы, безусловно, можете это сделать; это немного отличается от проксирования любого другого веб-приложения.
mforsetti avatar
флаг tz
Вместо (обратного) проксирования IIS [поддерживает WSGI] (https://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019) через [`wfastcgi`](https://pypi.org/project/wfastcgi/); хотя будут различия в использовании Python в Windows по сравнению с * nix, особенно если вы начнете использовать внешние модули.
davidlars avatar
флаг cn
Спасибо, подход wfastcgi заслуживает внимания. Надеюсь, использование внешних модулей не вызовет затруднений. Нагрузка на эти приложения не будет слишком большой. Внутренние приложения для ограниченного круга пользователей. Ну, думаю, попробовать не помешает. Определенно кажется редкой практикой с небольшой помощью где-либо, если / когда все идет наперекосяк.
Рейтинг:3
флаг vn

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

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

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

Важный

Корпорация Майкрософт объявила устаревшим расширение Python для службы приложений Windows, как описано в этой статье, в пользу прямого развертывания в службу приложений в Linux.

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

Так что, куда идти, нетрудно увидеть.

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

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.