Fork me on GitHub

Июль 22–23

PyCon Russia 2018

Рус Eng

Дмитрий Ходаков, Авито

Tornado vs Aiohttp

На дворе 2018й год, кругом микросервисы в kubernetes и машинное обучение. У нас в Авито полно и того, и другого. Когда у вас на руках несколько десятков нагруженных микросервисов поневоле задумаешься о производительности асинхронных приложений.

В докладе я расскажу про:

— типичные проблемы и подводные камни при построении нагруженного микросервисного фреймворка;

— профилирование асинхронных приложений;

— фундаментальные отличия асинхронности tornado и aiohttp;

— честное сравнение tornado vs aiohttp в условиях, приближенных к боевым.

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

Вадим Пуштаев, Mail.Ru

Автотесты в проектах Поиска Mail.Ru

Я расскажу, как мы в Поиске пишем юнит-тесты. От мелочей типа: как именовать, какова структура каждого теста и т.д., до крупных вопросов: как дела с TDD, как мокать, как быть с внешними системами, типа баз данных, с файловой системой, как мы живем с fixtures, почему надо тестировать приватные методы и подобное.

Доклад будет полезен для любого уровня разработчиков и широкого спектра проектов: от веб-приложений до крупных систем типа биллинга.

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

Александр Хаёров, Ingram Micro Cloud

Окружение Python разработчика 2k18

Годами я использую Python и меня сопровождает разнообразное окружение для разработки. Главное — я никогда не был доволен им на все 100%. До текущего момента. В докладе я расскажу обо всех инструментах, вспомогательных утилитах и в целом об экосистеме, которая сопровождает современную коммерческую и промышленную открытую разработку на Python. Я сложу воедино такие вещи как pyenv, pipenv и pipsi. Чтобы обогатить кругозор я затрону тему пакетных менеджеров, различных версий языка и зависимостей библиотек в других популярных языках. Описывая и сравнивая, мы придем к истине и, возможно, лучшему окружению разработчика.

Виталий Давыдов, POTEHA DEVELOPERS

Serverless + Python на примере AWS Lambda

В настоящее время для деплоя веб-сервисов компании используют кластеры из контейнеров, которые нужно поддерживать. Несколько лет назад на рынке появилась новая FAAS (function-as-a-service) технология для разработки и деплоя под названием Serverless. Serverless практически полностью исключает необходимость devops и позволяет разработчикам сфокусироваться на написании бизнес-логики приложений. На Serverless можно запускать как высоконагруженные сервисы, так и быстро разрабатывать MVP и прототипы.

В докладе мы поговорим о том, как перейти на Serverless, какие решения есть на рынке и сколько это стоит. После доклада мы рассмотрим небольшую live демку по деплою API на Serverless с использованием Python.

Доклад будет полезен стартапам, малым и средним компаниям, которые хотят оптимизировать стоимость разработки, время на devops и time-to-production.

Евгений Слезко, Marilyn System

Переход на SOA в существующем Python-проекте. Тяжеловато или ничего?

В дколаде я поделюсь нашим опытом внедрения сервисно-ориентированной архитектуры в системе, которая разрабатывается на языке Python уже более 5 лет. Зачем это нужно? Какие проблемы решает, а какие - создает? О чем стоит позаботиться в самом начале? Какой профит как с точки зрения инженера, так и с точки зрения управления разработкой?

Доклад рассчитан на опытных разработчиков, системных архитекторов и руководителей разных уровней, которые столкнулись или столкнутся с вопросом перехода на сервисно-ориентированную архитектуру в своих проектах.

Christian Heimes, Red Hat

SSLError, now what?

TLS/SSL is the most important and widely-used protocol for secure and encrypted communication, e.g. HTTPS. It offers more than just encryption. TLS also ensures data integrity and strong authentication with X.509 certificates. But it provides merely a false sense of security if you use it wrong.

Have you ever encountered SSLError while connecting to a server, but you didn’t understand what is going on? Are you running production code without TLS/SSL protection or with certificate validation disabled, because you couldn’t figure out how to make it work correctly?

I’ll give you the rundown of the basic cryptographic building blocks, protocol handshake, inner structure of certificates, and PKI. You’ll learn about the best practices, debugging tools and tips how to diagnose TLS/SSL and how to deal with certificates.

This talk is suitable for both beginner and advanced Pythonistas.

Александр Меньшиков, Лаборатория Конструирования Интеллектуальных Систем

Мастер-класс «Робототехника с Python и ROS»

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

