Условие
Сколько стоит обслуживать пользователя Flickr с 20 ГБ фотографий? Сделайте оценку «на салфетке» и проговорите свои предположения.
Решение
Подход
Оценку делаем «снизу вверх» — из стоимости основных ресурсов. Цель — не точная цифра, а порядок и структурированное рассуждение.
1. Хранение.
- 20 ГБ × 0.46/мес.
- С учётом репликации (3 копии) и backup → ×3 ≈ $1.4/мес.
- Холодное хранение (Glacier) для редко используемых — 0.30-0.50/мес.
2. Трафик.
- Допустим, пользователь делится фото и они грузятся 100 раз / месяц. Среднее фото — 5 МБ → 500 МБ трафика.
- CDN: 0.025/мес. На скейле и через дешёвый CDN (~$0.01/ГБ) — копейки.
3. Compute (бэкенд, миниатюры, поиск).
- Создание миниатюр один раз при загрузке; амортизировано — пара центов на пользователя/мес.
- Серверы API: для 100 запросов/мес — пренебрежимо мало на пользователя.
4. ML/индексация.
- Если у Flickr есть классификация и поиск по картинкам — это считай-почти бесплатно офф-пик и порядок $0.05-0.10/мес/юзер.
5. Поддержка и операции.
- Customer support, биллинг — обычно $0.2-1.0/мес/юзер на consumer-продукте.
Итог.
- Минимум (hot=30%, cold=70%, мало support): ~$0.6-0.9 / мес.
- Реалистично (все hot, активные): $1.5-2.5 / мес.
- С запасом на пиковые нагрузки и amortized support: $2-4 / мес.
Что услышать от кандидата
- Раскладку на компоненты (storage / traffic / compute / support).
- Чувствительность к assumption: «если фото редко смотрят, основной cost — hot vs cold storage».
- Привязку к бизнес-решению: «бесплатно дать 20 ГБ юзеру стоит ~50/год должна покрывать с маржой».
Подводные камни
- Игнорировать репликацию. Реальная стоимость хранения — не цена одной копии.
- Не учитывать трафик — для медийного сервиса с публичными фото это бывает основной cost.
- Считать в долларах за байт за секунду — слишком тонко для салфетки. Округляйте.
- Забывать о support и платформенных расходах — на consumer-продукте они часто сравнимы с инфраструктурой.
Эталонный ответ
Структура: storage (hot/cold/реплики) + traffic (CDN) + compute + support. Грубо — $1-3 в месяц на активного пользователя. Главное в ответе — структура декомпозиции и явные допущения, а не точное число.