Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE
Сколько существует python, столько все жалуются, что он медленный. Дошло до того, что даже автор языка признал, что так жить больше нельзя, и запустил проект по ускорению CPython. Но что именно можно (нужно?) ускорить в python? Какие изменения реализуются уже сейчас прямо на наших глазах? Нам предстоит погрузиться в некоторые аспекты работы интерпретатора, чтобы на примере одного из свежих изменений воочию увидеть, как же все-таки разгоняют python.
Есть устоявшееся выражение про «выстрелить себе в ногу», его интерпретация для языка Python гласит следующее: «Вы пытаетесь выстрелить себе в ногу, но то и дело попадаете промеж пальцев. А всё потому, что Питон настолько гибкий — что из пальцев выскальзывает». Оказывается, попасть в ногу намного проще. Минорным обновлением Python вполне реально дедлокнуть себе интерпретатор, а запуск подпроцесса с пользовательским кодом превращается в дебаг утечки памяти. В таких случаях поиск root cause проблемы чаще всего оказывается сильно сложнее, чем хотфикс. И без понимания что же все-таки произошло, можно наступать на те же грабли снова и снова. Посмотрим на пару таких случаев со стороны стандартной библиотеки: как диагностировали и что полезного из этого вынесли. Заодно разберем, чем плох системный вызов fork, и как им можно сделать себе очень больно. Послушать будет интересно всем сочувствующим, особенно тем, кто использует библиотеки subprocess, multiprocessing и concurrent.futures.
Отладка в IDE — это, конечно, здорово. Но что, если по какой-то причине она нам недоступна? Попробуем разобраться, как отлаживать код в консоли, контролировать расход процессорного времени и памяти, а также поанализируем сетевой траффик нашего приложения.
Эта история о том, как python разработчик и инженер-электронщик совместными усилиями сделали прототип промышленного ЧПУ. Мы использовали Python, Cython и язык С, чтобы разработать гибкую систему, способную управлять различными аппаратными конфигурациями для решения производственных задач. В рамках доклада мы рассмотрим следующие темы: Архитектура приложения ЧПУ: выбор дизайна, обеспечивающего гибкость и адаптивность системы Расчет точной траектории движения Интеграция аппаратного и программного обеспечения Достижение короткого цикла синхронизации для нескольких приводов (двигателей) Приглашаем вас принять участие в докладе, где мы поделимся опытом создания легковесного ЧПУ с поддержкой EtherCAT на Python и C.
В этом докладе я расскажу о неожиданностях использования serverless по сравнению с server подходом. Зачем и почему serverless нужен Как делать версионирование, canary deployment, релизы в AWS Lambda и другие вещи для production ready бэкенд разработки Об особенностях python разработки под лямбды, о бесполезности асинхронности, сложности дебага ошибок, о поражающей скорости деплоймента кода в продакшен Как потратить сотни долларов на метрики и логи, которые никто не читает О том, как не сломать базу, если в нее ходят сразу 2–3 тысячи экземпляров лямбд
Как же все-таки следить за качеством своей кодовой базы? Как при минимальных затратах со стороны разработки получить максимальный профит и минимальное количество глупых ошибок? В этом докладе мы разберём существующие решения для тайп чекеров, после чего станет яснее, какой подходит вам лучше всего. Разберем слабости и преимущества четырех популярных решений на рынке. Узнаем об особенностях каждого из них. Посмотрим, что они умеют, кроме тайп чекинга. Проведем сравнение с разных точек зрения, чтобы определить их сильные стороны, после чего вы сможете выбрать, какой же подходит именно вам.
Функциональное программирование — не самый популярный подход к написанию кода на Python. Но у ФП в Python есть активные сторонники. Они широко применяют и продвигают модули вроде functools, itertools из стандартной библиотеки и пакеты вроде toolz, funcy, returns и др. Мы рассмотрим, как идеи элегантного ФП кода и красивых математических абстракций сталкиваются с реальностью интерпретатора CPython и культуры pythonic кода. Доклад будет полезен программистам на Python, интересующимся функциональным программированием (уже применяющим его или заинтересованным в применении) и желающим обсудить, насколько ФП нужно и полезно им в Python. Предполагается знание основных концепций ФП (чистые функции, побочные эффекты, функции высшего порядка).
В мае разработчики движка Modular опубликовали публичную версию языка Mojo. Код на Mojo выглядит один-в-один, как код на питоне, и это не случайно. Mojo — это одновременно под- и надмножество питона, позволяющее выжимать адскую производительность в требовательных к CPU задачах — например, в задачах ML и AI. Подробностей пока мало: запустить Mojo локально нельзя, можно лишь воспользоваться специальной версией Jupyter Notebook, доступ к которой выдаётся через лист ожидания. Из материалов про Mojo пока доступны в основном только красивые презентации его авторов (показывающие, например, ускорение относительно CPython в тысячи раз на задаче умножения двух матриц). Я получил доступ к превью Mojo и немного в нём поковырялся. Так что теперь давайте вместе во время доклада попробуем разобраться, есть ли у этой разработки шансы на революцию, или это просто попытка выехать на хайпе вокруг AI?
В рамках доклада я расскажу про возможные пути развития нового сервиса, а также поделюсь опытом, куда может завести недопроектирование и перепроектирование на разных этапах развития проекта. Затронем: - Общение с бизнесом - Проектирование - Тестирование и многое другое Доклад будет полезен тем, кто хочет запустить сервис, который будет поддерживаться и развиваться в условиях меняющихся требований.
Поделюсь личным опытом болей и радостей жизни с тестами и без. Обсудим лучшие и худшие практики. Покурим вместе код.
Про то, как структурировать метрики прометея в коде, выстроить удобные абстракции. Как меняется парадигма при переходе со statsd на прометей. Подводные камни при работе с прометеем.
Сборка Python пакета через Hatch и публикация на PyPI и внутренних ресурсах. Почему нужно отказаться от setuptools и забыть про setup.py. Откуда взялся Hatch, нужен ли нам ещё один стандарт, а также почему мы остановились на Hatch.
О библиотеке INSTLD, которая автоматизирует установку Python-пакетов. Вы просто пишете в коде "import" и библиотека ставится сама, а после остановки программы — удаляется. Доступны режимы интерактивной консоли и запуска скрипта.
Всегда существовало множество альтернативных реализаций Python, и хотя cpython развивается, развиваются и альтернативы. В этом докладе мы пройдемся по самым популярным и современным из них, посмотрим, что они предлагают, какие проблемы решают и, наконец, для каждого из них найдем ответ на вопрос: "Стоит ли мне перейти с cpython на X прямо сейчас?"