[MASOCH-L] Dúvida Conceitual - BD junto ou separado - App de Infraestrutura

Victor Augusto Furtado Leite victor.furtadoleite at gmail.com
Fri Mar 24 12:22:55 -03 2017


Douglas, conceitualmente, um dos motivos para separar os serviços é você
conseguir escalar apenas o serviço que precisa ser escalado, diminuindo
assim o custo e sem ter downtime.

Exemplo bem bobo porque daria pra ser resolvido de outras formas, mas só
ilustrar :)
Você tem uma aplicação X que processa imagens e lê e grava algumas coisas
num banco de dados. Em algum momento sua aplicação começa a receber em
torno de 10k requests por segundo e pra alguns usuários começa a parar de
responder. Você analisa e vê que o gargalo é a aplicação (processamento) e
que o banco está atendendo a demanda sem problemas.
Caso você tenho uma arquitetura distribuída (serviços separados em
diferentes máquinas) e sua aplicação esteja preparada pra isso, você pode
escalar só a aplicação, resultando em dois serviços de aplicação e mantendo
apenas um de banco.
Caso sua arquitetura seja monolítica você precisa escalar aplicação e
banco, o que provavelmente vai te custar mais.

Do meu ponto de vista, as vezes não compensa você separar os serviços
porque vai criar uma complexidade que não precisaria existir.


2017-03-15 16:06 GMT-03:00 Douglas Fischer <fischerdouglas at gmail.com>:

> Já é uma solução consagrada o uso da Stack que separa os serviços de Banco
> de Dados / Back-End / Front-End para Web- Applications que venham a
> necessitar de escala horizontal.
>
> E por causa disso, em estruturas com maior demanda, se cria uma estrutura
> de Banco de Dados, com as devidas redundâncias/replicações, políticas de
> backup, e etc...
> E com então e se dissemina a cultura do "Tudo que é
> MySQL/PostGresql/SQL-Server vai alí".
>
> ​Mas eu muitas vezes me pego em dúvida com rela​ção ao real sentido de
> separar das respectivas APPs os Banco de dados para usados em Aplicações de
> infraestrutura.
>
> Exemplos disso seriam:
>  - Engine do Backup-Director e Banco de dados do Catálogo.
>  - Engine de Versionamento(Git/CSV/Mercurial) e o Banco de dados.
>
>
> P.S.: E sei que até existem algumas aplicações em que até são consenso em
> não se separar o banco da aplicação.
> Exemplos disso seriam Voip-Server(Asterisk+Mysql ou CallManager+Informix),
> WSUS(IIS+SQL).
>
>
> E aí?
> Qual é o entendimento dos colegas sobre essa questão?
>
> Exemplos práticos:
>  - GIT? Coloco o banco separado ou não?
>  - Rconfig? Coloco o banco separado ou não?
>
>
> --
> Douglas Fernando Fischer
> Engº de Controle e Automação
> __
> masoch-l list
> https://eng.registro.br/mailman/listinfo/masoch-l
>



-- 
*Victor*



More information about the masoch-l mailing list