![Page 1: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/1.jpg)
Matando WebForms e
modernizando um Grande
Varejista
Como é possível modernizarmos o velho, mantermos compatibilidades e garantirmos o negócio?
![Page 2: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/2.jpg)
Apresentação
Palestrante: José Roberto Araújo
Palestrante | Arquiteto de Sistemas
Onde me encontrar? Email: [email protected] e também...
Grupos:
@CrazyTechGuys
@IoTWeekend@AspNet BR
Redes Sociais:
@Slideshare { /jroberto.jr }
@Facebook { /joserobertoaraujo }
@Twitter { @jrobertofaraujo }
@Linkedin { /joserobertoaraujo }
@Blog { http://www.jrobertoaraujo.net }
![Page 3: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/3.jpg)
Um pouco da história
![Page 4: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/4.jpg)
O Grande Desafio...
Inovar o ecommerce, mantendo
conversão de clientes e vendas
Aumentar performance, sem
aumentar o consume de vCPUs,
Memória e I/O de disco e Rede
Reutilizar o checkout? Usaram Api,
Não? Não!!! Aumento da curva de aprendizado do time !!!
Backoffice, onde fica nisso tudo?
Inovar aplicando os conceitos web
de SEO, WPO (Web Presentation
Optimized)
Estratégia da Convivência
![Page 5: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/5.jpg)
Como estava o cenário?
Cenário caótico e com váriasdefinições de negócio divergentes
Aplicação com várias falhas de desenvolvimento e lógica
Descrédito sobre a utilização do REDIS. Porquê? Qual foi a outrasolução?
Não havia servidores de Testes integrados e Staging (Pré-Produção)
Tudo baseado no AspNet Cache, serviço windows, entreypoint únicopara atualização do cache, tudonum único Application Pool
NGINX desatualizado e mal configurado
Sem Rumo = CAOS
![Page 6: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/6.jpg)
Ações planejadas
TDD + MTM
DDD ? Sim, para alguns casos!
Entityframework? Sim, usamos !
Implementação de técnicas de WPO
Implementação de carregamento assincrono dos Assets: Javascript e CSS
Implementação de recomendações de SEO
Continuar com AspNet Cache? Porquê? Quais ganhos? Quais perdas?
Grande inclinação para utilizar o REDIS
Servidores de Testes e Staging
Teste de Carga
Atualização do Nginx e Revisão de suas configurações
Refatoração e adequação do Backoffice
Colocando cada coisa em seu lugar…
![Page 7: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/7.jpg)
Migrar 100% não seria o caminho?
Esse seria o caminho…
Não daria para entregar o
projeto completo, em
tempo hábil. (4 meses)
Morte do Projeto e Desgaste dos Desenvolvedores
![Page 8: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/8.jpg)
WPO – Web Performance Optimization
![Page 9: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/9.jpg)
WPO – Web Performance Optimization
![Page 10: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/10.jpg)
O que aconteceu ao subir as novidades
da Nova Plataforma?
ROLLBACK por 3X
Porquê?
Consumo altíssimo das vCPUs
Consumo altíssimo de Memória
Alto indice de I/O nos Web Servers
Mas onde estavam os problemas? Ação HARD...
E…
Só tinhamos mais uma chance, final de
Setembro/2015! E fizemos um novo Deploy
![Page 11: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/11.jpg)
Nem tudo são flores…
Lock de objetos implementados inadequadamente
Implementação LINQ utilizando vários .Includes
Stored Procedures mal implementadas Lockando
registros
Paralelismo utilizado inadequadamente
Problemas de performance na aplicação REDIS,
pagando o preço por estrégias inadequadas
Tivemos que abrir mão dos testes de unidade já
iniciados (Diante de alguns rollbacks, não tinhamos
tempo para “desperdiçar” com TDD – Doce ilusão)
Retorno do filho pródigo: AspNet Cache !!!
![Page 12: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/12.jpg)
O que houve com o Redis?
Armazenamento mal planejado
Estratégia das chaves-valor sem lógica e
fora dos padrões recomendados
Throughput muito alto de rede (Tráfego
de um grande volume de objetos em
requisições simples)
Mas o REDIS não resolve cenários de alta
performance?
Retorna, assim, o AspNet Cache!!!
Vejo sinais de Code Smell
![Page 13: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/13.jpg)
1º Arquitetura utilizada na plataforma
![Page 14: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/14.jpg)
Como ficou ao de subir as novas
implementações da Nova Plataforma?
![Page 15: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/15.jpg)
Overload de CPU?
107% em algumas CPUs
O que levou a esse cenário?
Utilização de recursos de programação de forma inadequada
Paralelismo em consultas LINQ
Lock em blocos de código, segurando outras requests a executarem o código
Pagamento da dívida de ter removido os Testes de Unidade
Várias requests e consultas sendo executadas pela aplicação, para a mesma informação
Iterações em 10k+ registros aplicando operações com strings com Regex
![Page 16: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/16.jpg)
O que tivemos que analisar?
Dump de memória de Produção e Homologação
Aplicação de filtros e indicadores para análise de performance através do PerfMon
Aplicação do Dump de memória ao Debug Diagnostic Tools
![Page 17: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/17.jpg)
O que tivemos que analisar?
![Page 18: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/18.jpg)
O que tivemos que analisar?
![Page 19: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/19.jpg)
Onde está Wally? Ou melhor Code Smell?
![Page 20: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/20.jpg)
O bom filho a casa torna: REDIS !!!
![Page 21: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/21.jpg)
Estratégias utilizadas
Análise do fluxo do negócio
Análise sobre a utilização das informações e grau de mudança das informações no site
Levantamento sobre qual navegabilidade o usuário esperava do portal
Chaveamento das informações por departamento, dentro do portal
Aplicação do conceito Get-Fetch (Buscar e Carregar)
Aplicação de filtros de dados dentro nas estruturas de dados no Redis
Implementação dos servidores do Redis no mesmo barramento de Rede dos WebServers
![Page 22: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/22.jpg)
2º Arquitetura utilizada na plataforma
![Page 23: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/23.jpg)
Blackfriday após a subida das melhorias
![Page 24: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/24.jpg)
Como ficou o Load time comparado aos
concorrentes ?
![Page 25: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/25.jpg)
Processamento Backoffice
![Page 26: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/26.jpg)
Dashboard de acompanhamento do
processamento do Backoffice
![Page 27: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/27.jpg)
Talk is Cheap…
![Page 28: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/28.jpg)
Conclusão
1. Realize SEMPRE uma Análise sobre as expectativas do seu cliente.
Frustra-las será seu pior fracasso.
2. Busque SEMPRE inovar, com MODERAÇÃO.
NÃO utilize tudo de novo que o Mercado oferece, nem tudo se encaixa com suas necessidades.
3. Entenda o perfil do seu time.
Você será o principal fator para seu time performar
4. Mesmo tomando todos os cuidados, tenha ferramentas, estratégias e conhecimento para sanar osproblemas.
Caso contrário, um pequeno ponto no código poderá levar seu projeto ao fracasso.
5. Fique sempre antenado no Mercado e busque aplicar as melhores práticas.
Elas normalmente te encaminharam para o sucesso do seu projeto, motivação do seu time e garantia de um cenário mais controlado.
6. Trabalhem bem sua arquitetura, NUNCA a Negligencie.
O preço dela é ALTÍSSIMO, a conta chega e o pagamento, as na maioria das vezes não é tão trivial. Gerandocenários nocivos ao seu negócio.
![Page 29: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/29.jpg)
Dúvidas / Perguntas
![Page 30: Matando WebForms e modernizando um grande varejista · Aumentar performance, sem aumentar o consume de vCPUs, Memória e I/O de disco e Rede Reutilizar o checkout? ... de SEO, WPO](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be6ad3009d3f2ea1a8d7ab7/html5/thumbnails/30.jpg)
Obrigado !!!