Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Introdução 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Introdução Problema? ● Sistema principal monolítico. ● Tecnologia legadas. ● Arquitetura não evolutiva. ● Alto acoplamento. 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Objetivos 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Referencial Teórico 10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Metodologia 17

Slide 18

Slide 18 text

Introdução Metodologia ● Metodologia de Pesquisa Descritiva ● Estratégia de Estudo de Caso 18

Slide 19

Slide 19 text

Estudo de Caso Arquitetura de Software Atual 19

Slide 20

Slide 20 text

Estudo de Caso 20 Fonte: O Autor Representação da Arquitetura de Software Atual

Slide 21

Slide 21 text

Estudo de Caso 21 Fonte: O Autor Representação do Fluxo de Funcionamento da Arquitetura de Software Atual

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

Solução Proposta Nova Arquitetura de Software 23

Slide 24

Slide 24 text

Solução Proposta 24 Fonte: O Autor Representação da Arquitetura de Software Proposta

Slide 25

Slide 25 text

Solução Proposta 25 Fonte: O Autor Representação do Fluxo de Funcionamento da Arquitetura de Software Proposta

Slide 26

Slide 26 text

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.

Slide 27

Slide 27 text

Análise de Dados 27

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Avaliação dos Resultados 29

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Conclusão 32

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

Referências 34

Slide 35

Slide 35 text

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: . Acesso em: 03 de Abril de 2021. ● FOWLER, Martin, Microservices and the first law of distributed objects.: Thoughworks, 2015. Disponível em: . Acesso em: 07 de Maio de 2021. 35 Referências 42

Slide 36

Slide 36 text

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: , 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

Slide 37

Slide 37 text

No content