-
Notifications
You must be signed in to change notification settings - Fork 555
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Portuguese] Update tightly coupled architecture and microservices ar…
…chitecture (#3234) Signed-off-by: Camilo Santana Melgaço <[email protected]>
- Loading branch information
Showing
4 changed files
with
49 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- | ||
title: Arquitetura de Microsserviços | ||
status: completo | ||
category: conceito | ||
tags: ["arquitetura", "fundamento"] | ||
--- | ||
|
||
Uma arquitetura de microsserviços é uma abordagem arquitetural que divide aplicações em (micro)[serviços](/pt-br/service/) individuais independentes, sendo cada serviço focado em um aspecto específico. | ||
Esses serviços trabalham juntos de perto, dando ao usuário final a impressão de que são uma única entidade. | ||
Considere a Netflix como exemplo. | ||
Sua interface te permite acessar, buscar e pré-visualizar vídeos. | ||
Essas funcionalidades são provavelmente alimentadas por serviços menores, cada um lidando com uma delas, e.g., autenticação, busca, e pré-visualização no seu navegador. | ||
|
||
Essa abordagem arquitetural permite que desenvolvedores entreguem atualizações ou novas funcionalidades muito mais rápido do que se fosse tudo fortemente acoplado, como em uma [aplicação monolítica](/pt-br/monolithic-apps/) (mais sobre isso abaixo). | ||
|
||
## Problema relacionado | ||
|
||
Aplicações são constituídas de diferentes partes, cada uma responsável por um aspecto específico. | ||
Demanda por uma funcionalidade particular não vai necessariamente aumentar ou diminuir junto com a demanda por outras partes da aplicação. | ||
Voltando ao exemplo da Netflix. | ||
Digamos que após uma grande campanha de publicidade, a Netflix tenha um grande pico de assinaturas, mas a transmissão continuou aproximadamente estável nas primeiras horas do dia. | ||
O aumento repentino de assinaturas demanda mais capacidade de assinaturas. | ||
Tradicionalmente (abordagem monolítica), a aplicação inteira precisaria ser escalada para acomodar o aumento - um uso muito ineficiente de recursos. | ||
|
||
Arquiteturas monolíticas também facilitam para que os desenvolvedores sucumbam às armadilhas do projeto. | ||
Como todo o código está em um só lugar, é mais fácil tornar esse código [fortemente acoplado](/pt-br/tightly-coupled-architecture/) e mais difícil de impor o princípio da separação de responsabilidades. | ||
Os monólitos geralmente exigem que os desenvolvedores entendam toda a base de código antes de fazer qualquer alteração. | ||
|
||
## Como isso ajuda | ||
|
||
Separar funcionalidades em diferentes microsserviços facilita a implantação, atualização e escala de forma independente. | ||
Também permite que times diferentes trabalhem simultaneamente em pequenas partes de uma aplicação maior sem impactar negativamente e inadvertidamente o resto da aplicação. | ||
Embora uma arquitetura de microsserviços resolva muitos problemas, ela também cria sobrecarga operacional — as coisas que você precisa para implantar e acompanhar aumentam em ordem de magnitude. | ||
Muitas [tecnologias nativas de nuvem](/pt-br/cloud-native-tech/) visam tornar microsserviços mais fáceis de implantar e gerenciar. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
title: Arquitetura Fortemente Acoplada | ||
status: completo | ||
category: propriedade | ||
tags: ["fundamento", "arquitetura", "propriedade"] | ||
--- | ||
|
||
Arquitetura fortemente acoplada é um estilo arquitetural em que vários componentes da aplicação são interdependentes (o paradigma oposto de [arquiteturas desacopladas](/loosely-coupled-architecture/)). | ||
Isso significa que uma mudança em um componente provavelmente afetará outros componentes. | ||
Geralmente é mais fácil de implementar do que estilos de arquitetura mais desacoplada, mas pode deixar um sistema mais vulnerável a falhas em cascata. | ||
Esse estilo de arquitetura também tende a exigir implantações coordenadas de componentes, o que pode se tornar um obstáculo para a produtividade do desenvolvedor. | ||
|
||
Arquiteturas fortemente acopladas são uma maneira bastante tradicional de criar aplicações. | ||
Embora não sejam necessariamente consistentes com todas as melhores práticas de desenvolvimento de [microsserviços](/pt-br/microservices-architecture/), elas podem ser úteis em circunstâncias específicas. | ||
Elas tendem a ser mais rápidas e simples de implementar e, assim como [aplicações monolíticas](/pt-br/monolithic-apps/), elas podem acelerar o ciclo inicial de desenvolvimento. |
This file was deleted.
Oops, something went wrong.