Highload 2016
«Архитектура хранения и отдачи фотографий в Badoo», Артём Денисов (Badoo)
О чем доклад
В докладе будет рассмотрен процесс построения масштабируемой отказоустойчивой системы хранения, отдачи и обработки фотографий с точки зрения разработчика.
На примере Badoo, я расскажу о стандартном пути эволюции такого рода проектов. Детально разберу каждый этап и остановлюсь на основных сложностях и неочевидных проблемах.
Вместе с рассказом о наших решениях и подходах будут рассмотрены возможные альтернативы, их плюсы и минусы (вплоть до «мы небольшой стартап, как сделать что-нибудь похожее, но по-быстрому и на коленке»).
Основные тезисы:
— Эволюция и типичные узкие места каждого из 3-х компонентов системы (хранение, отдача, обработка).
— Как отдавать фотографии? Когда лучше использовать сторонний CDN, а когда написать свой?
— Что лучше — хранить оригинал фото и ресайзить его на лету или заранее нарезать типовые размеры?
— Как сделать эффективное кэширование? Что такое consistent hashing и зачем он нужен?
— Где лучше хранить фотографии? Локальные диски, облачные хранилища, кластерные ФС?
— Надо ли их бэкапить и как часто? Что может пойти не так?
«Архитектура хранения и отдачи фотографий в Badoo», Артём Денисов (Badoo)
О чем доклад
В докладе будет рассмотрен процесс построения масштабируемой отказоустойчивой системы хранения, отдачи и обработки фотографий с точки зрения разработчика.
На примере Badoo, я расскажу о стандартном пути эволюции такого рода проектов. Детально разберу каждый этап и остановлюсь на основных сложностях и неочевидных проблемах.
Вместе с рассказом о наших решениях и подходах будут рассмотрены возможные альтернативы, их плюсы и минусы (вплоть до «мы небольшой стартап, как сделать что-нибудь похожее, но по-быстрому и на коленке»).
Основные тезисы:
— Эволюция и типичные узкие места каждого из 3-х компонентов системы (хранение, отдача, обработка).
— Как отдавать фотографии? Когда лучше использовать сторонний CDN, а когда написать свой?
— Что лучше — хранить оригинал фото и ресайзить его на лету или заранее нарезать типовые размеры?
— Как сделать эффективное кэширование? Что такое consistent hashing и зачем он нужен?
— Где лучше хранить фотографии? Локальные диски, облачные хранилища, кластерные ФС?
— Надо ли их бэкапить и как часто? Что может пойти не так?