Arquitetura de Microserviços

Arquitetura de Microserviços ganhou popularidade em 2015 e não para de crescer. Ela se contrapõe à arquitetura monolítica.

Uma das funções mais importantes e desafiadoras de um arquiteto de software é a definição da arquitetura para o sistema a ser desenvolvido. Iniciada entre as primeiras fases do projeto, esta etapa é fundamental para o bom andamento do mesmo. Para se ter uma noção mais precisa, uma decisão incorreta pode ocasionar atrasos na entrega do sistema, comprometer a qualidade, a segurança ou até mesmo inviabilizar o desenvolvimento.

Uma analogia para entender a diferença entre arquitetura de microserviços e arquitetura monolítica é comparar um avião de brinquedo feito com peças de Lego e um avião de brinquedo comum.

Arquitetura de Microserviços

Arquitetura de Microserviços

Com um avião de Lego, se você quiser trocar  um pedaço da asa dele, basta trocar uma peça. Com um avião comum não é possível modificar partes do brinquedo.

Voltando para as arquiteturas, a de microserviços permite que componentes de um sistema sejam atualizados individualmente. É como se o sistema fosse composto de pequenos serviços com funções específicas. Já a arquitetura monolítica é um único e grande sistema, e qualquer modificação exige que todo o sistema seja atualizado.

Vamos a um exemplo prático!

Pense em um sistema de e-commerce comum. Ele possui um painel administrativo onde os administradores cadastram produtos, uma loja virtual onde compradores pesquisam produtos, um carrinho de compras onde pagamentos são feitos e uma API (interface de integração) para comparadores de preços capturarem automaticamente os produtos e divulgarem as ofertas.

Os diagramas abaixo são exemplos de como esse e-commerce pode ser organizado.

arquitetura de microserviços e monolítica

arquitetura de microserviços e monolítica

Usando a arquitetura monolítica e a arquitetura de microserviços. Na arquitetura monolítica, o e-commerce é desenvolvido como uma única aplicação, com organização interna do código em diferentes camadas. Na arquitetura de microserviços, o e-commerce é dividido em 4 serviços desenvolvidos separadamente e integrados via algum tipo de comunicação (o mais comum é utilizar comunicação via web services REST).

No exemplo anterior, uma equipe pode trabalhar no desenvolvimento do serviço de PAGAMENTOS e outra na API. Essas equipes interagem com frequência para integrarem seus serviços ao e-commerce.

Outra vantagem da arquitetura de microserviços está na escalabilidade da aplicação. No exemplo anterior, vamos supor que a LOJA receba muitos acessos no período da manhã e a API receba muitos acessos no período da noite. Uma forma eficiente de escalar o e-commerce é colocar mais servidores executando o sistema LOJA de manhã e mais servidores executando o sistema API de noite.

De forma geral, a escalabilidade individual dos serviços é mais eficiente, pois escala apenas os recursos necessários para o serviço funcionar bem.

Agora que você já conhece a essência de uma arquitetura de microserviços e sabe que o Docker é uma ferramenta ótima para construir serviços que operam de forma independente, em containers, fica óbvia a relação entre as duas coisas.

RESTful em Spring – Arquitetura de Microserviços

No código abaixo temo um exemplo bem simples de um serviço restful usando Spring.

@RestController
@RequestMapping ( "/api/exemplo" )
public class ExemploController {
  @GetMapping ( value = "/{nome}" )
  @PreAuthorize ( "hasAnyRole('ADMIN')" )
  public String exemplo ( @PathVariable ( "nome" ) String nome ) {
  return "Olá " + nome ;
 }
}

BAIXE AQUI O EBOOK COMPLETO – API RESTful com Spring Boot e Java 8

Curso que recomendamos

Selecionamos uma série de cursos on-line para você se preparar e abrir as portas para as vagas de programação.
Conheça cada um dos cursos nos links oficiais abaixo. 🙂

Construa e plublique APIs com Spring Boot
RESTful Spring Boot
Ao término do curso você será capaz de criar APIs RESTful com elementos avançados e altamente escaláveis.
593 alunosHoras do curso 40h Horas do curso certificado
Promoção R$ 297
12x de R$ 28,94

O curso API RESTful com Spring Boot e Java 8 – Guia de Referência, é um curso que visa apresentar os principais componentes de uma API RESTful eficiente e escalável no formato de problemas e soluções.

Estágio em Programação
Estagiário Super
Se prepare para as vagas ofertadas de estágios e empregos de desenvolvimento de software.
760 alunosHoras do curso 40h Horas do curso certificado
Promoção R$ 190
6x de R$ 31,67

Você vai aprender sobre UNIX, Git, Ruby, Programação Orientada a Objetos, Expressões Regulares, Banco de Dados, Programação Concorrente, Arquitetura, Infraestrutra e Desenvolvimento de aplicações web.


Acesse
Cursos e Projetos
Java
Acesse
Outros Cursos
PHP MySQL Android
Acesse
Encomende um Projeto
Feito pra Você
Acesse
Tire as Dúvidas On-line
Consultor
Acesse
Aulas de Java só suas
Encomende Agora
Acesse
Dividindo Conhecimento
Posts e Tutoriais
Acesse
Sites e Parceiros
Associados
Acesse
Conheça os curso gratuitos
Grátis

3 Respostas do Autor

  1. Vinícius disse:

    Muito boa a matéria! Gostaria de um exemplo de um projeto web com Tomcat e MySQL rodando em Docker.

  2. Matheus disse:

    Parabéns,
    Alex pelo exemplo de fácil entediamento. Eu gostaria de saber, de como ficaria a implementação, da comunicação entre esses microserviços.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Instrutor Java Quer se tornar aluno VIP? CLIQUE AQUI!
Instrutor Java

Alex Fernando Egidio
Autor, criador e fundador do Java Avançado Cursos TI. Atua no mercado como desenvolvedor e engenheiro de sistemas em Java é apaixonado por desenvolvimento web em Java e pela “mágica” que seus frameworks trazem para o dia a dia de nós desenvolvedores.
Com mais de 10 anos de experiência ajuda programadores do Brasil todo a se tornarem profissionais.