banner-pix

eBook: Jornada Microsserviços



  • R$ 54,00

Venda de e-book Compre na Amazon Compre no Google Play

Ebook Jornada Microsserviços: do zero ao avançado somando conceitos e práticas

 Criado com a colaboração de experientes profissionais que transferiram o melhor de sua experiência para uma obra repleta de conhecimento técnico e de negócio, este livro explora o mundo cloud native, conceitos que envolvem essa arquitetura, prós e contras na aplicação e como isso tudo se encaixa no mundo dos microsserviços.

 Embarque conosco nesta jornada e torne-se um profissional diferenciado, com um conhecimento sólido e profundo da arquitetura de microsserviços.

Era uma vez um professor universitário que sonhava lançar um livro quando finalizou o mestrado em 2006. O sonho começou a ser concretizado em 2017 com o livro “Jornada DevOps”, mas alguns obstáculos travaram sua evolução após a escrita de três capítulos.

 Em setembro de 2018, durante sua palestra na PUC Minas, surgiu um click: “Será que outras pessoas apaixonadas por DevOps ajudariam com a escrita colaborativa?”

 Dezenas de colaboradores aceitaram o convite e o livro foi lançado para 350 pessoas no dia 06 de junho de 2019 no Centro de Convenções SulAmérica, no Rio de Janeiro.

 A escalada dos times gerou novas amizades, aprendizados, doação de R$ 332.590,00 para instituições com o lançamento de 16 livros e sonhamos transformar mais vidas com a inteligência coletiva e o apoio de empresas amigas.

 

Antonio Muniz
Fundador da Jornada Colaborativa e Mentor LiderProExpert.


Sandro Giacomozzi, Roan Brasil e Dorival Querino
Líderes do time organizador do livro, curadoria e revisão técnica.


Coautores

Abraão Santos

Albert Xavier

André Pontes Sampaio

Antonio Muniz

Carmem Pereira

Daniel Gomes

Dorival Querino

Edgar Silva

Eduardo Costa

Felipe Santos

Igor Simões

João Gilberto Magalhães

Jonas Santos

Kamila Santos

Karina Moraes

Natália Gonçalves Rosa

Norberto Hideaki Enomoto

Otavio Santana

Pedro Pereira

Regiane Moura Mendonça

Roan Brasil Monteiro

Rodrigo Branas

Rodrigo Moutinho

Ronaldo Fernandes

Sandro Giacomozzi

Vinicius Ferraz

Vitor Miranda

 

Revisores:

Abraão Santos

Beatriz Cruz dos Santos

Bruno Kaufmann

Bruno F. Antognolli

E-ISBN

9786588431597

Lançamento 17/05/2022
Páginas 352
Ano 2022
Sumário

PARTE I. INTRODUÇÃO

1. Introdução aos microsserviços (Roan Brasil Monteiro)

2. Introdução aos sistemas distribuídos (Roan Brasil Monteiro)

Definição de sistemas distribuídos

Objetivos dos sistemas distribuídos

Tipos de sistemas distribuídos

3. Definindo microsserviços (Roan Brasil Monteiro)

Como diferenciar monolitos de microsserviços?

Características dos microsserviços

4. Vantagens e desvantagens dos microsserviços (Roan Brasil Monteiro)

Vantagens

Desvantagens

5. Teorema de CAP (Roan Brasil Monteiro)

PARTE II. ARQUITETURA

6. Conceitos (Eduardo Costa)

Tipos de arquitetura

            Arquitetura evolutiva

            Arquitetura multicamadas

            Arquitetura hexagonal

            Arquitetura orientada a eventos

            Arquitetura monolítica

            Arquitetura orientada a serviços (SOA) (Norberto Hideaki Enomoto)

7. Construindo aplicações nativas para a nuvem (Eduardo Costa)

Diferenças entre aplicações cloud native e tradicionais

            Previsibilidade

            Modo de operação

            Capacidade de crescimento

            Cooperatividade

            Forma de desenvolvimento

            Dependências

            Escalabilidade

            Recuperação de falhas

8. Orquestração de serviços (Daniel Gomes)

Introdução

O que é orquestração de serviços?

Explorando uma solução arquitetural

Conclusão

9. Coreografia (Daniel Gomes)

Introdução

O que é coreografia de serviços?

Explorando uma solução arquitetural

