Estou construindo um CMS(Content Management System) e surgiu uma discussão se seria vantajoso criá-lo de forma separada, ou seja:
uma aplicação WEB onde o usuário faz todo o cadastramento de informação, conteudo, define tudo em relação ao site…isso num servidor
e uma outra aplicação, em outro servidor, onde só serão feitas as consultas necessárias nesse mesmo banco(num terceiro servidor) para exibição das informações(construção do site) e inserções casuais.
Considerando que será para varios clientes e será um 1 cliente/aplicação.
Essa arquitetura realmente fará alguma diferença? Ou desenvolvemos o CMS da forma padrão, ou seja, tudo numa única aplicação.
Oseusistemateráumgrandefluxodeclientes/dados?
Escalandoascamadas(Web/Business/EIS)emservidoresdiferentes,haveráumganhoemperfomance,escalabilidadeeconfiabilidadedosistema.Haveráum(oumais)servidordedicadoparacadatarefaespecíficadaaplicação.Issopodeserútilfuturamente,seasuaaplicaçãoprecisarcrescer; utilizando esta abordagem, você poderá facilmente detectar e balancear a carga (aumentando servidores, por exemplo) no ponto exato... no local aonde realmente é necessário. Utilize este conceito se a sua aplicação poderá crescer (a demanda por recursos) no futuro. Isso vai facilitar a sua vida e garantirá uma infra-estrutura muito mais sólida e modular para "abrigar" o seu sistema. Arespostaexatadapergunta:Sevocêtiverumpequenofluxoderequisiçõesedados,talveznãofaçadiferençaescalarservidores.Mas,seestefluxoaumentar,éaltamenterecomendávelescalarosservidores,porquecadaservidorteráumatarefaespecíficaeaexecutarácomummelhordesempenhosefordeformaseparada...Aísim,comcertezafaráumadiferençaenormenaperformance.Portantoescolha:Seasuaaplicaçãotiverchancedecrescer,façaaarquiteturadelacomaescalabilidadedeservidoresdesdeocomeço...senão,talveznãocomepenseoinvestimentoemhardware(praterváriosservidores)erede.Decida.
Depende das suas intenções…
A resposta exata da pergunta: Se você tiver um pequeno fluxo de requisições e dados, talvez não faça diferença escalar servidores. Mas, se este fluxo aumentar, é altamente recomendável escalar os servidores, por que cada servidor terá uma tarefa específica e a executará com um melhor desempenho se for de forma separada… Aí sim, com certeza fará uma diferença enorme na performance. Portanto escolha: Se a sua aplicação tiver chance de crescer, faça a arquitetura dela com a escalabilidade de servidores desde o começo… se não, talvez não comepense o investimento em hardware (pra ter vários servidores) e rede. Decida.
Como o desenhotorix disse, o sistema é um CMS, por essa razão, imagino que não dê pra saber o real fluxo de dados, pois cada cliente é um cliente.
Pra alguns imagino que seja uma boa solução, mas para outros isso pode ser:
Matar mosquito com bala de canhão
Cortar pudim com serrote
Pesca girino com dinamite
Escolha um…
Agora, qual o real impacto que isso que eu falei pode ter, não sei dizer. Nunca vi um CMS com as estruturas separadas… Como dizem: “Sempre há uma primeira vez!”
bandrade
Prá que complicar um sistema simples??
Um CMS tem muito mais leitura do que escrita de dados, então é melhor você pensar em uma boa arquitetura de cache, que já facilita muito.