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

1,079 views
907 views

Published on

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

Published in: Internet
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,079
On SlideShare
0
From Embeds
0
Number of Embeds
264
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 39
  • 49
  • Python в ядре Яндекс.Диска

    1. 1. Яндекс.Диск: Использование Python Иващенко Сергей, Яндекс
    2. 2. Архитектура Яндекс.Диска
    3. 3. Архитектура Яндекс.Диска MPFS
    4. 4. Архитектура Яндекс.Диска MPFS WebDAV Веб интерфейс REST API
    5. 5. Архитектура Яндекс.Диска MPFS WebDAV Веб интерфейс REST API Кладун Заберун
    6. 6. Архитектура Яндекс.Диска MPFS WebDAV Веб интерфейс REST API Кладун Заберун Mulca
    7. 7. Архитектура Яндекс.Диска MPFS WebDAV Веб интерфейс REST API Кладун Заберун MongoDB Mulca
    8. 8. Архитектура Яндекс.Диска MPFS WebDAV Веб интерфейс REST API Кладун Заберун Почта Фотки Музыка MongoDB Mulca
    9. 9. Проблемы?
    10. 10. Проблема 1. На каком языке писать?
    11. 11. Почему Python?
    12. 12. •Скорость разработки
    13. 13. •Скорость разработки •Распространённость
    14. 14. Проблема 2. Какие технологии использовать?
    15. 15. Что в основе?
    16. 16. Что в основе?
    17. 17. Что в основе?
    18. 18. Проблема 3 В системе есть длительные задачи, их можно выполнять асинхронно. Как это сделать?
    19. 19. Асинхронные задачи
    20. 20. Асинхронные задачи •Operations – для сложных составных задач
    21. 21. Асинхронные задачи •Operations – для сложных составных задач Queue – для небольших атомарных задач
    22. 22. Проблема 4. Как понять что происходит?
    23. 23. ЛОГИ!!
    24. 24. Как мы логируем
    25. 25. •> 50 разных логов •700 ГБ в сутки
    26. 26. 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.0 2014-07-10 19:53:12,007 [30182] mac-JTWz_1_LXK-1-webdav 30182_10618 __ GET /json/info?uid=0&path=/disk/photo.png HTTP/1.1 200 0.045
    27. 27. __slots__
    28. 28. Slice
    29. 29. Slice
    30. 30. Slice
    31. 31. Slice a[start:stop:step]
    32. 32. Pyrasite $ pyrasite-shell 26234 Pyrasite Shell 2.0 C (DistantInteractiveConsole)
    33. 33. • Python – хороший язык, позволяющий быстро разрабатывать сложные сервисы • При выборе готовых решений всегда помните о целях • Каждому инструменту – свою задачу Выводы
    34. 34. Disk API • http://api.yandex.ru/disk/ • RESTful API • WebDAV API + SDK (iOS, Android, WP)
    35. 35. Иващенко Сергей triklozoid@yandex-team.ru http://api.yandex.ru/disk/ Спасибо за внимание!

    ×