Каков «лучший» способ создать основу более крупного веб-сайта?
В настоящее время наша веб-страница состоит из множества различных приложений, таких как WordPress для блогов, корзин покупок и другого не основанного на обслуживании не совместимого программного обеспечения. Мы хотим это изменить.
На мой взгляд, подход, основанный на сервисах, звучит многообещающе, когда каждая функция, предлагаемая нашим сайтом, поддерживается одной или несколькими службами (например, REST или SOAP). Тогда стек может выглядеть так:
- Веб-серверы (Apache + PHP) для рендеринга html данных, потребляемых службами
- Сервис-провайдеры, предоставляющие функциональность (REST, SOAP)
- Внутри каждого Сервиса, например базы данных mysql, экземпляры solr-search и т. д.
Есть ли в этой концепции реальные недостатки?
Каков «лучший» способ связи между уровнями 1. и 2.?
Существуют ли какие-либо источники (книги, беседы и т. Д.) По этой теме?
Update1:
Чтобы уточнить мой вопрос, вот к чему мы стремимся:
Пользователь должен иметь возможность комментировать (вести блог) статьи, управлять подписками на рассылку, искать наши продукты, настраивать продукты, покупать их, оценивать и комментировать их, задавать вопросы (и отвечать на другие) и так далее. В основном это интернет-магазин с множеством дополнительных функций, подходящих для нашего бизнеса. Эти функции должны интегрироваться друг с другом и предоставлять дополнительные функции, которые уже не может предоставить уже существующее программное обеспечение.
Конечно, можно начать писать что-нибудь на PHP с помощью фреймворка (например, Symfony) для одной базы данных, и это будет работать для 10 одновременных пользователей. Но что, если наша пользовательская база вырастет по сравнению с мощностью обычного сервера и нам потребуется масштабировать наше приложение?
Было бы неплохо, если бы мы "просто" добавили больше (идентичных) веб-серверов, которые взаимодействуют с различными службами (которые могут быть кэшированы, защищены и разделены при необходимости), или добавили дополнительные службы для функций, которые мы добавляем со временем.
Надеюсь, это поможет сделать мой вопрос более ответственным: -)