SlideShare a Scribd company logo
1 of 28
Download to read offline
Устройство object storage 
На примере LeoFS 
Alexander Chistyakov, Git in Sky
Привет, HappyDev! 
●Меня зовут Саша 
● И я – performance engineer 
● Работаю на должности главного инженера 
в компании Git in Sky
Привет, Саша! 
●Мы – веб разработчики! 
●Мы – системные администраторы! 
●Мы – архитекторы! 
●Мы еще пока не определились!
О чем пойдет речь 
● “Я вообще думаю, может БД поменять на 
что-нибудь NoSQL” © типичный 
разработчик 
● Если не БД – то файловую систему, хотя бы
Предыстория 
● HighLoad 2012 – https://clck.ru/9Lutd (не я) 
● DevConf 2014 – https://clck.ru/9Lutw (уже я) 
● Клиент – Setup.ru (конструктор сайтов) 
● 100+ млн. пользовательских файлов 
●Метаинформация в PostgreSQL 
● Сами файлы – в PostgreSQL через LO API
Наше время 
● Проект на Perl (был когда-то такой язык) 
● Хостинг – Hetzner (лучше уж Perl) 
● Текущая конфигурация машин в Hetzner не 
имеет дисков достаточного объема (8 
терабайт - максимум) 
●Мы должны были уметь хранить больше 
чем 8Тб файлов уже вот прямо вчера
Как быть? 
● Делегировать эту задачу Amazon 
● Построить свой Amazon: 
● Elliptics 
● OpenStack Swif 
● Ceph Object Gateway 
● Riak CS 
● LeoFS
Общее для всех 
● HTTP REST или Amazon S3 интерфейс 
● Автоматическая репликация 
● Автоматическая отказоустойчивость 
● Легкое добавление новых узлов
Устройство любого object storage 
● Узлы, на которых хранятся данные 
● Узлы, на которых хранятся метаданные 
●Маршрутизаторы запросов к первым двум 
● Background workers 
● Как я уже говорил однажды в Омске: 
Любой* NoSQL – несколько локальных 
хранилищ + роутер запросов к ним 
*не любой
Надо сделать выбор 
● Erlang – как Python, только лучше* 
●Mnesia и LevelDB – как SQLite, только лучше* 
● DuckDuckGo – как Yandex, только лучше* 
● Интегрированный механизм кэширования 
лучше*, чем его отсутствие 
● LeoFS: Erlang, Mnesia, LevelDB, не Yandex, 
интегрированное кэширование 
*не лучше
Последствия выбора 
● Примерно как у свадьбы, только развестись 
гораздо сложнее 
● Помехи при выборе: 
● Эффект Даннинга-Крюгера 
● Ошибка выживших 
● Недостаточность и плохое качество 
информации о решении в Интернете
Устройство LeoFS 
● LeoFS manager – хранит метаданные 
● LeoFS storage – хранит данные 
● LeoFS gateway – маршрутизирует запросы и 
кэширует контент локально 
● LeoFS manager – единая точка отказа 
● Поэтому их делают два: master и slave
Устройство LeoFS 
● LeoFS manager использует Mnesia 
● LeoFS storage использует LevelDB 
●Mnesia – распределенная СУБД из 
стандартной поставки Erlang 
● LevelDB – key-value storage, разработана в 
Google, представляет собой LSM-tree
Устройство LeoFS 
● Внутренние процессы: 
● LevelDB нужно компактить* 
● При добавлении/удалении нод нужно 
перестраивать кольцо маршрутизации 
●Можно временно включать/выключать 
узел 
● К счастью, все это делается вручную 
* не всем
Развертывание LeoFS 
● Для развертывания чего угодно я 
использую Ansible 
● Playbooks для LeoFS: https://clck.ru/9Lx73 
● (По ссылке старая версия, сейчас все 
переделано на установку через роли)
То, ради чего все затевалось 
● Отказоустойчивость: 
● В конфигурационном файле задается 
количество реплик и 
● Количество успешных операций 
● Чтения 
● Записи 
● Удаления
Как это выглядит у нас 
● Данные хранятся на 5 узлах, 8 
потребителей 
●
Что мы храним 
● Все хранимые объекты больше 64 килобайт 
● Всего хранится 7 терабайт таких объектов 
● Только 15-20% запросов идет в LeoFS, 
объекты размером менее 64К по- 
прежнему отдаются из PostgreSQL
Домашняя работа 
● Найдите на графике момент отказа*: 
* я и сам не найду
Ура, графики! 
● Количество запросов к хранилищу:
Еще графики! 
● Нагрузка на сеть:
И еще графики! 
● Нагрузка на диск:
Плюсы 
● 12 июня – начало выбора технологии 
● Через пару дней – начало внедрения 
● К августу развернут параллельный 
“старому” новый сторадж на LeoFS 
● В сентябре переезд полностью состоялся 
● В августе умер один из пяти узлов – 
заменили целиком, юзеры не заметили
Минусы 
● График latency (достаточно неторопливо):
Подводные камни 
● Клиентские библиотеки S3 все плохого 
качества 
● При отказе узла latency еще возрастает 
● Если на gateways включено кэширование на 
диск, и на диске кончается место – latency 
возрастает неимоверно 
● Балансировка контента не автоматически 
(и это плюс)
Границы применимости 
●Мы храним статический контент 
●Мы никогда не модифицируем, всегда – 
новый URL 
●Мы никогда не удаляем контент 
● Наши пользователи лояльно относятся к 
latency (это обусловлено тем, что 
существует два типа контента)
Выводы 
● Нельзя просто так взять и заменить 
RDBMS (FS, whatever) на NoSQL
Спасибо за внимание! 
● С вами был Александр Чистяков 
● Из компании Git in Sky 
● http://gitinsky.com 
● alex@gitinsky.com 
● http://twitter.com/noatbaksap 
● http://meetup.com/DevOps-40

More Related Content

What's hot

Rit 2010 реляционные олег царев субд и их нереляционные реализации
Rit 2010   реляционные олег царев субд и их нереляционные реализацииRit 2010   реляционные олег царев субд и их нереляционные реализации
Rit 2010 реляционные олег царев субд и их нереляционные реализацииrit2010
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Ontico
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Ontico
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Ontico
 
Benchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDBenchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDAlex Chistyakov
 
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концомБинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концомDaniel Podolsky
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данныхSiel01
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)Ontico
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014Maxim Dementyev
 
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеAlexandr Krasheninnikov
 
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...Dev2Dev
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Ontico
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)Ontico
 

What's hot (19)

Rit 2010 реляционные олег царев субд и их нереляционные реализации
Rit 2010   реляционные олег царев субд и их нереляционные реализацииRit 2010   реляционные олег царев субд и их нереляционные реализации
Rit 2010 реляционные олег царев субд и их нереляционные реализации
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
 
Benchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDBenchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSD
 
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концомБинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014
 
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
 

Viewers also liked

Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Ontico
 
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиковHappyDev
 
2014.12.06 05 Григорий Коченов — Геймификация сегодня
2014.12.06 05 Григорий Коченов — Геймификация сегодня2014.12.06 05 Григорий Коченов — Геймификация сегодня
2014.12.06 05 Григорий Коченов — Геймификация сегодняHappyDev
 
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...HappyDev
 
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конецHappyDev
 
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиляHappyDev
 
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартаповHappyDev
 
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчасHappyDev
 
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...HappyDev
 
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...HappyDev
 
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...HappyDev
 
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного таймингаHappyDev
 
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ыHappyDev
 
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществахHappyDev
 
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципыHappyDev
 
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'еHappyDev
 
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релизаHappyDev
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсах
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсахHappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсах
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсахetarasenko
 
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12HappyDev
 

Viewers also liked (20)

Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
 
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков
2014.12.06 05 Александр Бындю — Сustomer statisfaction для разработчиков
 
