SlideShare a Scribd company logo
1
About
Python developer @ DataRobot
2
Benchmark [1]
3
Benchmark
4
Database drivers
● aiocouchdb
● aiomysql
● aioredis
● aiozmq
● aioes
● aiopg
● aiokafka
● aioodbc
● aiomcache
5
SQLAlchemy
6
Faster postgre client?
$ pip install asyncpg
7
Mongo? [2]
8
aiohttp_jinja2
9
aiohttp_debugtoolbar
10
aiohttp_debugtoolbar
$ pip install aiohttp_debugtoolbar
11
aiohttp_debugtoolbar
12
aiohttp_debugtoolbar
13
aiohttp_debugtoolbar
14
aiohttp_session
● SimpleCookieStorage
● EncryptedCookieStorage
● RedisStorage
15
aiohttp_session
16
aiohttp_security
● AbstractIdentityPolicy
● AbstractAuthorizationPolicy
● remember()
● forget()
● authorized_userid()
● permits()
17
aiohttp_security
18
aiohttp_security
19
Slowloris
$ nmap --script http-slowloris-check
127.0.0.1 -p 8080
20
Web-sockets [3]
21
Middleware
22
Middleware
23
aiohttp client [4]
24
aiohttp_admin
25
aiohttp_admin
26
Other tools [5]
● aiohttp_runserver
● aiohttp_cors
● aiohttp_traversal
● aiothrottle
● aiohttp_mako
● and more ...
27
Project structure
28
Debug
$ export PYTHONASYNCIODEBUG=1
● explicit loop
● releasing resources
● awaititng coroutines
$ python script.py -Wdefault
29
Debug
$ Task was destroyed but it is pending!
task: <Task pending coro=<fetch_bad() running at demo.py:
14> wait_for=<Future pending cb=[Task._wakeup(),
BaseSelectorEventLoop._sock_connect_done(10)()]>>
30
Debug
$ ConnectionResetError: [Errno 54] Connect call failed
('127.0.0.1', 8080)
$ OSError: [Errno 24] Too many open files
31
Debug
32
Testing
33
Testing
34
Testing [6]
35
Go production!
$ gunicorn app_module:app
--bind localhost:8080 --worker-class
aiohttp.worker.GunicornWebWorker
36
Graceful shutdown
37
Production architecture 38
Resources
1. klen.github.io/py-frameworks-bench/
2. emptysqua.re/blog/
3. igordavydenko.com/talks/lvivpy-5/
4. pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html
5. github.com/python/asyncio/wiki/ThirdParty
6. asvetlov.github.io/pytest-slides/
39
Thanks for your attention
https://github.com/kpidata/webcamp16
bmwant@gmail.com
@bmwant
bmwlog.pp.ua
40
Let’s have some fun!
my-mail [ at ] gmail [ dot ] com
41
Eyjafjallajokull
PyPI
42

More Related Content

What's hot (10)

PPTX
Иван Новиков «Elastic search»
Mail.ru Group
 
PDF
Firmware Extraction & Fuzzing - Jatan Raval
NSConclave
 
PDF
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
NSConclave
 
PPTX
Nginx warhead
Sergey Belov
 
PDF
Openwrt frontend backend
晓东 杜
 
PPTX
Capistrano与jenkins(hudson)在java web项目中的实践
crazycode t
 
PDF
Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker"
Defcon Moscow
 
PDF
Security of go modules and vulnerability scanning in go center (1)
Deep Datta
 
PPTX
Hunting Performance Problems in Node.js and beyond
Daniel Khan
 
PPTX
Security in PHP - 那些在滲透測試的小技巧
Orange Tsai
 
Иван Новиков «Elastic search»
Mail.ru Group
 
Firmware Extraction & Fuzzing - Jatan Raval
NSConclave
 
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
NSConclave
 
Nginx warhead
Sergey Belov
 
Openwrt frontend backend
晓东 杜
 
Capistrano与jenkins(hudson)在java web项目中的实践
crazycode t
 
Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker"
Defcon Moscow
 
Security of go modules and vulnerability scanning in go center (1)
Deep Datta
 
Hunting Performance Problems in Node.js and beyond
Daniel Khan
 
Security in PHP - 那些在滲透測試的小技巧
Orange Tsai
 

Viewers also liked (20)

PDF
WebCamp 2016: Python. Вячеслав Каковский: Real-time мессенджер на Python. Осо...
WebCamp
 
PDF
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp
 
ODP
Kyua and Jenkins: Testing Framework for BSD
Craig Rodrigues
 
PDF
Python twisted
Mahendra M
 
PDF
Обзор фреймворка Twisted
Python Meetup
 
