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. 🙂

Formação Java Web Profissional
Formação Java Web
Mais de 400 aulas em PrimeFaces, JSF, Spring, Hibernate, JPA, Ireport, CDI e muitos mais. Iremos do básico ao avançado.
2.985 alunosHoras do curso 100h Horas do curso certificado
Promoção R$ 189
12x de R$ 18,41
400+ aulas. A melhor forma de aprender a desenvolver sistemas em Java é tendo como exemplo um projeto e curso completo onde possa observar o código para melhor entendimento do funcionamento das rotinas a acompanhar as vídeos aulas de desenvolvimento. Esse curso contém tudo que um desenvolvedor precisa saber para entrar no mercado de trabalho.
PHP do Zero ao Profissional o mais completo
PHP Profissional
Este é o curso mais completo do Brasil. Você aprenderá do básico, ao nível profissional com acesso ilimitado e suporte.
15.425 alunosHoras do curso 150h Horas do curso certificado
Promoção R$ 277
12x de R$ 27,00
600+ Aulas Práticas
Procure exatamente o que você quer e assista a aula instantaneamente.
Novas aulas sendo adicionadas constantemente.


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.