Visão geral dos sistemas de backend
Obtenha um mapa de alto nível dos componentes do sistema de backend e de como eles trabalham juntos para atender às aplicações.
O Que É um Sistema de Backend
Um sistema de backend processa solicitações de clientes, executa a lógica da aplicação, interage com o armazenamento de dados e retorna uma resposta.
- Sistemas de backend recebem solicitações de clientes, como navegadores, aplicativos móveis ou outros serviços.
- Eles executam a lógica da aplicação que determina como o sistema deve se comportar.
- Eles leem e gravam em armazenamentos de dados persistentes, como bancos de dados.
Detalhes
Quando um usuário interage com uma aplicação, ele normalmente está se comunicando com uma interface de cliente, como um navegador web ou um aplicativo móvel. Esse cliente geralmente não contém a lógica central do sistema. Em vez disso, ele envia uma solicitação para um sistema de backend que faz o trabalho pesado.
Um sistema de backend fica entre o cliente e a camada de dados. Sua função é receber solicitações, processá-las de acordo com as regras da aplicação e retornar um resultado. Esse processo normalmente envolve validar entradas, executar a lógica de negócio e recuperar ou modificar dados armazenados em bancos de dados ou outros sistemas de armazenamento.
Por exemplo, quando um usuário faz login em um site, o cliente envia as credenciais de acesso para o backend. O backend verifica essas credenciais, consulta o banco de dados em busca dos registros do usuário e retorna uma resposta indicando se a autenticação foi bem-sucedida.
Em essência, o backend atua como o motor de tomada de decisão de uma aplicação. Ele transforma solicitações recebidas em respostas significativas, aplicando lógica e coordenando com sistemas subjacentes, como bancos de dados, caches ou serviços externos.
Arquitetura de Backend & Componentes Principais
Os sistemas de backend são organizados em camadas para que o tratamento de requisições, a lógica da aplicação e o gerenciamento de dados permaneçam separados e fáceis de manter.
- A camada de API recebe requisições dos clientes e envia respostas de volta.
- A camada de aplicação executa a lógica de negócio e coordena o comportamento do sistema.
- A camada de dados armazena e recupera informações persistentes de bancos de dados.
Detalhes
A maioria dos sistemas de backend segue uma estrutura em camadas que separa as responsabilidades entre diferentes partes do sistema. Em vez de colocar toda a funcionalidade em uma única base de código grande, cada camada foca em resolver um problema específico.
A camada de API atua como ponto de entrada para o backend. Ela recebe requisições de clientes, como navegadores ou aplicativos móveis, valida as entradas e formata a resposta retornada ao cliente.
A camada de aplicação contém a lógica de negócio do sistema. É aqui que regras, fluxos de trabalho e processos de tomada de decisão são implementados. Por exemplo, a camada de aplicação pode determinar como pedidos são processados ou se um usuário tem permissão para executar uma ação.
A camada de dados lida com o armazenamento persistente. Ela se comunica com bancos de dados ou sistemas de armazenamento para ler e gravar as informações de que a aplicação precisa para funcionar.
Por trás desses componentes está a camada de infraestrutura, que fornece o ambiente de execução para o sistema. Isso inclui servidores, containers, sistemas operacionais e serviços em nuvem que hospedam o backend.
Essa estrutura em camadas ajuda os engenheiros a manter os sistemas modulares, tornando-os mais fáceis de manter, expandir e escalar à medida que as aplicações crescem.
O Pipeline de Requisições do Backend
Dentro do backend, as requisições recebidas passam por um pipeline estruturado, no qual diferentes componentes processam a requisição passo a passo.
- As requisições chegam como requisições HTTP e são direcionadas ao handler correto por meio do routing.
- Middleware pode inspecionar, modificar ou bloquear requisições antes que a lógica principal da aplicação seja executada.
- A aplicação executa a lógica de negócio, interage com o banco de dados e retorna uma response.
Detalhes
Quando um cliente envia uma requisição para um sistema backend, ela passa por várias etapas de processamento em vez de ir diretamente para o banco de dados ou para a lógica da aplicação.
A requisição primeiro chega ao servidor como uma requisição HTTP, onde um router determina qual parte da aplicação deve tratá-la. Antes de chegar à lógica principal, a requisição pode passar por middleware que executa tarefas como verificação de autenticação, logging ou validação.
Quando chega ao handler, o backend executa a lógica de negócio, geralmente organizada em controllers e services. Esses componentes processam a requisição e podem realizar consultas ao banco de dados para ler ou atualizar dados armazenados.
Depois que o processamento é concluído, o backend constrói uma response e a envia de volta ao cliente.
Responsabilidades e Restrições da Engenharia de Backend
Engenheiros de backend projetam e operam os sistemas que processam requisições e gerenciam os dados da aplicação.
- Projetar APIs que permitam que clientes e serviços interajam com o sistema.
- Implementar a lógica da aplicação que determina como o sistema se comporta.
- Gerenciar dados persistentes e garantir que os sistemas continuem confiáveis à medida que o uso cresce.
Detalhes
Engenheiros de backend são responsáveis pelos sistemas internos que fazem as aplicações funcionarem. Seu trabalho inclui construir APIs, implementar a lógica de negócio, gerenciar o armazenamento de dados e manter os serviços de backend.
Ao mesmo tempo, os engenheiros precisam projetar sistemas sob restrições do mundo real. As aplicações devem responder rapidamente (performance), lidar com o aumento da demanda (scalability) e permanecer disponíveis quando componentes falham (reliability).
Os sistemas também devem proteger informações sensíveis (security) e, ao mesmo tempo, continuar compreensíveis e adaptáveis para o desenvolvimento futuro (maintainability).
Como esses objetivos muitas vezes competem entre si, a engenharia de backend envolve equilibrar trade-offs enquanto mantém os sistemas estáveis e eficientes.
Monólito vs Microsserviços
Sistemas backend são comumente organizados como uma única aplicação (monólito) ou como vários serviços independentes (microsserviços).
- Um monólito é um sistema implantável único em que todos os componentes da aplicação executam juntos.
- Microsserviços dividem o sistema em serviços menores e independentes.
- Esses serviços se comunicam entre si por meio de APIs ou chamadas de rede.
Detalhes
Uma arquitetura monolítica coloca todos os componentes da aplicação em um único sistema implantável. A camada de API, a lógica da aplicação e as interações com o banco de dados normalmente existem dentro de uma única base de código e executam como um único serviço. Muitas aplicações em estágio inicial começam assim porque o desenvolvimento e a implantação são mais simples.
Em um monólito, os componentes geralmente compartilham o mesmo banco de dados e são implantados juntos como uma única unidade. Embora essa abordagem possa ser mais fácil de construir e manter no início, o sistema pode se tornar mais difícil de escalar ou modificar à medida que cresce.
Uma arquitetura de microsserviços adota uma abordagem diferente. Em vez de um sistema grande, a aplicação é dividida em vários serviços menores. Cada serviço foca em uma responsabilidade específica e pode ser desenvolvido, implantado e escalado de forma independente.
Esses serviços se comunicam entre si por meio de comunicação entre serviços, normalmente usando APIs ou sistemas de mensageria. Isso permite que sistemas grandes escalem e evoluam com mais flexibilidade, mas também introduz complexidade adicional em rede, implantação e coordenação do sistema.
Sistemas de Backend como a Camada de Coordenação
Um sistema de backend atua como a camada de coordenação que conecta clientes, armazenamento de dados e serviços externos.
App do Cliente
Ação do Usuário
API de Backend
Lógica Central
Cache
Dados Rápidos
Banco de Dados
Persistência
Fila de Mensagens
Tarefas Assíncronas
API Externa
Integração
- Backends coordenam a comunicação entre clientes, bancos de dados e serviços externos.
- Eles aplicam regras, validam solicitações e controlam como os dados fluem pelo sistema.
- A maioria dos sistemas reais integra vários componentes de infraestrutura por trás de uma única API.
Detalhes
Em aplicações do mundo real, sistemas de backend raramente operam de forma isolada. Em vez disso, eles coordenam vários sistemas subjacentes que trabalham juntos para entregar um serviço.
Um backend típico pode se comunicar com bancos de dados para armazenamento persistente, caches para leituras mais rápidas, filas de mensagens para processamento em segundo plano e APIs externas para integrações de terceiros. O backend decide quando e como esses componentes devem ser usados.
Essa camada de coordenação também aplica regras importantes. Ela valida as solicitações recebidas, garante que os usuários estejam autorizados a executar ações e mantém a consistência quando os dados mudam em todo o sistema.
Do ponto de vista de design de sistemas, o backend atua como o centro de controle da aplicação. Ele gerencia como as informações fluem entre os componentes de infraestrutura, ao mesmo tempo em que expõe uma interface limpa com a qual os clientes podem interagir com segurança.
Seção de Perguntas
1 / 5
Esta lição faz parte do conteúdo premium
Faça upgrade para o plano premium para remover o desfoque e liberar a leitura completa.