Orquestrar ou coreografar serviços?

            Vantagens da orquestração sobre a coreografia

            Vantagens da coreografia sobre a orquestração

            Os benefícios dos serviços de coreografia com fluxos de eventos

            Acoplamento de serviço independente para agilidade e tolerância a falhas

Conclusão

10. Especificações e frameworks (Daniel Gomes/Vitor Miranda/Jonas Santos/Vinicius Ferraz/Felipe Santos/Norberto Hideaki Enomoto/Natália Gonçalves Rosa)

Introdução

Spring Boot e Spring Cloud (Daniel Gomes)

            Microsserviços com Spring Boot

            Spring Cloud: ecossistema dos microsserviços

            Exemplos

            Conclusão

Micronaut (Vitor Miranda/Jonas Santos)

            Criando aplicação pela interface web

            Instalando o Micronaut

            Criando um projeto Micronaut

Quarkus (Vinicius Ferraz/Felipe Santos)

            Integração com Spring

            Integração com Vert.x

            Conclusão

Helidon (Norberto Hideaki Enomoto/Natália Gonçalves Rosa)

            Arquitetura Helidon

            Extensões

Conclusão

PARTE III. MODELAGEM E DESIGN

11. Domain-driven design (Albert Xavier)

Domínio

Bounded context

Conclusão

12. Melhores práticas de modelagem de API (Edgar Silva/Dorival Querino)

Big Mandate da Amazon

Modelando APIs com Swagger e Open API

            Introdução

            Criando APIs efetivas e reutilizáveis

            Práticas recomendadas e não recomendadas para APIs

            Versionamento de APIs

            Contratos de APIs como primeiro passo (API First)

            Criando contratos com Swagger

            Ferramentas Swagger: Swagger Editor

            Outras ferramentas interessantes para Swagger/OAS

Conclusão

13. BFF (Backend For Frontend) (Jonas Santos)

Conclusão

14. Decomposição de monolitos em microsserviços (Dorival Querino)

Decomposição por business capabilities

            Vantagens

            Desvantagens

            Conclusão

Decomposição por estrangulamento

            Exemplo

            Vantagens e desvantagens

            Conclusão

Decomposição por subdomínio (Pedro Pereira/André Pontes Sampaio)

            Mas qual é a solução para definir um subdomínio?

            Conclusão

Decomposição da base de dados (Pedro Pereira)

            Definindo uma abordagem para decomposição

            Visualização de dados

            Repositório por contexto limitado

            Dividir banco de dados com base nos domínios e subdomínios

            Decomposição incremental de cada banco de dados

            Decomposição lógica e física

            Potenciais problemas

            Conclusão

PARTE IV. PADRÕES EM MICROSSERVIÇOS

15. Comunicação interprocessos (Karina Moraes)

Serviço de descoberta

Registro de serviços

            Descoberta de serviços via router

            Descoberta de serviços na aplicação cliente

16. Configuração externa (Carmem Pereira/Natália Gonçalves Rosa)

Tipos de armazenamento de configuração externa

            Configuração em arquivo local

            Configuração externalizada com Spring Boot

            Configuração em armazenamento externo

Arquitetura do padrão

            Prós e contras

Spring Cloud Config

            Exemplo de código usando Spring (local YAML)

Conclusão

17. Comunicação síncrona de serviços (Karina Moraes)

Comunicação descentralizada e síncrona

Comunicação orquestrada, sequencial e síncrona

Comunicação orquestrada, paralela e síncrona

Desvantagens da comunicação síncrona

18. Circuit breaker (Norberto Hideaki Enomoto/Natália Gonçalves Rosa)

Estados do padrão de projeto circuit breaker

            Estado fechado

            Estado aberto

            Estado semiaberto

Exemplo de código

Conclusão

19. Padrões para composição de microsserviços

CQRS (Otavio Santana)

            Conclusão

API Gateway (Dorival Querino/Regiane Moura Mendonça)

            O que é API Gateway?

            Exemplos de API Gateway

            Servidores dedicados

            Serviços de gerenciamento de APIs (API management tools)

            Vantagens do API Gateway

            Cuidados com o API Gateway

            Conclusão

O padrão SAGA (Rodrigo Branas/Roan Brasil Monteiro)

            A importância do contexto transacional

            Consistência em uma arquitetura de microsserviços

            Tipos de implementação

            Implementação do SAGA coreografado (Norberto Hideaki Enomoto)

            Conclusão

20. Sistemas reativos (Norberto Hideaki Enomoto)

Introdução

