Заявки на доклады

Поиск по тегам:

Тестирование и автоматизация

Мастер-класс "Эффективная Selenium-инфраструктура"

Иван Крутов

Используете Selenium для автоматического тестирования? Устали бороться с его тормозами и падениями? Не спите по ночам от количества памяти, потребляемой Java? Приходите на мастер-класс по эффективной инфраструктуре Selenium!

Вы узнаете, почему эффективная работа с Selenium невозможна без использования Docker и изоляции в контейнерах. За несколько простых шагов я с нуля (без установки Java!) разверну кластер Selenium на основе opensource-проектов Selenoid и Ggr, позволяющих за чашкой кофе заменить морально устаревший Selenium Grid и перестать мучиться с Selenium. Вы увидите, как легко можно записывать видео исполняющихся тестов, добавлять новые версии браузеров и смотреть логи в реальном времени. Приходите и узнаете много нового!

Технологии отказоустойчивости и катастрофоустойчивости, бэкапы
,
Devops / другое
,
Функциональное тестирование
,
Автоматизация тестирования
,
Интеграционное тестирование
,
Тестирование мобильного ПО
,
Тестирование фронтенда
Доклад принят в программу конференции

Базы данных и ORM

PonyORM: раскрываем секреты, как написать свой транслятор с Python на SQL

Александр Козловский
Александр Тищенко

Объектно-реляционный маппер PonyORM не просто "механически" переводит выражения с Питона на SQL, а пытается "понять смысл" выражения на Python, и затем формулирует аналогичную по смыслу конструкцию на языке SQL. В недавнем релизе PonyORM возможности языка запросов существенно расширились - добавилась возможность инлайнить в SQL-запрос методы и свойства объектов, а также создавать один запрос на базе другого. Всё это позволяет формулировать красивые и сложные запросы на SQL, используя для этого чистейший Python.

В этом докладе мы:
1) Покажем, какие выразительные запросы можно теперь писать с помощью PonyORM;
2) Расскажем, в чем возникают семантические сложности при трансляции Python в SQL;
3) Объясним, что нужно сделать для того, чтобы реализовать аналогичную трансляцию запросов в другом ORM (например, в SQLAlchemy), и почему код трансляции может быть гораздо проще, чем в Пони;
4) Раскроем, как устроена главная фишка транслятора PonyORM - система кэширования, позволяющая транслировать каждый запрос не более одного раза, сохраняя при этом бескомпромиссно полный динамизм питоновских выражений.

Программный комитет ещё не принял решения по этому докладу

Как правильно приготовить SQLAlchemy для управления конфигурацией сети фильтрации

Алексей Старков

Для управления конфигурацией сети фильтрации трафика мы используем БД на основе MySQL и SQLAlchemy. Особенностями системы конфигурации является довольно большое (сотни тысяч) число записей, сложная структура взаимосвязей между этими записями и преобладание количества пишущих запросов над читающими.

В своем докладе я на примерах расскажу, как повысить производительность такой системы, перейдя от самого наивного использования SQLAlchemy ORM к bulk-операциям и использованию SQLAlchemy Core, добившись сокращения времени выполнения некоторых операций с нескольких десятков до пары секунд и достигнув целевой скорости обработки в 10 команд в секунду.

Базы данных / другое
,
MySQL (MariaDB, Percona Server)
Программный комитет ещё не принял решения по этому докладу

Сеть, бэкенд и web-разработка

История обновления архитектуры проекта

Александр Боргардт

У любого проекта есть несколько стадий...

Когда начинаешь разрабатывать проект, ты используешь те инструменты и библиотеки, которые есть в наличии, и стараешься развивать его по мере возможности.

В докладе пойдет речь об истории, как начинался проект на tornado, затем для улучшения ходовых характеристик "подпилили" tornado + libev. Для асинхронной обработки сокетов и ответов базы данных и кэшей было построено решение из цепочки на tornado++ и C++ коде. Потом наступил 2018, произошли замены старых хаков на связку asyncio + uvloop + aiohttp и у проекта не понизилась производительность.

Поговорим о том, что не надо подпиливать интерпретатор ради 20%, как бывает "прикольно", и сколько трудов стоит жить с этим решением.

Программный комитет ещё не принял решения по этому докладу

High Performance Data Processing in Python

Donald Whyte

The Internet age generates vast amounts of data. Most of this data is unstructured and needs to post processed in some way. Python has become the standard tool for transforming this data into more useable forms.

numpy and numba are popular Python libraries for processing large quantities of data. When running complex transformations on large datasets, many developers fall into common pitfalls that kill the performance of these libraries.

This talk explains how numpy/numba work under the hood and how they use vectorisation to process large amounts of data extremely quickly. We use these tools to reduce the processing time of a large 600GB dataset from one month to less than an hour.

Python
Доклад принят в программу конференции

Опыт использования Apache Kafka в World of Tanks

Левон Авакян

Apache Kafka широко используется в проекте World of Tanks. В своем докладе я расскажу, как мы ее используем и для каких целей, с какими трудностями сталкиваемся и как мы их решаем.

Также не секрет, что в компании Wargaming для разработки широко применяется Python. Я расскажу о нашем опыте использования различных библиотек для Apache Kafka на Python.

Доклад принят в программу конференции

50 оттенков celery

Олег Чуркин

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

Программный комитет ещё не принял решения по этому докладу

Beyond jupyter. Системы построения пайплайнов обработки данных

Андрей Попов

* ETL-системы и дата-пайпланы.
* Когда уместно использовать celery/rabbit, а когда лучше построить дата-пайплайн.
* Сравнение Airflow и Luigi.
* Luigi 101 - основные концепции и примеры их использования.
* Как это выглядит в коде? Сравнение двух простых пайплайнов, сделанных с помощью Airflow и Luigi.

Программный комитет ещё не принял решения по этому докладу

Django under microscope

Артем Малышев

Из доклада вы узнаете все подробности из жизни внутренних механизмов Django от первого байта HTTP запроса до последнего байта ответа.

Настоящая Феерия от том, как работает парсер-форм, как компилируется SQL, как реализован шаблонизатор для HTML, как управляется connection pool и т.д. Всё это в хронологическом порядке обработки WSGI
объектов.

Фреймворки
,
Python
Доклад принят в программу конференции

Веб-разработка

Анализ приложения по его логам

Кирилл Дунаев

В докладе будет пояснено, что одна текстовая запись в логе недостаточно удобна для работы, т.к. она не задает жесткой структуры, и что добавление контекста в виде JSON-подобной структуры значительно облегчает навигацию по логам и дает большие преимущества.

Приведу пример самописной библиотеки, которая позволяет в любом синхронном приложении на django получить единообразные JSON-подобные логи, с помощью которых решаются повседневные проблемы разработчика, поддерживающего приложение. Дам примеры, как пользоваться такими логами
* для быстрой аналитики: трассировки входящих запросов при инцидентах и анализа исходящих на основе grep'ов по JSON-подобным структурам;
* для регулярного анализа производительности подсистем приложения.

Обеспечение единообразия логов на всех проектах компании дает грандиозное преимущество для скорости, с которой расследуются инциденты, системно выявляются проблемные места. Кроме того, оно позволяет системно подойти к дежурствам на проекте, благодаря чему разработчик получает ответы на вопросы: что тормозит, как чинить, и какую выгоду получит продукт от исправлений.

Фреймворки
,
Python
,
Архитектурные паттерны
,
Профилирование
,
Разработка библиотек, включая open source библиотеки
,
Проектирование информационных систем
,
Проектные артефакты, инструментарий
Программный комитет ещё не принял решения по этому докладу