Upload
yandex
View
770
Download
2
Embed Size (px)
DESCRIPTION
Леонид Васильев "Python в инфраструктуре поиска" Я.Субботник в Санкт-Петербурге О докладе: Что такое инфраструктура поиска. Какие задачи приходится решать. Какие инструменты для управления кластером используются в поиске. Как они устроены изнутри. Что можно посоветовать проектам с большой инфраструктурой. Какие существуют open-source аналоги.
Citation preview
Python в инфраструктуре поискаЛеонид ВасильевРазработчик
Я.Субботник, Санкт — Петербург,3 декабря 2011 года
1
Чем мы занимаемся
Автоматизация,Мониторинг
2
Development Production
Testing
«Песочница»Автоматизация сборки, тестирования и релиза проектов
3
«Песочница»разработчики
админы
тестировщики
4
«Песочница»
Разработчики
Сборка проектов
Юнит-тесты
Эксперименты
5
«Песочница»
Тестировщики
Функциональные тесты
Обработка данных
6
«Песочница»
АдминистраторыВыкладка
проектов в production среду
7
«Песочница»Пример письма на релиз
Author: chinSandbox task: http://quentao.yandex-team.ru/sandbox/tasks/view?task_id=1230745
Resources: * binary[freebsd]: binaries/basesearch (md5: 6e1f92b4d09da9a3007cb6ace6841275) sandbox035:/sandbox-data/tasks/5/4/1230745/binaries/basesearch rbtorrent:a66817b07481b7de12019dbf4dd68e21f236147f
Changelog: * 1фича * 2фича .. * Nфича
8
«Песочница»Модель
Контекст Таск Ресурс
from sandbox import Task
class MyTask(Task)MyTask(Task): def __init__(self, ctxctx, **params): self.ctx = ctx def execute(self): self.create_resource('Empty file', self.ctx['file_name'], self.ctx['resource_type']) open(self.ctx['file_name'], 'w')open(self.ctx['file_name'], 'w')
9
«Песочница»Дьявол в деталях
10
«Песочница»
Кластер«sandbox»
~70 серверовHDD: ~190TB RAM: ~2.7TBnCPU: ~1400 OS: Linux, FreeBSD
sky run --separate 'df -B G' +SANDBOXL | grep '/place$' |awk '{t+=$2} END {print t}'
sky run --separate 'cat /proc/meminfo' +SANDBOXL | grep MemTotal | awk '{t+=$2} END {printf "%.0f\n", t / 1048576}'
11
«Песочница»
Хранилища
Пулы worker'ов
Таски (в SVN)
МастерXmlrpc и веб интерфейс
12
«Песочница»
~ 4 000 тасков в сутки
~ 20 000 ресурсов в сутки