Slide 1

Slide 1 text

Olá, MS MS MS MS ARQUITETURA DE MICROSSERVIÇOS Inmetrics Alexsander Melo

Slide 2

Slide 2 text

Hard Tech Strong Results AGENDA Microsserviços Arquitetura Modelos de arquitetura Estratégia de teste Perguntas

Slide 3

Slide 3 text

Hard Tech Strong Results MODELOS Slower deployment Mainframe Client-Server N-Tier SOA More Complex Increasing Velocity Microservices Containerized Microservices Container Orchestration

Slide 4

Slide 4 text

Hard Tech Strong Results EVOLUÇÃO Processo de Desenvolvimento Waterfall Infraestrutura Datacenter Hosted Cloud Deploy Physical Servers Arquitetura Monolithic n - Tier Container Microservices Virtual Server

Slide 5

Slide 5 text

Hard Tech Strong Results REACTIVE SYSTEM Manifesto publicado em setembro de 2014 Responsive O Sistema deve lidar com as solicitações em tempo razoável. Resilient O Sistema deve permanecer responsivo em caso de falhas. Projetado para tratar as falhas de modo apropriado. Message Driven A interação entrem os componentes do Sistema ocorrem por passagem assíncrona de mensagens. Elastic Um sistema reativo deve permanecer responsivo sob várias cargas. Consequentemente, ele deve ser dimensionado para cima e para baixo e ser capaz de manipular a carga com recursos mínimos.

Slide 6

Slide 6 text

Hard Tech Strong Results MICROSSERVIÇOS São pequenos serviços autônomos, responsáveis por unidade mínima de negócio. Funcionalidade MS Reservar Mesa Abertura de Comanda Fechar Conta MS MS Unidade Lógica Mesa Comanda Cliente MS MS MS Deploy Independente; Escalável Independentemente; Separado em Containers.

Slide 7

Slide 7 text

Hard Tech Strong Results PROPÓSITO Construir soluções coesas, facilmente escaláveis, de ágil construção (entrega), eficientes na absorção de mudanças e baixa dependência de infraestrutura.

Slide 8

Slide 8 text

Hard Tech Strong Results MONOLÍTICO VS MICROSSERVIÇOS Pluralidade; Resiliência; Rápida resposta a mudanças Pontualmente escalável Entrega continua Troca de Variantes: Ambiente, Infra, Interação etc. Todas as Funcionalidades em único processo; Ponto único de quebra (Falha em trecho de código pode afetar toda a aplicação); Em muitos casos, grande quantidade de linhas de código; Correções e novas implementações, difíceis; Pequena alteração, reimplantação de todo sistema.

Slide 9

Slide 9 text

Hard Tech Strong Results DESAFIOS Novo nível de complexidade; Entrega contínua cada vez mais veloz; Granularidade dos serviços; Continuous testing: Teste Automatizado; Teste de Performance. Como testar nesta “panaceia”?

Slide 10

Slide 10 text

Hard Tech Strong Results ARQUITETURA DE SOFTWARE Entender e dominar a arquitetura é o ponto de partida; Agilidade, Velocidade e Modularidade; Com devido cuidado, garante vida longa e saudável; Tão importante quanto sistema vascular.

Slide 11

Slide 11 text

Hard Tech Strong Results PERSISTÊNCIA DE DADOS MS MS MS MS MS MS Integração realizada no Banco de Dados; Relational database (preferencialmente); Dependência a estrutura de dados; ACID; Dados sensíveis a transação. Domain-driven design; Cada Microsserviço possui seu Banco de dados; NoSQL database (preferencialmente); Dados não sensíveis a transação.

Slide 12

Slide 12 text

Hard Tech Strong Results PIPELINE ARCHITECTURE MS MS MS MS Síncrono MS MS MS MS Assíncrono Composição Procedural; O sucesso da transação depende de todos os Microsserviços; Fácil identificação de falha; Facilmente mapeado.

Slide 13

Slide 13 text

