Задать вопрос
penzu
@penzu
Некоторые говорят верно, потому что они всесильны.

Как создать серверную архитектуру для приложений?

Добрый день.

Подскажите пожалуйста. Необходимо организовать серверную часть для разработки, работы приложений (мобильные, десктоп, web).
Приложения довольно простого формата, управление заявками. Заявка попала в базу, заявку видно, можно взять и выполнять.

Интересует организация серверной части. Это конечно прозвучит смешно, но Мы не знаем, как её организовать.
Есть сервера (шт.10) а вот что на них ставить, не понятно. Даже не понимаю, какую литературу надо прочитать, что бы понять как это все организовывать.
Я видел различные варианты архитектур, приведу пример:
1) Application — это frontend-сервер.
2) Database — сервер, на котором находится база данных.
3) Load Balancer — балансировщик нагрузки, необходимый для распределения запросов пользователей между Application-серверами.
4) Utils — сервер, на котором располагаются сопутствующие сервисы, необходимые для отложенной обработки данных.
5) Tools — сервер, необходимый для установки сторонних решений для работы приложения.

И вот тут же возникает вопрос. Как сам по себе выглядит Application server? И с чем его едят?
Балансировщик нагрузки так же непонятно что за структуру собой представляет.
Но когда люди все это дело формируют вместе и правильно настраивают, получаются хорошо организованные архитектуры.

Конечная цель, я просто хочу понимать, как это все выглядит изнутри.
Осознать и про Application сервер, и про балансировщик нагрузки и т.д. Что это вообще из себя представляет, зачем нужно ?
Может быть есть какая то модель правильного построения с описанием?
Наведите пожалуйста на правильный путь.
  • Вопрос задан
  • 6043 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 1
Application server - основной сервер, где обрабатывается логика ваших приложений, которую нельзя обрабатывать на клиентах. Application server имеет доступ к серверу баз данных (Database server). Очень часть Application server и Database server размещают на одном сервере, пока это позволяет нагрузка на приложение.
На Application server как правило устанавливают веб-сервер и обработчик какого-либо языка программирования. Например, apache + php, nginx + ruby и пр. Иногда встречаются и более экзотичные варианты. Всё зависит от того, какими инструментами ведется разработка приложения.
На Database server устанавливают какое-либо ПО для СУБД. Например, MySQL, SQL Server, Oracle Database и пр. Через специальные библиотеки и конфигурационные файлы Application server "привязывается" к Database server.
Loadbalancer используется для того, чтобы, в случае наличия нескольких Application серверов, направить пользовательский запрос на менее загруженный Application server. Тут есть много разных вариантов реализации.
Utils и Tools - фишки исключительно очень больших проектов. Например, если нужно пересчитывать количество записей в базах по сложным медленным запросам или удалять ненужные изображения на дисках сервера - для этого и предназначены эти инструменты.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kaasius
Вы рассуждаете абстракциями. В рамках этих абстракций application сервер выполняет основную работу. Принимает запрос, обрабатывает его, возвращает результат.

А вот на вопрос - как выгладит application сервер - однозначного ответа не существует. Простейший пример - apache/mod_php, отдающий некий сайт. Или php-fpm. Или node.js. Или… тыщи их.

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

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

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