Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsservices Architecture

Alexsander Melo
October 23, 2018
55

Microsservices Architecture

How to structure Automation Testing and Performance Testing in microsservices? Knowing the models of microsservices architecture is the first step. These slides abort the most important models in adoption (Pipeline, Orchestration e Choreography) that will help us to define test strategy.

Alexsander Melo

October 23, 2018
Tweet

Transcript

  1. Hard Tech Strong Results MODELOS Slower deployment Mainframe Client-Server N-Tier

    SOA More Complex Increasing Velocity Microservices Containerized Microservices Container Orchestration
  2. 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
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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”?
  8. 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.
  9. 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.
  10. 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.
  11. 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
  12. 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.
  13. 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
  14. 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.
  15. 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
  16. Hard Tech Strong Results TESTING COMPONENTS IN ISOLATION Comportamento encapsulado;

    Maior controle sobre o ambiente; Perspectiva do consumidor. Teste MS MS MS MS
  17. 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
  18. 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;
  19. 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
  20. 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