Hard Tech Strong Results ORCHESTRATION ARCHITECTURE Modo tradicional de interação; MS MS MS Serviço Agenda de consulta (Paciente, Médico e Sala) Cadastro ou Atualizar dados Paciente Agendar no Calendário de Atendimento do médico Reservar Sala de atendimento API Gateway Um controlador de ações; Request/Response pattern; Processo síncrono; O orquestrador é o ponto único de falha. MS MS MS Serviço Agenda de consulta (Paciente, Médico e Sala) Cadastro ou Atualizar dados Paciente Agendar no Calendário de Atendimento do médico Reservar Sala de atendimento MS

Slide 14

Slide 14 text

Hard Tech Strong Results COREOGRAPHY ARCHITECTURE MS MS MS MS Event Store Evento Agendar Consulta Cadastro ou Atualizar dados Paciente Agendar no Calendário de Atendimento do médico Reservar Sala de atendimento Event producers and event consumers; Processar volume alto de mensagens; Produtor e consumidor desacoplado; Facilidade em adicionar novo consumidor; Independência de eventos.

Slide 15

Slide 15 text

Hard Tech Strong Results COMMAND QUERY SOURCING - CQRS MS /command/ Event Queue MS MS MS MS MS /query/ Query Storage Alternativa ao CRUD pattern; Separação de leitura e escrita; Não ACID, admite eventuais inconsistências; Colaborativo; Apropriado para Domain-Drive Design. API Gateway

Slide 16

Slide 16 text

Hard Tech Strong Results TIPOS DE TESTE Aceitação Exploratório Unitário Propriedade Automatizado Manual Automatizado Performance Testes voltados para o negócio Testes voltados para a tecnologia Apoio a Programação Crítico ao Produto Brian Marick’s testing quadrant. Crispin, Lisa; Gregory, Janet, Agile Testing: A Practical Guide for Testers and Agile Teams, 1st Edition, c 2009. Adapted by permission of Pearson Education, Inc., Upper Saddle River, NJ.

Slide 17

Slide 17 text

Hard Tech Strong Results ESCOPO DO TESTE Mike Cohn’s Test Pyramid. Cohn, Mike, Succeeding with Agile: Software Development Using Scrum, 1st Edition, © 2010. Adapted by permission of Pearson Education, Inc., Upper Saddle River, NJ. UI Service Unit Aumento do Escopo Mais Confiante Mais Rápido Isolado

Slide 18

Slide 18 text

Hard Tech Strong Results TESTING COMPONENTS IN ISOLATION Comportamento encapsulado; Maior controle sobre o ambiente; Perspectiva do consumidor. Teste MS MS MS MS

Slide 19

Slide 19 text

Hard Tech Strong Results INTEGRATION TESTING Comunicação entre os serviços; Comportamento encapsulado; Cenários de sucesso; Cenários de erro. Avaliação do trabalho em conjunto sem falhas; MS MS MS MS Teste

Slide 20

Slide 20 text

Hard Tech Strong Results END-TO-END TESTING MS MS MS MS Teste Atende aos objetivos do negócio; Fluxo inteiro corretamente; Alto grau de confiança. Mais difícil de detectar qual serviço falhou;

Slide 21

Slide 21 text

Hard Tech Strong Results PERGUNTAS?

Slide 22

Slide 22 text

Hard Tech Strong Results REFERÊNCIAS BIBLIOGRÁFICAS Newman, Sam Building Microservices designing fine-grained systems: O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 Instana. Ebook - Service Quality Management in the Microservices Age MuleSoft. Whitepaper - The top six microservices patterns how to choose the right architecture for your organization Richardson, Chris Microservice Patterns Version 5: MEAP Edition Manning Publications, 2017 Laycock, Rachel, Thoughtworks Micro-Service Architecture the Anti-Pattern of the Future? Tripoli, Crislaine da S., Carvalho, Rodrigo P. Micros-serviços: características, benefícios e desvantagens em relação à arquitetura monolítica que impactam na decisão do uso desta arquitetura: ii seminário de desenvolvimento em soa com cloud computing e conectividade instituto nacional de telecomunicações – inatel agosto de 2016 - issn 2447-2352

Slide 23

Slide 23 text

Hard Tech Strong Results REFERÊNCIAS BIBLIOGRÁFICAS Srivastava, Saurabh DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING I I T KANPUR Dzone, The Dzone guide to Microservices Breaking Down the Monolith volume i

Slide 24

Slide 24 text

Hard Tech Strong Results OBRIGADO