Slide 1

Slide 1 text

Limites E contextos Como DDD ajuda Na modelagem de Microserviços blog.eriksen.com.br/palestras

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Com certeza só atrapalha. Há muita Complexidade nos serviços, e o sistema Como um todo é muito instável. Iniciativas Novas estão paradas por causa disso – 14 serviços @ 7 desenvolvedores “ ”

Slide 4

Slide 4 text

Usamos microserviços, mas não está dando Certo. Tem um serviço que apenas move um Arquivo De um lugar pro outro no sistema de arquivos: Tem umas 20 classes! – 12 serviços @ 34 desenvolvedores “ ”

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Microserviços são o primeiro estilo arquitetural pós-revolução DevOps, é O primeiro a abraçar completamente as Práticas dE engenharia da entrega contínua – Neal Ford e Rebecca Parsons “ ”

Slide 7

Slide 7 text

Microserviços

Slide 8

Slide 8 text

Microserviços são serviços pequenos E autônomos que trabalham em conjunto – Sam Newman “ ”

Slide 9

Slide 9 text

É uma forma de desenvolver uma aplicação como uma Suíte de pequenos serviços, cada qual rodando em seu Próprio processo (...). Esses serviços são construídos Ao Redor de capacidades de negócio e são implantados Independentemente com processos automatizados. (...) Podem ser escritos em diferentes linguagens e usar Tecnologias diferentes de armazenamento de dados – James Lewis e Martin Fowler “ ”

Slide 10

Slide 10 text

Estrutura modular evidente

Slide 11

Slide 11 text

Estrutura modular evidente Deploy independente

Slide 12

Slide 12 text

Estrutura modular evidente Diversidade tecnológica Deploy independente

Slide 13

Slide 13 text

Estrutura modular evidente Ciclo mais rápido de entrega Diversidade tecnológica Deploy independente

Slide 14

Slide 14 text

Estrutura modular evidente Ciclo mais rápido de entrega Diversidade tecnológica Deploy independente Maior resiliência

Slide 15

Slide 15 text

Estrutura modular evidente Ciclo mais rápido de entrega Diversidade tecnológica Reuso de funcionalidade Deploy independente Maior resiliência

Slide 16

Slide 16 text

Uma arquitetura evolutiva possibilita Mudança Em uma arquitetura como um Primeiro Princípio. É atraente porque Mudança tem sido historicamente cara e difícil De Antecipar – Neal Ford e Rebecca Parsons “ ”

Slide 17

Slide 17 text

É uma arquitetura evolutiva por causa Do seu forte princípio de Contexto Delimitado, Tornando a divisão lógica do Domain-Driven Design uma separação física – Neal Ford e Rebecca Parsons “ ”

Slide 18

Slide 18 text

Questionamentos se design é necessário ou Acessível perdem o ponto: design é inevitável. A alternativo para bom design é design ruim, E não a ausência de design – Douglas Martin “ ”

Slide 19

Slide 19 text

Domain-Driven Design

Slide 20

Slide 20 text

O DDD é uma forma de desenvolver software que tem, como objetivo, implementar o melhor design de software baseado em modelos que refletem as competências da organização – Vaughn Vernon “ ”

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Design Estratégico é como fazer o rascunho antes De Entrar nos detalhes da implementação. Destaca O que é estrategicamente importante para o seu Negócio, como dividir o trabalho por importância E como fazer integrações da melhor maneira – Vaughn Vernon “ ”

Slide 25

Slide 25 text

DDD é primariamente sobre modelar Uma linguagem ubíqua em um Contexto delimitado – Vaughn Vernon “ ”

Slide 26

Slide 26 text

Contexto Delimitado (Bounded Context)

Slide 27

Slide 27 text

Contexto Delimitado (Bounded Context) Linguagem Ubíqua (Ubiquitous Language)

Slide 28

Slide 28 text

Linguagem Ubíqua (Ubiquitous Language) modelamos isso dentro Veículo Contexto Delimitado (Bounded Context) Itinerário Motorista

Slide 29

Slide 29 text

Itinerário Veículo Perna Comprovante Motorista Destinatário Entrega Contexto Transporte (Core Domain)

Slide 30

Slide 30 text

= + + Contexto Time Banco de dados Repositório

Slide 31

Slide 31 text

Rota Veículo Carga Nó Contexto Roteirização (Genérico)

Slide 32

Slide 32 text

Contexto Agendamento (Suporte) Conta Entrega Nota Fiscal Comprovante

Slide 33

Slide 33 text

Contexto Identificação (Genérico) Conta Usuário Permissão

Slide 34

Slide 34 text

Contexto Monitoramento (Suporte) Veículo Remessa Motorista

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Parceria

Slide 37

Slide 37 text

Cliente-fornecedor Downstream (cliente) Upstream (fornecedor)

Slide 38

Slide 38 text

Camada Anti-corrupção (Anticorruption Layer)

Slide 39

Slide 39 text

Conformista

Slide 40

Slide 40 text

D u D u Contexto Transporte (Core Domain) Roteirização (Genérico) Agendamento (Suporte) Identificação (Genérico) Monitoramento (Suporte)

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Microserviços criam uma barreira concreta ao redor da lógica que um time está criando em um serviço particular. Limites lógicos não sobrevivem no mundo real, é muito fácil em um monólito, na pressa usar alguma coisa que se precisa – Eric Evans “ ”

Slide 43

Slide 43 text

blog.eriksen.com.br/palestras [email protected] @eriksencosta