Slide 1

Slide 1 text

Microsserviços: Quem são? O que fazem? Como vivem? O que comem? Luram Archanjo @Sensedia

Slide 2

Slide 2 text

Quem sou eu? ● Sênior Software Engineer na Sensedia ● MBA em Aplicações Java - IGTI ● Análise e Desenvolvimento de Sistemas - FATEC ● Palestrante ○ The Developer’s Conference (TDC) ○ Google Developers Group (GDG) ○ SouJava ○ DevPira

Slide 3

Slide 3 text

Palestrante no TDC http://www.thedevelopersconference.com.br/palestrante/luram-archanjo

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Agenda ● Arquitetura de Software ● Arquitetura Monolítica ○ Vantagens ○ Desvantagens ● Arquitetura de Microservices ○ Vantagens ○ Desvantagens ● Dúvidas

Slide 6

Slide 6 text

Arquitetura de Software

Slide 7

Slide 7 text

Arquitetura de Software O conceito arquitetura de software surgiu devido ao aumento da complexidade em grandes sistemas. Portanto, David Garlan e Dewayne Perry (95) definiram arquitetura de software como: “a estrutura dos componentes de um programa/sistema, seus inter-relacionamentos e princípios e diretrizes guiando o projeto e evolução ao longo do tempo”. GARLAN, David; PERRY, Dewayne. Introduction to the Special Issue on Software Architecture, IEEE Transactions on Software Engineering, April 1995, pp. 269-274.

Slide 8

Slide 8 text

Quais tipos de Arquiteturas?

Slide 9

Slide 9 text

Arquitetura Monolítica Arquitetura Orientada a Serviços (SOA) Arquitetura Cliente Servidor ....

Slide 10

Slide 10 text

Arquitetura Monolítica

Slide 11

Slide 11 text

Arquitetura Monolítica O conceito arquitetura monolítica surgiu devido ao desenvolvimento de softwares com uma única unidade. Tais softwares geralmente são construídos em três camadas principais: camada de interface gráfica que consiste geralmente em páginas HTML, um banco de dados para armazenamento de informações e uma aplicação do lado servidor responsável por atender as requisições, executar lógica de negócio e recuperar, atualizar e inserir dados. Está aplicação é monolítica, pois qualquer alteração no software deve-se implementar uma nova versão, independente da camada modificada.

Slide 12

Slide 12 text

Interface Gŕafica Funcionalidades Banco de dados Arquitetura Monolítica

Slide 13

Slide 13 text

Arquitetura Monolítica Vantagens

Slide 14

Slide 14 text

Arquitetura Monolítica ● Debug ● Test ● Deploy ● Monitoramento

Slide 15

Slide 15 text

Arquitetura Monolítica Desvantagens

Slide 16

Slide 16 text

Escalabilidade Interface Gŕafica Funcionalidades Banco de dados CPU MEMÓRIA DISCO

Slide 17

Slide 17 text

Manutenibilidade Interface Gŕafica Funcionalidades Interface Gŕafica Funcionalidades Interface Gŕafica Funcionalidades

Slide 18

Slide 18 text

Flexibilidade Interface Gŕafica Funcionalidades Banco de dados

Slide 19

Slide 19 text

Arquitetura Microsserviços

Slide 20

Slide 20 text

Arquitetura Microsserviços Segundo Fowler (2014), o estilo arquitetural de micro serviços pode ser definido como uma abordagem ao desenvolvimento de uma aplicação como um conjunto de pequenos serviços autônomos, cada um rodando em seu processo e comunicando-se através de mecanismos leves como uma API oferecida via HTTP. Estes serviços são desenvolvidos com o objetivo de atender uma determinada função. FOWLER, Martin; LEWIS, James. Microservices, 2014. Disponível em: : Acesso em: 16 jan. 2018.

Slide 21

Slide 21 text

Arquitetura Microsserviços Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice Microservice

Slide 22

Slide 22 text

Arquitetura Microsserviços Vantagens

Slide 23

Slide 23 text

Escalabilidade Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice

Slide 24

Slide 24 text

Manutenibilidade Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice v1 v2

Slide 25

Slide 25 text

Alta disponibilidade Microservice LOAD BALANCE Microservice Microservice Microservice

Slide 26

Slide 26 text

Alta disponibilidade LOAD BALANCE Microservice Microservice Microservice

Slide 27

Slide 27 text

Heterogeneidade Tecnologica Microservice Microservice Microservice DB DB DB

Slide 28

Slide 28 text

Heterogeneidade Tecnologica Microservice Microservice Microservice Microservice

Slide 29

Slide 29 text

Paralelismo de times Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice

Slide 30

Slide 30 text

Arquitetura Microsserviços Desvantagens

Slide 31

Slide 31 text

Rede Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice Microservice

Slide 32

Slide 32 text

Rede Microservice Microservice Microservice

Slide 33

Slide 33 text

Rede - Retry Pattern Microservice Microservice Microservice Microservice Microservice Microservice 1º 2º 3º

Slide 34

Slide 34 text

Rede - Retry Pattern Microservice Microservice Microservice Microservice Microservice Microservice 1º 2º 3º

Slide 35

Slide 35 text

Rede - Fallback Pattern Microservice Microservice 3º Resposta padrão

Slide 36

Slide 36 text

Rede - Fallback Pattern

Slide 37

Slide 37 text

Rede - Circuit Breaker Pattern

Slide 38

Slide 38 text

Observabilidade Microservice Microservice Microservice Microservice

Slide 39

Slide 39 text

Observabilidade - Opentracing

Slide 40

Slide 40 text

Observabilidade - Métricas

Slide 41

Slide 41 text

Observabilidade - Logs Log Collector Microservice Microservice Microservice

Slide 42

Slide 42 text

Dados distribuídos Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice Microservice

Slide 43

Slide 43 text

Dados distribuídos - Saga Pattern Microservice Microservice Microservice Microservice

Slide 44

Slide 44 text

Dados distribuídos - Saga Pattern Microservice Microservice Microservice Microservice

Slide 45

Slide 45 text

Segurança Microservice Microservice Microservice Microservice Microservice Microservice Microservice

Slide 46

Slide 46 text

Segurança - API Gateway API Gateway Microservice Microservice Microservice

Slide 47

Slide 47 text

Sumário 2º Lugar 1º Lugar 3º Lugar Escalabilidade ● Custo ● Alta disponibilidade Manutenabilidade ● Correção ● Produtividade ● Evolução Heterogeneidade ● Caso de uso ● Time to market

Slide 48

Slide 48 text

Arquitetura de Microservices não é fácil!

Slide 49

Slide 49 text

Existem mais de 52 patterns!

Slide 50

Slide 50 text

Referências

Slide 51

Slide 51 text

Dúvidas?

Slide 52

Slide 52 text

Muito obrigado! /larchanjo /luram-archanjo