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

756 views
657 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
756
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Python-разработка в части Яндекс-вселенной Александр Кошелев, Яндекс
  2. 2. Содержание Введение Как было Как стало Выводы
  3. 3. Наша часть вселенной Десятки сервисов Внутренние и иногда внешние Высокие и не очень нагрузки Бекэнд или full-stack сервис Python 2.x Django, Tornado, Flask и т.п.
  4. 4. Условия Несколько серверных сред development testing production Ubuntu Хорошее железо и инфраструктура Общежитие
  5. 5. Как было Разрабатывали как могли Руками собирали debian-пакеты Пересобирали зависимости Все команды делали по-своему
  6. 6. Плюсы Debian-пакеты Используется только пакетный менеджер системы Предсказуемость выкладки на большой кластер Больше свободы
  7. 7. Минусы Debian-пакеты Зависимость от соседей Много ручной работы Нет стандартных подходов
  8. 8. Как сейчас virtualenv Fabric CI Внутренний Open Source Стандартизация
  9. 9. Плюсы Решили почти все проблемы старого подхода
  10. 10. Минусы Теперь у нас два пакетных менеджера Меньше свободы
  11. 11. virtualenv Изоляция Предсказуемость окружения Свой PyPI – быстрое создание окружения pip-accel/wheel – ещё более быстрое
  12. 12. Свой PyPI localshop Сотни пользователей Сотни пакетов Интегрировано с CI Зеркало большого PyPI
  13. 13. Fabric Для нас – альтернатива make Автоматизация конвейера сборки Утилитарные операции Запуск тестов
  14. 14. CI Сборка Тестирование Добавление в очередь на выкатку (тикет)
  15. 15. Конвейер сборки в CI Создать окружение через virtualenv Установить зависимости и код проекта Собрать статику, переводы и т.п. Положить в debian-пакет Пакет загрузить в репозиторий
  16. 16. Конвейер сборки у разработчика Обновить changelog Дождаться сборки в CI Дождаться тестов в CI Дождаться тикета на выкладку Дождаться выкладки в нужную среду
  17. 17. Внутренний Open Source Библиотеки Общее владение кодом Code Review
  18. 18. Платформа Стандартизация Предсказуемые компоненты
  19. 19. Стандартизация Единый перечень технологий Единые подходы Авторизация Логи Распределенные блокировки Работа с окружением Интерфейсы Мониторинги ...
  20. 20. Компоненты База (SQL и NoSQL) Очередь задач Фронты/беки Агрегация логов/ошибок Pub/sub механизм
  21. 21. Вопросы?

×