Você está na página 1de 52

A escolha do modelo arquitetural

@brito_michelli
#decoderweek youtube.com/michellibrito
Order Production

Payment Delivery

DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Order Production
Order Production
Order Production

Payment Delivery
Payment Delivery
Payment Delivery

DB

@brito_michelli
#decoderweek youtube.com/michellibrito
DB Order Production DB

Payment Delivery

DB

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Order Production

DB DB

Payment Delivery

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Order
Order
Order Production

DB DB

Payment
Payment Delivery

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura de Microservices envolve desde conceitos técnicos, financeiros e
gerenciais moldados principalmente sobre a necessidade do negócio.

A mudança de paradigma para Microservices requer também uma mudança


equivalente na estrutura da organização. Não é só uma questão técnica. É
também cultural e organizacional.

Arquitetura de Microservices é um subconjunto dos conceitos de sistemas


distribuídos modernos.

Arquitetura de Microservices não é uma bala de prata...

@brito_michelli
#decoderweek youtube.com/michellibrito
Manutenibilidade Alta Disponibilidade
Flexibilidade Independência Melhor
Tecnológica das Equipes Performance

Divisão da Complexidade do Negócio Isolamento a Falhas

Melhor
Alta Escalabilidade Baixo Acoplamento
Testabilidade

Agilidade nas Isolamento Aumento


Mudanças Modelagem Dados Resiliência
@brito_michelli
#decoderweek youtube.com/michellibrito
@brito_michelli
#decoderweek youtube.com/michellibrito
Microservices Cloud Event Driven

Batch Reactive

@brito_michelli
#decoderweek youtube.com/michellibrito
Spring Spring Spring
Boot Framework Data

Spring Spring Spring


Cloud AMQP Batch

@brito_michelli
#decoderweek youtube.com/michellibrito
Microservices de
Negócio

Order Production
Service Service

DB DB

Payment Delivery
Service Service

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Microservices de
Negócio

Spring Boot Spring Boot

DB DB

Spring Boot Spring Boot

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
@brito_michelli
#decoderweek youtube.com/michellibrito
Preparation Kitchen
Service Service

Order Production Packaging


Service Service Service

Paypal Payment Delivery


Service Service Service

PagSeguro
Service
@brito_michelli
#decoderweek youtube.com/michellibrito
@brito_michelli
#decoderweek youtube.com/michellibrito
Sim! Ainda temos uma Arquitetura de Microservices com base de
Order Production dados compartilhada.
Service Service

Na migração de Monolítico para Microservices o uso de base de dados


compartilhada é comum no inicio.
DB

Base de dados compartilhada garante forte consistência.

Payment Delivery
Service Service
Base de dados compartilhada gera forte acoplamento, sem isolamento
da modelagem de dados.

@brito_michelli
#decoderweek youtube.com/michellibrito
Base de dados por serviço geram a necessidade de sincronia de dados
Order Production na arquitetura e transações distribuídas.
Service Service

Com base de dados por serviço é preciso lidar com a consistência


DB DB eventual e a replicação de dados.

Base de dados por serviço geram menor acoplamento e isolamento da


modelagem de dados.
Payment Delivery
Service Service

Flexibilidade na escolha das base de dados por serviços.

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Spring Data JPA

Spring Data MongoDB

Spring Data JDBC

Spring Data Redis

Spring Data Cassandra

Spring Data Elasticsearch

@brito_michelli
#decoderweek youtube.com/michellibrito
Preocupações Transversais

@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
I Service I Service

DB DB

A A
Payment Delivery
P P
I
Service I Service

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 Spring Cloud
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB

@brito_michelli
#decoderweek youtube.com/michellibrito
Inserido na versão 5 do Spring Framework

Baseado no projeto Reactor

Suporte para programação Reativa

Servidor Netty

Roteamento para APIs,


definição de filtros e predicados

Integração com Service Registry para


registro e descoberta de serviços
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB
Spring Cloud
Netflix Eureka
Server
Instancias podem ser registradas em um servidor Eureka:
Eureka Server

Os Eureka Clients podem descobrir essas instancias


quando necessário

@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB
Spring Cloud
Eureka Server
Config Server
Suporte para configuração externa em uma
arquitetura de Microservices

Config Server para gerenciar configurações


de múltiplos ambientes

Utiliza do Git para armazenamento e


versionamento das propriedades

APIs para consultas de propriedades

Criptografia e Descriptografia de valores de


propriedades

@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

Logs
DB DB
Port 8080 API
Gateway

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

Logs
DB DB
Port 8080 API
Gateway

IDs

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Suporte para rastreamento distribuído

Geração de identificadores Trace ID (único


entre todas as chamadas)

Geração de identificadores Span ID


(individuais para cada chamada)

Integração com Zipkin para analise e


interpretação dos ids de forma centralizada

@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
1 - API Gateway

2 - Service Registry Discovery

3 - Externalized Configuration

4 - Observability

5 - Authentication e Authorization
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

Logs
DB DB
Port 8080 API
Gateway

IDs

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

Logs
DB DB
Port 8080 Spring Cloud
Gateway +
Spring Security

IDs

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Projeto que fornece autenticação e autorização
para aplicações Java

Suporte para implementação de Basic


Authentication em memória e em database,
JWT e OAuth

@brito_michelli
#decoderweek youtube.com/michellibrito
@brito_michelli
#decoderweek youtube.com/michellibrito
Arquitetura
Microservices

A A
Order Production
P P
Private I Service I Service
Network

Logs
DB DB
Port 8080 API
Gateway

IDs

A A
Payment Delivery
P P
I
Service I Service

DB DB

Eureka Server Config Server


Arquitetura
Microservices

A A
P Spring Boot P Spring Boot
Private I I
Network

Logs
DB DB
Port 8080 Spring Cloud
Gateway +
Spring Security

IDs

A A
P Spring Boot P Spring Boot
I I

DB DB
Spring Cloud Netflix Spring Cloud
Eureka Server Config Server
O entendimento do negócio juntamente com a experiência
e conhecimentos adquiridos, como o de Microservices
Patterns, são essenciais para você fazer as melhores
escolhas e definir as melhores soluções e assim ser um
profissional diferenciado no mercado.

A discussão de Microservices não deve ser apenas sobre


tamanho ou complexidade do negócio, mas sim sobre
projetar sistemas que respondam facilmente a mudanças e
modernizações tecnológicas.

@brito_michelli
#decoderweek youtube.com/michellibrito
@brito_michelli
#decoderweek youtube.com/michellibrito

Você também pode gostar