Мы с
ad_null последние полтора года внедряем всякие решения на Python в
http://efind.ru . Ещё со времён работы в петерхосте, мы посматриваем на фреймворки
Django или там
Pylons. При всех прелестях языка, развитых библиотеках, очень хорошей реализации в общем и по мелочам - захостить как-то это негде.
Мы перепробовали различные подходы к запуску python-приложений на практике - и mod_python, и CGI, и FastCGI.. Что же выбрать? Массовая услуга должна подразумевать, по нашему мнению, и удобство развёртывания кода (ну там - не 100 настроек, а две три специфичные для развёртывания), и некоторую универсальность (поскольку уникальность технологий скорее вредит бизнесу из-за страха клиента остаться наедине с этой уникальностью), и эффективность использования (нагрузка и всё такое), и расширяемость (в том смысле, что мы должны всегда учитывать рост проекта клиента). Также, нам хотелось не ограничиваться хостингом только узкого набора фреймворков, а организовать именно полноценный хостинг для приложений на языке Python.
Какого-же было наше удивление, когда мы обнаружили, что разработки на python давно используют унифицированнй стандарт - "точки входа в приложение" что ли - для веб-приложений. Идея примерно такая - все сервера расчитанные на обслуживание python-приложений (это может быть модуль апача, FastCGI или чёрт в ступе) принимают некое соглашение о вызове приложения через "точку входа", все приложения принимают соглашение о такой точке входа. Есть спецификация описывающая эту точку входа и что она должна возвращать.
WSGI является стандартом Python и описан в
PEP 333. Приложение, написанное на WSGI, не знает кто его вызвал, для него абсолютно всё равно, запущен ли оно на mod_python под Apache или как FastCGI, или как CGI. Приложение и сервер выделяются в разные абстракции.
Наличие этого стандарта позволило нам отделить техническую реализацию хостинга от кода приложений. Это расширяет наши возможности в перспективе по специализации предоставления услуг хостинга python-приложений в зависимости от разных условий. Например, клиент может переходить с тестового тарифа, на нормальный, а потом на VIP, а потом и вообще уйти на свой сервер не парясь переделкой своих программ. WSGI поддерживают все популярные веб-приложения на Python. Многие из них считают WSGI основным способом публикации и поставляемые "коннекторы" к другим технологиям публикации являются всего-лишь прослойкой для WSGI (например, Django). Запуск многих из этих приложений на хостинге занимает несколько минут.
В качестве разминки перед великими свершениями мы сделали услугу хостинга WSGI-приложений
http://diphost.ru/help/wsgi/.
Хостинг Django - теперь реальность.
WSGI - это правильный выбор. Пробуйте, разрабатывайте, внедряйте, развивайтесь!
Мы и дальше будем вести наш народ к звёздам!...