PPTX
Asynchronous Python with Twisted
Adam Englander
 
PDF
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp
 
PDF
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp
 
PDF
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp
 
PDF
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp
 
PDF
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp
 
PDF
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp
 
PDF
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp
 
PDF
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp
 
PDF
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp
 
PDF
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp
 
PDF
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp
 
PDF
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp
 
ODP
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp
 
PDF
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp
 
WebCamp 2016: Python. Вячеслав Каковский: Real-time мессенджер на Python. Осо...
WebCamp
 
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp
 
Kyua and Jenkins: Testing Framework for BSD
Craig Rodrigues
 
Python twisted
Mahendra M
 
Обзор фреймворка Twisted
Python Meetup
 
Asynchronous Python with Twisted
Adam Englander
 
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp
 
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp
 
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp
 
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp
 
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp
 
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp
 
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp
 
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp
 
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp
 
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp
 
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp
 
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp
 
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp
 
Ad

Similar to WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разработки веб-приложений. (20)

KEY
PyCon AU 2012 - Debugging Live Python Web Applications
Graham Dumpleton
 
PDF
High Performance Django 1
DjangoCon2008
 
PDF
High Performance Django
DjangoCon2008
 
PDF
High Performance Python on Apache Spark
Wes McKinney
 
PDF
High-Performance Python On Spark
Jen Aman
 
PDF
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
CODE BLUE
 
KEY
Django deployment with PaaS
Appsembler
 
PPTX
Relational Database Access with Python ‘sans’ ORM
Mark Rees
 
PDF
EuroPython 2013 - Python3 TurboGears Training
Alessandro Molina
 
PDF
Open erp on ubuntu
Iker Coranti
 
PPTX
Pymongo password change made easy
Darshan Jayarama
 
PDF
Www Kitebird Com Articles Pydbapi Html Toc 1
AkramWaseem
 
PDF
Testing python security pyconweb
Jose Manuel Ortega Candel
 
PDF
Django Dev Environment Howto
Tzu-ping Chung
 
PPTX
Pypy is-it-ready-for-production-the-sequel
Mark Rees
 
PDF
PyConUK 2014 - PostMortem Debugging and Web Development Updated
Alessandro Molina
 
PPTX
How (not) to kill your MySQL infrastructure
Miklos Szel
 
PDF
Testing python security PyCon IE
Jose Manuel Ortega Candel
 
PDF
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
Pôle Systematic Paris-Region
 
PDF
Tools for Solving Performance Issues
Odoo
 
PyCon AU 2012 - Debugging Live Python Web Applications
Graham Dumpleton
 
High Performance Django 1
DjangoCon2008
 
High Performance Django
DjangoCon2008
 
High Performance Python on Apache Spark
Wes McKinney
 
High-Performance Python On Spark
Jen Aman
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
CODE BLUE
 
Django deployment with PaaS
Appsembler
 
Relational Database Access with Python ‘sans’ ORM
Mark Rees
 
EuroPython 2013 - Python3 TurboGears Training
Alessandro Molina
 
Open erp on ubuntu
Iker Coranti
 
Pymongo password change made easy
Darshan Jayarama
 
Www Kitebird Com Articles Pydbapi Html Toc 1
AkramWaseem
 
Testing python security pyconweb
Jose Manuel Ortega Candel
 
Django Dev Environment Howto
Tzu-ping Chung
 
Pypy is-it-ready-for-production-the-sequel
Mark Rees
 
PyConUK 2014 - PostMortem Debugging and Web Development Updated
Alessandro Molina
 
How (not) to kill your MySQL infrastructure
Miklos Szel
 
Testing python security PyCon IE
Jose Manuel Ortega Candel
 
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
Pôle Systematic Paris-Region
 
Tools for Solving Performance Issues
Odoo
 
Ad

More from WebCamp (15)

PDF
WebCamp 2016: Python.Максим Климишин.Типизированный Python
WebCamp
 
PDF
WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции ...
WebCamp
 
PDF
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp
 
PDF
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp
 
PDF
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp
 
PDF
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp
 
PDF
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp
 
PDF
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp
 
PDF
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp
 
PDF
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp
 
PDF
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp
 
PDF
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp
 
PPTX
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp
 
PDF
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp
 
PDF
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp
 
WebCamp 2016: Python.Максим Климишин.Типизированный Python
WebCamp
 
WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции ...
WebCamp
 
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp
 
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp
 
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp
 
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp
 
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp
 
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp
 
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp
 
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp
 
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp
 
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp
 
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp
 
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp
 
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp
 

Recently uploaded (20)

PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 

WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разработки веб-приложений.