
System Design: проектируем Dropbox, сервис для хранения и обмена файлами
pavsenin 17 минут назад System Design: проектируем Dropbox, сервис для хранения и обмена файлами Средний 26 мин 675 Анализ и проектирование систем * Распределённые системы * Высоконагруженные системы * Карьера в...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. pavsenin 17 минут назад System Design: проектируем Dropbox, сервис для хранения и обмена файлами Средний 26 мин 675 Анализ и проектирование систем * Распределённые системы * Высоконагруженные системы * Карьера в IT-индустрии Перевод Автор оригинала: Evan King Видеоразбор этой задачи на русском языке можно посмотреть здесь - DropboxПостановка задачи☁️ Что такое Dropbox? Dropbox - это облачный сервис, позволяющий пользователям хранить и обмениваться файлами. Он предоставляет безопасный и надежный способ хранения и доступа к файлам откуда угодно, с любого устройства.
Функциональные требованияОсновные требованияПользователи могут загрузить файл с любого устройства. Пользователи могут скачать файл с любого устройства. Пользователи могут делиться файлами с другими пользователями и просматривать файлы, которыми поделились с ними.
Технические детали
Файлы синхронизируются между устройствами. За рамками задачиПользователи могут редактировать файлыПользователи могут просматривать файлы без скачиванияСтоит отметить, что существуют задачи System Design, касающиеся самого хранилища больших бинарных (blob) объектов. Это выходит за рамки данной задачи, но вы можете самостоятельно изучить этот вопрос, чтобы понять, как работает и как устроено объектное хранилище.
Нефункциональные требованияСистема должна обладать высокой доступностью (приоритет доступности над согласованностью данных). Система должна поддерживать файлы размером до 50 ГБ. Система должна быть безопасной и надежной.
Должна существовать возможность восстанавливать файлы в случае их потери или повреждения. Система должна обеспечивать максимально быструю загрузку, скачивание и синхронизацию. За рамками задачиСистема должна иметь ограничение на объем, доступный каждому пользователюСистема должна поддерживать версионирование файловСистема должна сканировать файлы на наличие вирусов и вредоносных программВот как это может выглядеть на доске:Многие кандидаты испытывают трудности с компромиссом, связанным с теоремой CAP, при решении этой задачи.
Отраслевые последствия
Помните, что приоритет согласованности над доступностью вы отдаете только в том случае, если каждое чтение должно получать самую последнюю запись, иначе система неработоспособна. Например, в приложении для торговли акциями, если пользователь покупает акции T в Москве, а затем другой пользователь немедленно пытается купить акции T в Мехико, вам необходимо убедиться, что первая транзакция была реплицирована в Мехико, прежде чем вы сможете продолжить. Однако для файловой системы, такой как Dropbox, допустимо, если пользователь в Москве загружает файл, а пользователь в Мехико не может его увидеть в течение нескольких секунд.
ПодготовкаПланирование подходаПрежде чем переходить к проектированию системы, важно на секунду остановиться и продумать стратегию. К счастью, для “продуктовых” задач план обычно простой: последовательно собирать дизайн, проходя по функциональным требованиям одно за другим. Так вы сохраните фокус и не утонете в деталях.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





