Какие могут быть доводы против back-end для мобильного приложения на php?

Планируем писать бекэнд для системы, которая состоит из трёх частей:

1) Мобильное приложение
Расчёт на 500к активных пользователей. Каждый из них делает 10-15 хитов к серверу в сутки. Постоянное соединение между приложением и сервером не держится.

2) Интерфейс для отслеживания статистики
Здесь меньше хитов (1000 в сутки всего), акцент на выгрузку из БД и обработку большого количества данных.

3) Обращение к серверу ВК (API): приблизительно 20к хитов в сутки.

БД исчисляется миллионами строк, пока сложно рассчитать точное количество.

ВОПРОС:
Интересуют рекомендации по языку программирования в контексте нагрузки и потенциальной масштабируемости?

Вообще приветствуются любые рекомендации (на что обратить внимание). Если описание недостаточно подробное, пишите - дополним.
  • Вопрос задан
  • 3625 просмотров
Пригласить эксперта
Ответы на вопрос 8
GeneMoss
@GeneMoss
void
Если это коммерческая разработка, тогда используйте тот ЯП, который лучше знаете.
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Никаких :)
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Использую php для реализации restfull api для мобильных приложений. Полет нормальный. По нагрузкам особо разницы нету, боюсь у вас основной проблемой будет оптимизация базы и кеширование.
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
Учитывая тег PHP предположу, что этот язык известен больше всего. На нем и пишите. 500кю*10-15 ~ 10М/сутки нагрузка вполне подъемная для PHP даже с одного сервера.

Крайне рекомендую сразу проработать API с мобильщиками и продумайте архитектуру (хотя бы на уровне структуры URL). Иначе можно напороться на грабли с обновлением клиента и версиями API.
Ответ написан
Bandicoot
@Bandicoot
Вась-программист
Может NodeJS пойдет?
Ответ написан
fornit1917
@fornit1917
Единственным доводом против PHP может быть в вашей ситуации только то, что вы его знаете хуже чем другой язык. Но если знаете лучше всего PHP - делайте на PHP.
Масштабировать легко - баллансировщик на nginx или HAProxy, за которым нужное количество серверов с PHP. В случае масштабирования на несколько серверов только надо иметь в виду, что если используете сессии, то хранить их надо не локально в файлах.
Скорость выполнения PHP-скриптов можно поднять за счет акселератора (например, APC).
Что касается выполнения долгих задач в фоне - можно по крону скрипты запускать, можно менеджер очередей использовать (RabbitMQ, Gearman,...).
Ответ написан
Комментировать
PHP Вам не очень подойдет, если планируете делать SOA или очереди с воркерами. На PHP сложно реализовывать сервисы (в смысле, незавершаемые процессы), и они получаются достаточно ресурсоемкими. Так же, PHP не очень подойдет, если планируете активно взаимодействовать с внешней средой - exec() прилично нагружает процессор.
Ответ написан
webus
@webus
Golang | Python | NodeJS | Java
Я бы взял Python + Flask + MongoDb
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы