Slide 1

Slide 1 text

Python, Web - непопулярные решения Егор Назаркин

Slide 2

Slide 2 text

Если скучно • http://kharkivpy.org.ua • mailto: [email protected]

Slide 3

Slide 3 text

что такое py-web? CGI mod_python WSGI (PEP 3333)

Slide 4

Slide 4 text

Среда исполнения • Собственное решение • IaaS • PaaS (GAE, Heroku, dotCloud, etc.)

Slide 5

Slide 5 text

Custom и IaaS Задача формирует потребности Любой формат системного I/O

Slide 6

Slide 6 text

PaaS Платформа диктует ограничения Высокий уровень абстракции I/O

Slide 7

Slide 7 text

PaaS платформы dotCloud, Heroku... — sys.env GAE — набор собственных API

Slide 8

Slide 8 text

GAE webapp vs workers async datastore memcache channels (comet) cloudSQL Blobstore OAuth XMPP Mail logs images task queues sockets search URL fetch users (google id)

Slide 9

Slide 9 text

GAE Большинство full-stack решений Отдельные сервисы придется поддерживать самостоятельно

Slide 10

Slide 10 text

WSGI middleware CherryPy Werkzeug WebOb gunicorn свой собственный?

Slide 11

Slide 11 text

Неблокирующие tornado twisted.web circuits.web gunicorn gevent

Slide 12

Slide 12 text

Frameworks • NIH (not invented here) • На основе компонентов

Slide 13

Slide 13 text

Zope • Дедушка современных веб-решений • Пришел из CGI-only времен • Enterprise подход • Много концепций используется последователями

Slide 14

Slide 14 text

Plone • CMS фреймворк поверх Zope2 • oDesk - одна вакансия

Slide 15

Slide 15 text

Turbogears • paster, repoze.who, zope.sqlalchemy • scaffolding • предлагает структуру • почти настоящий MVC

Slide 16

Slide 16 text

Turbogears • вакансий — ноль • встречается в поддержке • о новых проектах не слышно

Slide 17

Slide 17 text

Pyramid • Последователь pylons/bfg • базируется на paster и webob • почти full-stack (scaffolding, etc.) • подробная документация

Slide 18

Slide 18 text

bottle • похож на попытку облегчить Flask • расширяется плагинами • однофайловые микроприложения • поддерживает 17 адаптеров для запуска (9 sync, 8 async)

Slide 19

Slide 19 text

wheezy . web • Щірий український • Предоставляет wsgi application • “почти” full-stack (нет orm)

Slide 20

Slide 20 text

Flask • самый большой hype 2012-2013 • построен на werkzeug • разные модели использования • есть api для расширения • рекомендации, документация, community - all inclusive

Slide 21

Slide 21 text

Nagare • Stackless Python! • строится из автономных компонентов • страница — композиция из представлений • нет управляемого цикла request/ response

Slide 22

Slide 22 text

Nagare

Slide 23

Slide 23 text

GIL

Slide 24

Slide 24 text

twisted . web • twisted — матерь всея протоколов • HTTP — протокол, twisted — сервер

Slide 25

Slide 25 text

twisted . web • соглашения, компоненты, ресурсы • вложенные ресурсы • XML-RPC, SOAP • Nevow, Mantissa

Slide 26

Slide 26 text

tornado • Неблокирующий http/comet сервер • Компоненты, характерные для web-framework

Slide 27

Slide 27 text

gevent • Синхронный API поверх libevent • TCP/SSL и WSGI • stdlib monkey-patching

Slide 28

Slide 28 text

Вопросы? follow @nimnull speakerdeck.com/nimnull