Desenvolvimento orientado a mensagem (message-driver development)

            Arquitetura de um message broker

Exemplo de código

            Microsserviço “Producer”

            Microsserviço “Consumer”

Desenvolvimento orientado a eventos (event-driven development) (Carmem Pereira/Natália Gonçalves Rosa)

            Eventos

            Características da EDA

            Considerações para escolha da EDA

            Topologia do event-driven

            Consumidores de eventos e estilos de processamento

            Padrões da EDA

            Vantagens da EDA

            Desvantagens da EDA

Microsserviços reativos – Spring Webflux (Kamila Santos)

            Introdução

            Quais problemas o Webflux resolve

            Arquitetura

            Prós e contra dessa arquitetura

            Quando é recomendado (ou não) utilizar esta arquitetura

PARTE V. TÓPICOS AVANÇADOS – ECOSSISTEMA

21. Melhores práticas para microsserviços (Eduardo Costa)

Boas práticas para construção de aplicações nativas para nuvem com Twelve-Factor App

            O versionamento da sua aplicação

            Declaração explícita e isolamento de dependências

            Configurações pertencentes ao ambiente

            Tratar serviços de apoio como recursos que possam ser facilmente anexados

            Criação de releases versionadas e imutáveis que possam ser facilmente implantadas e retiradas de produção

            Aplicações não deverão possuir estado

            Gestão de atribuições de hosts e portas pela infraestrutura

            Maximização de robustez da aplicação com inicializações rápidas e desligamentos seguros

            Manter ambientes similares

            Escalando a aplicação horizontalmente

            Tratamento de logs como um fluxo de eventos

            Atenção às tarefas da administração

22. Virtualização (João Gilberto Magalhães)

23. Microsserviços na nuvem (Dorival Querino)

Exemplo de microsserviços na nuvem

Migrando a arquitetura para a nuvem

            Escolha do provedor

            Servidores na nuvem

            Serviços de banco de dados

            Armazenamento de objetos

            Contêineres na nuvem

Serverless – microsserviços sem servidor

            O que é serverless?

            Funções serverless

            API Gateway

            Armazenamento de objetos

            Banco de dados SQL serverless

            Banco de dados NoSQL

            Fila de mensagens

            Orquestração de funções serverless

            Contêineres serverless

Conclusão

24. Infrastructure as Code (IaC) (Dorival Querino)

Ferramentas de IaC

            Terraform

Gravando a configuração com o Console Recorder for AWS

Conclusão

25. Introdução à malha de serviços (service mesh) (Norberto Hideaki Enomoto)

Istio

Arquitetura do Istio

Componentes do Istio

            Envoy

            Istiod

Conclusão

26. DevOps (Rodrigo Moutinho/Regiane Moura Mendonça/Abraão Santos)

Vantagens e desvantagens com microsserviços

27. Integração contínua (Rodrigo Moutinho)

Automatizando um microsserviço em Java

Entrega contínua vs. Implantação contínua

28. Observabilidade (André Pontes Sampaio)

A necessidade de observabilidade

O que é observabilidade?

Desafios de monitoramento de microsserviços para equipes DevOps

Monitoramento versus observabilidade

Observabilidade como cultura, e não como uma preocupação operacional

Os três pilares da observabilidade

            Métricas

            Logs de eventos

            Rastreamento e monitoração sintética

Resolvendo gargalos nos microsserviços

            Enfrentando os desafios no monitoramento de microsserviços

AIOps

            O papel da AI/ML na monitoração das operações de TI

            Alerta com base em dados de monitoramento

Melhores práticas para alertas

            Quais sinais de monitoramento geram valor ao negócio?

            Depurando falhas

            Olhando para o futuro: OpenTelemetry para melhor cobertura

Conclusão

29. Segurança (Ronaldo Fernandes)

Autenticação

Autorização

SSL/TLS

JWT (Ronaldo Fernandes/Abraão Santos/Sandro Giacomozzi)

            Token

Frameworks de segurança (Ronaldo Fernandes)

            Boas práticas

Conclusão

30. Testes (Sandro Giacomozzi/Karina Moraes/Vitor Miranda/Jonas Santos)

Testes de unidade

            JUnit

            Mocks

Testcontainers (Sandro Giacomozzi)

            Banco de dados

            Estudo de caso com Spring Boot

            Conclusão

Testes de integração e de contrato (Karina Moraes)


Escreva um comentário

Acessar