2014.12.06 05 Григорий Коченов — Геймификация сегодня
2014.12.06 05 Григорий Коченов — Геймификация сегодня2014.12.06 05 Григорий Коченов — Геймификация сегодня
2014.12.06 05 Григорий Коченов — Геймификация сегодня
 
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...
2014.12.06 06 Александр Зарубин — Аутсорсо диспансер. Как броить аутсорс и на...
 
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец
2014.12.07 08 Влад Коробов — Дизайн мобильного приложения. Где начало и конец
 
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля
2014.12.06 03 Геннадий Омышев — Рецепт приготовления фирменного стиля
 
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов
2014.12.06 08 Станислав Триерс — Возможности ФРИИ для стартапов
 
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас
2014.12.06 02 Иван Евтухович — Как бы я запускал собственный бизнес сейчас
 
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...
2014.12.06 06 Григорий Коченов — Мобильная стратегия. Как правильно спланиров...
 
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
 
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...
2014.12.06 04 Максим Дорофеев — 18 месяцев свободного плавания. Деформация со...
 
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга
2014.12.06 02 Артемий Фоминых — Нейминг в условиях ограниченного тайминга
 
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
 
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах
2014.12.07 11 Лета Штольц — Знай наших! Как стать известным в сообществах
 
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
 
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е
2014.12.06 05 Антон Плешивцев — Разбираем естественные языки на Lisp'е
 
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза
2014.12.07 10 Анна Дмитриева — Продвижение проекта после релиза
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсах
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсахHappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсах
HappyDev`12 - Александр Кудымов - Любовь и честность в интерфейсах
 
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12
Данил Снитко - Креативное агентство, работающее в кайф | HappyDev'12
 

Similar to 2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS

Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаITCrowd Almaty
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012Roman Pavlushko
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программистаSlach
 
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...Ontico
 
High Load 2009 Imdg Presentation
High Load 2009   Imdg PresentationHigh Load 2009   Imdg Presentation
High Load 2009 Imdg PresentationHighLoad2009
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Yandex
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Там, где Rails не справляются
Там, где Rails не справляютсяТам, где Rails не справляются
Там, где Rails не справляютсяMax Lapshin
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...IT-Portfolio
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Ontico
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Yandex
 

Similar to 2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS (20)

Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном прое...
 
High Load 2009 Imdg Presentation
High Load 2009   Imdg PresentationHigh Load 2009   Imdg Presentation
High Load 2009 Imdg Presentation
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Там, где Rails не справляются
Там, где Rails не справляютсяТам, где Rails не справляются
Там, где Rails не справляются
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Sivko
SivkoSivko
Sivko
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
 

More from HappyDev

2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...HappyDev
 
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?HappyDev
 
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli scriptHappyDev
 
2015-12-06 Константин Борисов - Как собеседовать программиста?
2015-12-06 Константин Борисов - Как собеседовать программиста?2015-12-06 Константин Борисов - Как собеседовать программиста?
2015-12-06 Константин Борисов - Как собеседовать программиста?HappyDev
 
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данныхHappyDev
 
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...HappyDev
 
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложенийHappyDev
 
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложенийHappyDev
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBenchHappyDev
 
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
2015-12-05 Александр Шиповалов - Веселые картинки в тестированииHappyDev
 
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...HappyDev
 
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...HappyDev
 
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...HappyDev
 
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерахHappyDev
 
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...HappyDev
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...HappyDev
 
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...HappyDev
 
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхроннымHappyDev
 
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...HappyDev
 
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых системHappyDev
 

More from HappyDev (20)

2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
 
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
 
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
 
2015-12-06 Константин Борисов - Как собеседовать программиста?
2015-12-06 Константин Борисов - Как собеседовать программиста?2015-12-06 Константин Борисов - Как собеседовать программиста?
2015-12-06 Константин Борисов - Как собеседовать программиста?
 
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
 
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
 
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
 
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
 
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
 
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
 
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
 
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
 
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
 
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
 
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
 
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
 
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
 

2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS

  • 1. Устройство object storage На примере LeoFS Alexander Chistyakov, Git in Sky
  • 2. Привет, HappyDev! ●Меня зовут Саша ● И я – performance engineer ● Работаю на должности главного инженера в компании Git in Sky
  • 3. Привет, Саша! ●Мы – веб разработчики! ●Мы – системные администраторы! ●Мы – архитекторы! ●Мы еще пока не определились!
  • 4. О чем пойдет речь ● “Я вообще думаю, может БД поменять на что-нибудь NoSQL” © типичный разработчик ● Если не БД – то файловую систему, хотя бы
  • 5. Предыстория ● HighLoad 2012 – https://clck.ru/9Lutd (не я) ● DevConf 2014 – https://clck.ru/9Lutw (уже я) ● Клиент – Setup.ru (конструктор сайтов) ● 100+ млн. пользовательских файлов ●Метаинформация в PostgreSQL ● Сами файлы – в PostgreSQL через LO API
  • 6. Наше время ● Проект на Perl (был когда-то такой язык) ● Хостинг – Hetzner (лучше уж Perl) ● Текущая конфигурация машин в Hetzner не имеет дисков достаточного объема (8 терабайт - максимум) ●Мы должны были уметь хранить больше чем 8Тб файлов уже вот прямо вчера
  • 7. Как быть? ● Делегировать эту задачу Amazon ● Построить свой Amazon: ● Elliptics ● OpenStack Swif ● Ceph Object Gateway ● Riak CS ● LeoFS
  • 8. Общее для всех ● HTTP REST или Amazon S3 интерфейс ● Автоматическая репликация ● Автоматическая отказоустойчивость ● Легкое добавление новых узлов
  • 9. Устройство любого object storage ● Узлы, на которых хранятся данные ● Узлы, на которых хранятся метаданные ●Маршрутизаторы запросов к первым двум ● Background workers ● Как я уже говорил однажды в Омске: Любой* NoSQL – несколько локальных хранилищ + роутер запросов к ним *не любой
  • 10. Надо сделать выбор ● Erlang – как Python, только лучше* ●Mnesia и LevelDB – как SQLite, только лучше* ● DuckDuckGo – как Yandex, только лучше* ● Интегрированный механизм кэширования лучше*, чем его отсутствие ● LeoFS: Erlang, Mnesia, LevelDB, не Yandex, интегрированное кэширование *не лучше
  • 11. Последствия выбора ● Примерно как у свадьбы, только развестись гораздо сложнее ● Помехи при выборе: ● Эффект Даннинга-Крюгера ● Ошибка выживших ● Недостаточность и плохое качество информации о решении в Интернете
  • 12. Устройство LeoFS ● LeoFS manager – хранит метаданные ● LeoFS storage – хранит данные ● LeoFS gateway – маршрутизирует запросы и кэширует контент локально ● LeoFS manager – единая точка отказа ● Поэтому их делают два: master и slave
  • 13. Устройство LeoFS ● LeoFS manager использует Mnesia ● LeoFS storage использует LevelDB ●Mnesia – распределенная СУБД из стандартной поставки Erlang ● LevelDB – key-value storage, разработана в Google, представляет собой LSM-tree
  • 14. Устройство LeoFS ● Внутренние процессы: ● LevelDB нужно компактить* ● При добавлении/удалении нод нужно перестраивать кольцо маршрутизации ●Можно временно включать/выключать узел ● К счастью, все это делается вручную * не всем
  • 15. Развертывание LeoFS ● Для развертывания чего угодно я использую Ansible ● Playbooks для LeoFS: https://clck.ru/9Lx73 ● (По ссылке старая версия, сейчас все переделано на установку через роли)
  • 16. То, ради чего все затевалось ● Отказоустойчивость: ● В конфигурационном файле задается количество реплик и ● Количество успешных операций ● Чтения ● Записи ● Удаления
  • 17. Как это выглядит у нас ● Данные хранятся на 5 узлах, 8 потребителей ●
  • 18. Что мы храним ● Все хранимые объекты больше 64 килобайт ● Всего хранится 7 терабайт таких объектов ● Только 15-20% запросов идет в LeoFS, объекты размером менее 64К по- прежнему отдаются из PostgreSQL
  • 19. Домашняя работа ● Найдите на графике момент отказа*: * я и сам не найду
  • 20. Ура, графики! ● Количество запросов к хранилищу:
  • 21. Еще графики! ● Нагрузка на сеть:
  • 22. И еще графики! ● Нагрузка на диск:
  • 23. Плюсы ● 12 июня – начало выбора технологии ● Через пару дней – начало внедрения ● К августу развернут параллельный “старому” новый сторадж на LeoFS ● В сентябре переезд полностью состоялся ● В августе умер один из пяти узлов – заменили целиком, юзеры не заметили
  • 24. Минусы ● График latency (достаточно неторопливо):
  • 25. Подводные камни ● Клиентские библиотеки S3 все плохого качества ● При отказе узла latency еще возрастает ● Если на gateways включено кэширование на диск, и на диске кончается место – latency возрастает неимоверно ● Балансировка контента не автоматически (и это плюс)
  • 26. Границы применимости ●Мы храним статический контент ●Мы никогда не модифицируем, всегда – новый URL ●Мы никогда не удаляем контент ● Наши пользователи лояльно относятся к latency (это обусловлено тем, что существует два типа контента)
  • 27. Выводы ● Нельзя просто так взять и заменить RDBMS (FS, whatever) на NoSQL
  • 28. Спасибо за внимание! ● С вами был Александр Чистяков ● Из компании Git in Sky ● http://gitinsky.com ● alex@gitinsky.com ● http://twitter.com/noatbaksap ● http://meetup.com/DevOps-40