На мастер-классе мы с вами:

— поговорим о самом популярном фреймворке в сфере робототехники, его архитектуре, возможностях и применении;

— узнаем, как с его помощью взаимодействовать с микроконтроллерами;

— научим систему находить объекты всего лишь одной веб-камерой;

— заставим подчиняться голосовым командам и отчитываться о каждом его шаге;

— и, конечно, напишем на Python собственные компоненты, объединим их в единую систему и увидим результат.

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

Марина Камалова, Яндекс

Архитектура чат-бота

Я расскажу, из каких python-компонентов можно создать текстового чат-бота. Что происходит от момента получения пользовательского сообщения до момента получения ответа от бота (NLU, NLG, ML-классификаторы). Как адаптировать бота под разные мессенджеры и не только мессенджеры. А также, как повысить отказоустойчивость бота на примере Telegram API.

Доклад будет интересен всем, кто так или иначе интересуется созданием чат-ботов, в том числе для Telegram. Возможно, тем, кто хочет применить знания по NLP.

После моего доклада вы поймёте, как и из каких «кирпичиков» сделать чат-бота, а также как сделать его на берегу отказоустойчивым и масштабируемым.

Юрий Селиванов, EdgeDB, asyncio

Asyncio сегодня и завтра

Alejandro Saucedo, Eigen Technologies

Industrial Data Pipelines with Python and Airflow

This talk will provide a practical deep dive on how to build industry-ready machine learning / data pipelines using Airflow. This will consist of a practical presentation that will build from the basics of Airflow, and show how it is possible to build scalable and distributed machine learning data pipelines using a distributed architecture with a Celery backend. I will provide insights on some of the key learnings I've obtained throughout my career building & deploying machine learning systems in critical environments across several sectors.

Stephan Jaensch, Yelp

Type annotations with large(r) codebases

You've heard about type annotations, you know they help reduce bugs and improve documentation especially for large codebases, and you've attended an introductory talk or read a tutorial about using them. But how do you get started using them with your big, existing codebase? How do you make sure your colleagues will be annotating new code they write - or existing code they're changing? And how do you get around some of the issues you might run into when using the still-beta type checker mypy on your codebase?

This talk will start where the typical introductory Python type annotation talks end and discuss the real-world challenges when starting to annotate types with an existing codebase of tens or hundreds of thousands of lines of code. I'll walk you through best practices learned from doing just that at Yelp, telling you about some of the roadblocks we hit (and how we got past them). We'll also take a look at:

— how you can get the most out of type annotations even with non-annotated third-party libraries

— how to deal with decorators and other things that currently don't always work well with annotations

— when the only way to get proper type checking is through refactoring your code.

Денис Катаев, Тинькофф

SQLAlchemy: Python vs Raw SQL

Мы ежедневно работаем с реляционными базами данных: изменяем объекты, накатываем миграции, создаем индексы. Но иногда нужно аггрегировать данные по нескольким полям или хочется попробовать свежие возможности реляционных баз данных, например, оператор Union. Django или PeeWee умеют выражать только простые вещи, поэтому приходится использовать сырой SQL.

А вот библиотека SQLAlchemy может выразить любой сложный запрос на чистом Питоне. Это позволяет писать понятный код и с легкостью его рефакторить.

Разберемся на примерах, как SQLAlchemy устроена изнутри, как она упрощает нашу работу и когда стоит ее применять (спойлер — всегда).

Сергей Борисов, ЦНС

Воркшоп «Cython — программирование на C для людей»

Python имеет отличные возможности для интеграции с кодом на языке C. Это позволяет с небольшими затратами оптимизировать критичные к производительности функции, сохраняя гибкость. Иногда это проще, чем переписывать весь сервис на Go / Rust / . Я покажу, какими инструментами можно пользоваться для решения таких задач, и мы вместе напишем асинхронный клиент с простым протоколом.

Алексей Кузьмин, ЦНС

Асинхронность изнутри

Асинхронность способна вдохнуть новую жизнь в ваши программы. При правильном применении она способна драматически повысить производительность вашего сервисов. Однако, чтобы эффективно и качественно использовать этот инструмент, нужно хорошо понимать, как он устроен. В докладе я расскажу про сильные и слабые стороны асинхронного программирования, покажу, как устроен этот механизм внутри Python’а. Я рассмотрю несколько полезных библиотек и инструментов. В завершении мы поговорим про то, как правильно измерять и отлаживать асинхронный код. Доклад будет полезен любому, кто пишет production-код.