@Fifeco

Какой стек технологии выбрать для сайта объявлений с посещаемостью до 500.000 в день?

Привет! Мы хотим создать сайт объявлений с нуля, для страны с небольшим населением (~ 5 миллионов) ․ Ожидается 200-500 тысяч посетителей в день (до 10-12 миллионов просмотров страниц в день)․ 1-2 миллиона активных объявлений. Речь идет о максимально возможной посещаемости, которая прогнозируется в будущем.

Основные возможности сайта такие же, как на платформах Avito или Olx.

Хочу услышать мнения экспертов о том, какие технологии и языки программирования рекомендовали бы использовать для создания системы. Мы хотим с самого начала выбрать правильное направление, чтобы через год не столкнуться с проблемой перепрограммирования с нуля. Очень важно скорость работы ресурса.

Мы рассматриваем язык программирования PHP и фреймворк Laravel, но опасаемся, что Laravel будет работать очень медленно в случае такой посещаемости.

Финансирование есть, небольшое (~ 8000 долларов в месяц).

У нас есть 1 год на первоначальную версию сайта.

У проекта есть отдельное финансирование за рекламу и маркетинг, так что с этим проблем нет. Посещаемость точно будет.

Заранее извиняюсь за безграмотный русский, это мой второй язык. Заранее спасибо
  • Вопрос задан
  • 460 просмотров
Решения вопроса 4
Lillipup
@Lillipup
Allons-y, Алонсо!

но опасаемся, что Laravel будет работать очень медленно в случае такой посещаемости.

А вдруг не будет такой посещаемости?
Я б выбрал laravel, потому что преждевременная оптимизация — корень всех зол.
Ответ написан
@deliro
Зачем брать PHP для создания с нуля?

12млн просмотров в день, если вспомнить типичное распределение нагрузки, выльется в пиковые 500-1500 RPS. При этом, большая часть времени будет тратиться на ожидание IO — базы данных и кэши. Что уже говорит о том, что язык должен поддерживать асинхронность, гринтреды, акторы или что-то подобное. Причём, 1000 RPS — это уже достаточно много, чтобы задумываться об оптимизациях и, возможно, горизонтальном масштабировании. И это, пожалуй, единственное требование для вашего продукта.

Я бы брал Golang, как хороший компромисс между производительностью, надёжностью и скоростью разработки. Но нужно понимать, что плохо написать можно на любом инструменте.

UPD.
Я не рассматриваю Golang, как "преждевременную оптимизацию", а наоборот, как инструмент, который позволит отсрочить необходимость оптимизации.
Ответ написан
romesses
@romesses
Backend инженер
Если будет хорошо продумана архитектура и грамотно реализовано, то язык имеет не первостепенную роль. Как уже уже было отмечено, асинхронность - важный атрибут в работе с ресурсами.
Не нужно стремиться к идеальному стеку технологий. Начните с Laravel или другого фреймворка и решайте проблемы по мере их поступления. Но важно заранее планировать работу всех компонентов и иметь в развитии видение системы.
По мере роста посетителей сможете заменять проблемные участки кода и улучшать.
Ответ написан
Комментировать
@kot999
Backend software engineer
Как сказал коллега выше - преждевременная оптимизация - корень всех зол. Вопрос не в языке и не в фреймворке. Каждый из современных языков и фреймворков можно оптимизировать. Возьмите то, с чем вы будете испытывать меньше трудностей. Можно ведь пилить бесконечно идеальный продукт, и никогда его не выпустить. Fail fast, fail cheap.
Оптимизацией лучше заниматься тогда, когда возникает в этом необходимость и там, где возникнет эта необходимость. Пилить сразу большой проект на чистом GO, я думаю будет очень сложно человеку, не знакомому с языком, и возможно не знакомому с инфраструктурой микросервисов. Go это ведь не только синтаксис. Да и даже в больших проектах на GO выносят только отдельные микросервисы, требующие оптимизации. (*так по крайней мере было на моей практике).
за 8к вы точно не найдете достаточно программистов чтобы пилить приложение на go-микросервисах, k8s эксперта который правильно будет деплоить и поддерживать k8s инфраструктуру вместе с ci-cd. А если всем заниматься самому, то хорошего из этого ничего не выйдет, глаз начнет дергаться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@caballero
Программист
основная проблема будет не на чем делать сайт а как раскрутить для такого количества поетителдей
Я уже не говорю что людям которые не знают какой стек выбрать вряд ли стоит начинать делать такой сайт
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы