Sobes.tech
Middle

Quais são os tipos de arquitetura de serviços web?

sobes.tech IA

Resposta da IA

  1. Arquitetura monolítica:

    • Código único e autónomo que combina todos os componentes (UI, lógica de negócio, acesso a dados).
    • Desenvolvimento e implantação simples nas fases iniciais.
    • Dificuldades com escalabilidade, manutenção e implementação de mudanças à medida que o projeto cresce.
  2. Arquitetura de microserviços:

    • A aplicação é dividida em um conjunto de pequenos serviços independentes que interagem pela rede (frequentemente via API).
    • Cada serviço responde por uma funcionalidade específica e pode ser desenvolvido, testado e implantado de forma independente.
    • Melhor escalabilidade, resistência a falhas (falha de um serviço não afeta os outros), possibilidade de usar diferentes tecnologias para diferentes serviços.
    • Complexidade na gestão de um grande número de serviços, necessidade de logging distribuído e monitoramento.
  3. Arquitetura orientada a serviços (SOA):

    • Consiste em serviços que interagem através de um barramento empresarial (ESB - Enterprise Service Bus).
    • Os serviços podem ser grandes e usar diferentes protocolos.
    • Objetivo: aumentar a flexibilidade e a reutilização de serviços dentro da organização.
    • Diferenças em relação aos microserviços: serviços maiores, presença de um barramento de interação centralizado.
  4. Arquitetura sem servidor (Serverless):

    • O desenvolvedor foca na escrita do código, enquanto a gestão de servidores e infraestrutura é feita pelo provedor de nuvem (por exemplo, AWS Lambda, Azure Functions).
    • Pagamento por uso, escalonamento automático.
    • Redução de custos operacionais e esforços administrativos.
    • Limitações em tempo de execução e recursos, dependência do provedor de nuvem.
  5. Arquitetura em níveis N:

    • A aplicação é dividida em camadas ou níveis lógicos, cada um com um papel definido e que interage apenas com as camadas adjacentes.
    • Camadas típicas: camada de apresentação (UI), camada de lógica de negócio, camada de acesso a dados.
    • Melhora a modularidade e facilita a separação de responsabilidades.
graph TD
    A[Usuário] --> B{Serviço web};
    B --> C[Arquitetura];
    C --> D[Monolítica];
    C --> E[Microserviços];
    C --> F[SOA];
    C --> G[Serverless];
    C --> H[Arquitetura em níveis];