Upload
yandex
View
616
Download
12
Embed Size (px)
DESCRIPTION
Я расскажу о том, как мы используем Python в Яндекс.Диске, какие применяем библиотеки и фреймворки, какие задачи решаем и с какими проблемами сталкиваемся. Также затрону тему логирования и обработки асинхронных операций.
Citation preview
Яндекс.Диск: Использование Python
Иващенко Сергей, Яндекс
Архитектура Яндекс.Диска
Архитектура Яндекс.Диска
MPFS
Архитектура Яндекс.Диска
MPFS
WebDAV Веб интерфейс REST API
Архитектура Яндекс.Диска
MPFS
WebDAV Веб интерфейс REST API
Кладун
Заберун
Архитектура Яндекс.Диска
MPFS
WebDAV Веб интерфейс REST API
Кладун
Заберун
Mulca
Архитектура Яндекс.Диска
MPFS
WebDAV Веб интерфейс REST API
Кладун
Заберун
MongoDB
Mulca
Архитектура Яндекс.Диска
MPFS
WebDAV Веб интерфейс REST API
Кладун
Заберун
Почта
Фотки
Музыка
MongoDB
Mulca
Проблемы?
Проблема 1. На каком языке писать?
Почему Python?
• Скорость разработки
• Скорость разработки• Распространённость
Проблема 2. Какие технологии использовать?
Что в основе?
Что в основе?
Что в основе?
Проблема 3В системе есть длительные задачи, их можно выполнять асинхронно. Как это
сделать?
Асинхронные задачи
Асинхронные задачи
• Operations – для сложных составных задач
Асинхронные задачи
• Operations – для сложных составных задач
Queue – для небольших атомарных задач
Проблема 4. Как понять что происходит?
ЛОГИ!!
Как мы логируем
• > 50 разных логов
• 700 ГБ в сутки
2014-07-10 19:53:41,563 [30180] web-111-ufodev 30180_10104 __init__ GET /json/status?oid=111&uid=222 HTTP/1.1 200 0.0262014-07-10 19:53:12,007 [30182] mac-JTWz_1_LXK-1-webdav 30182_10618 __init__ GET /json/info?uid=0&path=/disk/photo.png HTTP/1.1 200 0.045
__slots__
Slice
Slice
Slice
Slice
a[start:stop:step]
Pyrasite
$ pyrasite-shell 26234Pyrasite Shell 2.0 Connected to 'python' Python 2.7.3 (default, Aug 9 2012, 17:23:57) [GCC 4.7.1 20120720 (Red Hat 4.7.1-5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. (DistantInteractiveConsole) >>>
• Python – хороший язык, позволяющий быстро разрабатывать сложные сервисы
• При выборе готовых решений всегда помните о целях• Каждому инструменту – свою задачу
Выводы
Disk API
•
http://api.yandex.ru/disk/
• RESTful API• WebDAV API + SDK (iOS, Android, WP)