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

Apresentação Projeto Final

Apresentação Projeto Final

Apresentação do Projeto Final para conclusão do curso de Análise e Desenvolvimento de Sistemas da Unisinos.

Título: Estudo de Caso: Reestruturação do Checkout Online para Arquitetura de Microsserviços

Igor Duarte

June 15, 2022
Tweet

More Decks by Igor Duarte

Other Decks in Education

Transcript

  1. Estudo de Caso Reestruturação de Checkout Online para Arquitetura de

    Microsserviços Aluno: Igor dos Santos Duarte Orientador: Prof. Dr. João Tavares Curso: Análise e Desenvolvimento de Sistemas
  2. AGENDA 1. Introdução 2. Objetivos 3. Referencial Teórico 4. Metodologia

    5. Estudo de Caso 6. Solução Proposta 7. Análise de Dados 8. Avaliação dos Resultados 9. Conclusão 10. Referências
  3. Introdução Contexto! Empresa do ramo privado focado em soluções de

    pagamento que possui uma ampla plataforma, constituída por um sistema monolítico principal e alguns outros serviços e que utiliza um sistema de checkout online para realização de vendas aos usuários/clientes. 4
  4. Introdução Justificativa! • Proposta de nova arquitetura que servirá como

    base para a tomada de decisão. • Contribuição para o conhecimento e aprendizado do autor. 6
  5. Objetivos Objetivo Geral Realizar um estudo de caso, para elaborar

    uma proposta de arquitetura de software baseada em microsserviços para o fluxo de checkout online. 8
  6. Objetivos Objetivos Específicos • Nova arquitetura baseada em microsserviços •

    Nova proposta de checkout online utilizando SPA • Proporcionar utilização de microsserviços isolados • Proporcionar que o processamento dos pagamentos ocorra de forma isolada • Melhorar mecanismo de fallback • Adicionar nova camada de API Gateway 9
  7. Referencial Teórico Arquitetura de software preocupa-se com o projeto em

    mais alto nível, onde o foco passa a ser em unidade de maior tamanho, sejam elas pacotes, componentes, módulos, camadas ou serviços. Inclui também as decisões de projeto mais importantes em um sistema, assim, considera-se que arquitetura não é apenas um conjunto de módulos, mas um conjunto de decisões estratégicas. “ ” Fonte: VALENTE, Marco Tulio, Engenharia de Software Moderna, 2020. Arquitetura de Software 11
  8. Fonte: FOWLER, Martin, Microservices and the first law of distributed

    objects, 2015. Referencial Teórico A construção de uma aplicação monolítica corresponde ao modelo natural de construção de um sistema. Toda a lógica é manipulada através de um processo singular, possibilitando o uso das características básicas da linguagem utilizada para dividir a aplicação em classes, funções e namespaces. “ ” Arquitetura de Monolítica 12
  9. Fonte: NEWMAN, Sam, Migrando Sistemas Monolíticos para Microsserviços, 2020. Referencial

    Teórico A Arquitetura de microsserviços, nada mais é do que serviços que podem ser implementados de forma independente, e são modelados em torno de um domínio de negócio. Eles se comunicam entre si por meio de redes e como uma opção de arquitetura, oferecem diversos modos de resolver os problemas. “ ” Arquitetura de Microsserviços 13
  10. Fonte: DA CRUZ SILVA, Roni; Saito, Rodrigo, Aplicando Arquitetura de

    Microsserviços no Desenvolvimento de Software, 2021. Referencial Teórico API Gateway é um padrão de desenvolvimento de microsserviços no qual trata de implementar um serviço que age como uma porta de entrada para os clientes externos, sendo assim, funciona, simplesmente roteando as requisições externas para o serviço apropriado ou então distribuindo a chamada para vários outros serviços. “ ” API Gateway 14
  11. Fonte: POTUKAR, Alexander, Resilience design patterns: retry, fallback, timeout, circuit

    breaker, 2019. Referencial Teórico De forma simples, Fallback é um padrão de microsserviços que permite que um serviço continue a execução em caso de falha na solicitação de outro serviço. “ ” Fallback 15
  12. Fonte: EUGÊNIO, Marcio, Checkout loja virtual: o que é e

    como criar, 2019. Referencial Teórico O checkout refere-se a página de concretização de uma compra online, onde um cliente após selecionar um produto e colocá-lo em seu carrinho virtual, irá finalizar sua compra, preenchendo seus dados pessoais e informando os dados de pagamentos. Ainda afirma que justamente por ter a importância de finalizar uma compra, é que a página de checkout deve ser bem construída. “ ” Checkout Online 16
  13. Estudo de Caso 21 Fonte: O Autor Representação do Fluxo

    de Funcionamento da Arquitetura de Software Atual
  14. Estudo de Caso Pontos Negativos 22 • Página de checkout

    legada com limitações e dentro do monolito. • Processamento de cartão de crédito dentro do monólito, enquanto outros métodos ocorrem em serviços isolados. • Em caso de falha no monólito, checkout online e processamento com cartão de crédito não irão funcionar. • Fallback se encontra dentro do monolito. • A evolução e manutenção da plataforma se encontram com alta complexidade e dificuldade.
  15. Solução Proposta 25 Fonte: O Autor Representação do Fluxo de

    Funcionamento da Arquitetura de Software Proposta
  16. Solução Proposta Benefícios 26 • A nova página do checkout

    online poderá ser refatorada utilizando a abordagem de SPA. • O processamento do cartão de crédito ocorrerá de forma isolada em um novo serviço. • Todos os serviços de pagamento rodando de forma isolada em serviços. • Fallback de pagamentos ocorrendo de forma isolada. • Evolução e manutenção de forma mais simplificada. • Adição da nova camada de API Gateway.
  17. Avaliação dos Resultados Análise de Dados • Coleta de dados

    através de questionário Online (Google Forms) • Questões quantitativas e de escala linear (escala likert) • Análise de dados através da ferramenta (Google Forms) • Avaliação dos resultados utilizando gráficos e análise descritiva 28
  18. Avaliação dos Resultados Resultados • Participaram da pesquisa 7 Líderes

    Técnico e 4 Arquitetos de Software; • 100% dos entrevistados responderam que correspondente a uma arquitetura de microsserviços; • 64% dos entrevistados acham muito provável e 36% acham provável de realizar uma refatoração do checkout online utilizando abordagem de SPA; • 64% dos entrevistados acham muito provável e 36% acham provável que o processamento dos serviços ocorrerão de forma isolada; • 100% dos entrevistados responderam ser pouco provável que o processamento dos pagamentos falhe em caso de erro; 30
  19. Avaliação dos Resultados Resultados • 27% dos entrevistados acham muito

    provável e 64% acham provável o funcionamento do mecanismo de fallback de forma isolada em caso de falha; • 90% dos entrevistados concordam que as responsabilidades do processamento de pagamentos estejam isoladas em serviços; • 18% dos entrevistados responderam ser muito provável e 92% ser provável, que a adição da camada de serviço do API Gateway irá trazer benefícios; • 100% dos entrevistados acham que a arquitetura de software proposta apresentada irá trazer os benefícios propostos. 31
  20. Conclusão Conclui-se, que a pesquisa atingiu o seu objetivo de

    realizar um estudo de caso sobre a arquitetura de software atual e apresentar e validar uma nova arquitetura de software baseada em microsserviços para contribuir na melhoria e evolução do produto da empresa. CONCLUSÃO 40
  21. Referências • DA CRUZ SILVA, Roni; SAITO, Esp Rodrigo. Aplicando

    Arquitetura de Microsserviços no Desenvolvimento de Software. Revista de Ubiquidade, v. 4, n. 2, p. 58-84, 2021. • EUGÊNIO, Marcio, Checkout loja virtual: o que é e como criar, Blog dlojavirtual, 19 de Dezembro de 2019. Disponível em: <https://www.dlojavirtual.com/dicas/como-melhorar-seu-checkout-da-loja-virtual> . Acesso em: 03 de Abril de 2021. • FOWLER, Martin, Microservices and the first law of distributed objects.: Thoughworks, 2015. Disponível em: <https://www.thoughtworks.com/insights/microservices>. Acesso em: 07 de Maio de 2021. 35 Referências 42
  22. Referências • NEWMAN, Sam, Migrando Sistemas Monolíticos para Microsserviços, 1a

    Edição, Editora Novatec, p-14, p-27, 2020. • Potukar, Alexander, Resilience design patterns: retry, fallback, timeout, circuit breaker, 2019, Disponível em: <https://blog.codecentric.de/en/2019/06/resilience-design-patterns-retry-fallback- timeout-circuit-breaker/>, Acesso em: 01 de Maio de 2022. • VALENTE, Marco Tulio, Engenharia de Software Moderna, 1a Edição, Editora Um Livro, p-8, p-229, p-230, p-308, 2020. 36 Referências 43