python-разработка в части Яндекс-вселенной - Александр...

21
Python- разработка в части Я ндекс - вселенной Александр Кошелев , Яндекс

Upload: it-people

Post on 28-Nov-2014

441 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Python-разработка в частиЯндекс-вселенной

Александр Кошелев, Яндекс

Page 2: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

СодержаниеВведениеКак былоКак сталоВыводы

Page 3: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Наша часть вселеннойДесятки сервисовВнутренние и иногда внешниеВысокие и не очень нагрузкиБекэнд или full-stack сервисPython 2.xDjango, Tornado, Flask и т.п.

Page 4: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

УсловияНесколько серверных сред

developmenttestingproduction

UbuntuХорошее железо и инфраструктураОбщежитие

Page 5: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Как былоРазрабатывали как моглиРуками собирали debian-пакетыПересобирали зависимостиВсе команды делали по-своему

Page 6: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

ПлюсыDebian-пакетыИспользуется только пакетный менеджер системыПредсказуемость выкладки на большой кластерБольше свободы

Page 7: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

МинусыDebian-пакетыЗависимость от соседейМного ручной работыНет стандартных подходов

Page 8: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Как сейчасvirtualenvFabricCIВнутренний Open SourceСтандартизация

Page 9: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

ПлюсыРешили почти все проблемы старого подхода

Page 10: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

МинусыТеперь у нас два пакетных менеджераМеньше свободы

Page 11: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

virtualenvИзоляцияПредсказуемость окруженияСвой PyPI – быстрое создание окруженияpip-accel/wheel – ещё более быстрое

Page 12: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Свой PyPIlocalshop

Сотни пользователейСотни пакетов

Интегрировано с CIЗеркало большого PyPI

Page 13: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

FabricДля нас – альтернатива makeАвтоматизация конвейера сборкиУтилитарные операцииЗапуск тестов

Page 14: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

CIСборкаТестированиеДобавление в очередь на выкатку (тикет)

Page 15: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Конвейер сборкив CI

Создать окружение через virtualenvУстановить зависимости и код проектаСобрать статику, переводы и т.п.Положить в debian-пакетПакет загрузить в репозиторий

Page 16: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Конвейер сборкиу разработчика

Обновить changelogДождаться сборки в CIДождаться тестов в CIДождаться тикета на выкладкуДождаться выкладки в нужную среду

Page 17: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Внутренний Open SourceБиблиотекиОбщее владение кодомCode Review

Page 18: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

ПлатформаСтандартизацияПредсказуемые компоненты

Page 19: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

СтандартизацияЕдиный перечень технологийЕдиные подходы

АвторизацияЛогиРаспределенные блокировкиРабота с окружениемИнтерфейсыМониторинги...

Page 20: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

КомпонентыБаза (SQL и NoSQL)Очередь задачФронты/бекиАгрегация логов/ошибокPub/sub механизм

Page 21: Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014

Вопросы?