python в ядре Яндекс.Диска

Post on 10-May-2015

630 Views

Category:

Internet

12 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Яндекс.Диск: Использование 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)

Иващенко Сергей

triklozoid@yandex-team.ru

http://api.yandex.ru/disk/

Спасибо за внимание!

top related