Back-end Java Microsserviços, Spring Boot e Kubernetes
Eduardo Felipe Zambom SantanaConteúdo
A arquitetura dos sistemas de software vem sofrendo diversas revoluções nos últimos anos, desde os grandes monólitos até os microsserviços. Atualmente, para a plataforma Java, o framework mais utilizado para desenvolver microsserviços é o Spring Boot, que facilita a configuração e o uso de bibliotecas necessárias. Mas para executar uma aplicação inteira, tanto em um ambiente local quanto de produção, é necessário rodar e configurar todos os serviços e permitir que eles se comuniquem. Hoje é essencial que a pessoa desenvolvedora back-end conheça, além da linguagem de programação, algumas dessas ferramentas para a execução da aplicação em um ambiente de produção. É esse o objetivo dos contêineres Docker e do Kubernetes.
Neste livro, Eduardo Zambom Santana vai passar por todo o back-end de uma aplicação Java. Você vai desenvolver uma aplicação de exemplo com o Spring Boot formada por três microsserviços inicialmente independentes, com as responsabilidades de gerenciar usuários, produtos e compras. Em seguida, você trabalhará na comunicação entre seus microsserviços, criando imagens Docker para eles e, por fim, executando a aplicação em um cluster Kubernetes.
Edição atualizada
Esta nova edição conta com novos capítulos, com adição de Testes de Unidade para aumentar a confiabilidade e a qualidade da aplicação, e também um novo projeto, o api-gateway, para facilitar o acesso aos microsserviços. As aplicações agora contemplam o Lombok para evitar que a pessoa programadora tenha que escrever códigos repetitivos, como os métodos get e set e os construtores. Além disso, as versões do Spring Boot, Java e Kubernetes foram atualizadas para as mais recentes.
Sumário
- 1 Introdução
- 1.1 Framework Spring
- 1.2 Kubernetes
- 1.3 Lombok
- 2 Instalando o ambiente
- 3 Criando os primeiros serviços
- 3.1 Hello World com o Spring Boot
- 3.2 Serviço de Usuários (user-api)
- 4 Serviço de usuários (user-api)
- 4.1 Configuração do Spring Data nos serviços
- 4.2 Camada de dados (Repository)
- 4.3 Camada de serviços (Service)
- 4.4 Camada dos controladores (Controllers)
- 5 Serviço de produtos (product-api)
- 5.1 Camada de dados (Repository)
- 5.2 Camada de serviços (Service)
- 5.3 Camada dos controladores (Controllers)
- 5.4 Testando os serviços
- 6 Serviço de compras (shopping-api)
- 6.1 Camada de dados (Repository)
- 6.2 Camada de serviços (Service)
- 6.3 Camada dos controladores (Controllers)
- 6.4 Testando os serviços
- 7 Buscas mais complexas na shopping-api
- 7.1 Implementando as consultas
- 7.2 Camada de serviços (Service)
- 7.3 Camada dos controladores (Controllers)
- 7.4 Testando os serviços
- 8 Comunicação entre os serviços
- 8.1 Reutilizando DTOs
- 8.2 Mudanças nos projetos
- 8.3 Comunicação entre os serviços
- 9 Exceções
- 9.1 Criando as exceções
- 9.2 Implementando as exceções na user-api
- 9.3 Implementando as exceções na product-api
- 9.4 Implementando as exceções na shopping-api
- 10 Autenticação
- 10.1 Gerando o UUID na user-api
- 10.2 Validando o usuário na shopping-api
- 11 Testes de unidade
- 11.1 Configuração
- 11.2 User-api
- 11.3 Shopping-api
- 11.4 Cobertura de Código
- 12 Api-gateway
- 12.1 Configuração
- 12.2 Implementação
- 13 Executando a aplicação com Docker
- 13.1 Adaptando as aplicações para o Docker
- 13.2 Shopping-api
- 13.3 Api-gateway
- 13.4 Configurando nossas aplicações para utilizar o Docker
- 13.5 Rodando as aplicações com docker-compose
- 14 Kubernetes
- 14.1 Deployments e Pods
- 14.2 Services
- 14.3 Config Maps
- 14.4 Autenticação
- 15 Instalando o Kubernetes
- 15.1 Instalando o kubectl
- 15.2 Instalando o Kubernetes Dashboard
- 15.3 Subindo o Postgres no cluster
- 16 Implantando as aplicações no Kubernetes
- 16.1 User-api e product-api
- 16.2 Shopping-api
- 17 Acesso externo ao cluster
- 17.1 Nginx
- 17.2 Ingress
- 17.3 Outros comandos do Kubectl
Autor
Eduardo Felipe Zambom Santana
Eduardo Felipe Zambom Santana tem mais de 15 anos de experiência em Engenharia de Software. Trabalha principalmente como Java, já tendo trabalhado com os principais frameworks da linguagem como Struts, JSF e Spring. Também tem bastante experiência em outras linguagens como Python e Erlang. Formou-se em Ciência da Computação na UFSCar (2007), fez mestrado também na UFSCar (2010) e doutorado na USP (2019) trabalhando na área de sistemas distribuídos.
Dados do produto
- Número de páginas:
- 184
- ISBN:
- 978-65-86110-61-6
- Data publicação:
- 03/2021. Atualizado em 01/2023.