Практикуюсь в написании онлайн магазина именно бэкенда, взял для себя аналог (playerok, если реклама запрещена, отпишите, я удалю) и встал на вопросе "Хранения изображений", предположим, что я буду сохранять все картинки в jpg в директорию items_images, а БД я буду хранить ссылку на изображение и по запросу получать картинку.
Так вот, вопрос: моё детище будет разрастаться и разрастаться, будет ли проблема в дальнейшем с изображениями, именно их хранения и при переезде на какой-нибудь CDN возникнут ли у меня проблемы? Какое решение будет в момент этого "роста" детища?
Вполне нормальное стандартное решение на текущий момент. Вот когда у вас будет терабайт изображений и/или их трафик дойдет до гигабита и ваш сервер начнет тормозить - вот тогда и можно уже будет думать, как сделать оптимальнее конкретно под ваши задачи. Сейчас об этом думать и решать нет смысла и пустая трата времени. Просто сделайте такое решение, которое можно будет потом легко и быстро доработать или заменить. Например добавить кэш RAM + SSD; или распределить нагрузку на несколько серверов; или разделить БД.
насчёт "или распределить нагрузку на несколько серверов" получается у меня есть основной сервер, на котором код и все изображения, а я покупаю новый сервер и с помощью nginx распределяю?
Простите, если тупой вопрос, я просто пока на уровне стажера скажем так, только учусь
Да, это один из вариантов. Например есть 2ТБ изображений - раскидываем на два сервера по 1ТБ на каждый, а в БД соответственно сохраняем кроме ID картинки, еще и ID сервера, на котором она размещена. Все новые картинки сохраняем по очереди на оба сервера. Есть и другие варианты реализации.