Для решения большинства задач можно использовать разные алгоритмы и методы, в которых относительное использование памяти и вычислительных мощностей очень отличается.
Меня же интересует этот вопрос цены для следующего (но в плане постоянной памяти, а не RAM):
Для Веб-приложения хранятся 3D модели (например, по 1 МБ каждая). Клиенту кроме этих моделей иногда (а может и чаще) нужно передавать упрощенные модели согласно LOD - оригинальная - 1 МБ, 2-й уровень детализации - 500 кб, 3-й - 250 кб и .т.д.
Пока у меня нет статистики о том, какие будут чаще использоваться, но принцип в следующем:
p1,p2,p3 - цены на Cloud Compute, Storage и трафик соответственно
1 вариант: модель формируется на стороне сервера и отдается клиенту
- p1*s*q вычислительного времени на сервере, где s - размер файла, q - количество запросов
- p2*s памяти в хранилище
- p3*s*q*l трафика, где l - 0..1 зависимо от выбранного уровня детализации
2 вариант: модели заранее формируются для всех возможных уровней детализации
- p1*s*L вычислительного времени, где L - количество уровней детализации
- p2*s+s/2+s/4 + .. = ~ 2*s памяти
- p3*s*q*l трафика
3 вариант: пользователь всегда загружает оригинальную модель и генерирует ее на своей стороне
- p1*0 вычислительного времени
- p2*s памяти
- p3*s*q трафика
- s*q вычислительного времени у пользователя
Третий вариант самый экономный, но не для пользователя, да и трафика получится намного больше, если предположить, что оригинальная модель загружается в 2 раза реже, чем стальные, то есть в предыдущих случаях будет l = 0.5
Конечно, можно учесть кэширование на стороне клиента, но все равно каждому новому пользователю придется первые разы все скачивать? Как на счет прокси сервера, на которых сохранять сгенерированные модели у первого пользователя, и последующие затратят на них только трафик (что уже не будет влиять на основной сервер), какие тогда есть сервисы для этого и на сколько они выгодны по сравнению с обычными хранилищами?
Попробую подсчитать, сколько бы это вышло на Google Cloud при 10 000 моделей (10 ГБ), 300 000 запросов в месяц, получится
Compute - 25 долларов в месяц
Storage - 0.26 доллара
Bandwidth - 15 долларов
Если я все правильно понял, то за хранилище получается мелочь, а за трафик дико дорого. Выходит, Amazon, Azure и GC и подавно не нужны для старта (и не только), если есть Digital Ocean и Vultr
Итог: на что лучше делать акцент в долгосрочной перспективе: на увеличении вычислительной мощности или объема хранилища?
Виталий Столяров: в таком разрезе если вас волнует цена
берете дедик у хетзнера пять штук
на каждом 2 диска по 4ТБ, трафика 50ТБ в мксяц или сто, 64 гига оперативы и 4 ядраоколо 4ггц
ну раздаете и не паритесь с облаками если вас смущают их цены