A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Do 1º usuário a 10 mil requests/seg

Apresentações semelhantes


Apresentação em tema: "Do 1º usuário a 10 mil requests/seg"— Transcrição da apresentação:

1 Do 1º usuário a 10 mil requests/seg
Com o Microsoft Azure aefses

2 O mundo real! Entre erros e acertos Em apresentações e textos na internet, conseguimos ver apenas o resultado final de experiências. A proposta dessa conversa não é mostrar o resultado e sim o caminho! Mundo real Nem tudo sai como o planejado Aprendizado O que aprendi e como isso influenciou tudo que fiz depois… Erros cometidos Durante a trajetória muitos erros são cometidos, o que importa é aprender com eles. Práticas Algumas boas práticas e outras não tão boas assim…

3 Construindo estratégias
Agenda Quanto tempo vai durar esse sofrimento? Lições aprendidas Quem é esse maluco? Construindo estratégias Ficou lento, vai cair! Medir e agir! aefses Lançamos o produto Redesenhando Nosso mundo Microsoft Azure salvando o dia!

4 Programador, Empreendedor, Curioso e viciado em cafeína.
João Bosco Seixas Programador, Empreendedor, Curioso e viciado em cafeína. Programador de sistemas web desde Maior parte do tempo com Stack Microsoft. Mas acredito que para todo problema existe uma ferramenta ideal Empreendedor, seja lá o que isso quer dizer. Sócio do Push Questões, plataforma de educação que funciona no Azure Consultor e Arquiteto de software na 2PC Tentando abandonar o vício da cafeína Formado em computação e MBA em Gestão Empresarial pela FGV

5 Aplicação no setor de Ticketing
De que estamos falando? Aplicação no setor de Ticketing Vendas de ingressos on-line e controle de acesso para eventos de grandes públicos no Brasil. SETOR Todos os concorrentes na época tinham dificuldades com vendas de grandes eventos por conta do volume de acessos REALIDADE

6 Tudo começa quando o software vai ao ar! #SQN
Lançamos!! Tudo começa quando o software vai ao ar! #SQN 1ª Versão Monolítica O objetivo era colocar a aplicação no ar – Afinal somos umas startup! Compromisso com a entrega Vou gerar valor, vou entregar software funcionando! Respondendo as demandas Todo mundo fica feliz quando o software começa a funcionar e os primeiros clientes começam a comprar. Eu faço rápido, sistemas rápidos! Fazer um sistema que ninguém usa ser rápido, é relativamente simples...

7 Era só codificar e jogar no servidor
Tudo era tão simples Era só codificar e jogar no servidor Ambiente Local Produção Maquina do desenvolvedor Síndrome do “Na minha máquina funciona” Problemas de sincronia de deploy de código x deploy da base de dados Deploy não automatizado Servidor único Aplicação + Database na mesma maquina Maquina super dimensionada para não correr o risco de “cair”

8 E eu achando que estava tudo sob controle
A arvore cresceu E eu achando que estava tudo sob controle Geração de Ingressos Catracas Mobile Custo de Servidor aumentando Novas funcionalidades Logística Manutenções

9 Dividir para Conquistar
Primeira lição aprendida aefses

10 Percebendo nossos mundos
Amadurecendo uma visão sobre micro serviços Logística BackOffice Web Suporte Pagamentos “Micro Services” não era um termo muito difundido em 2011 e toda a mudança de identificação e limitação dos contextos de cada aplicação foi guiado por algum conhecimento de DDD, intuição e muita tentativa e erro.

11 Errando ao separar contextos
Efeitos colaterais por todos os lados Eu já conhecia as responsabilidades Mas mesmo assim a implementação foi feita sem a separação física ideal, o que levou a uma serie de problemas de efeitos colaterais quando existia alguma mudança em algum contexto especifico do software. Mas não sabia que as coisas não tem o mesmo significado Cada “coisa” tem um significado diferente a depender do contexto onde se encontra e é manipulada. É assim na vida, é assim com sistemas...

12 O que tinhamos no momento
A situação O que tinhamos no momento S W Forças Sistema atendia a demanda Sistema era “estável” Fraqueza Qualquer problema afetava todo o sistema Sistema não era tão rápido T O Ameaças Crescimento de demanda Inclusão de novas funcionalidades Oportunidades Carta branca dos gestores para mudança de arquitetura e infraestrutura

13 Medir para dimensionar corretamente
Segunda lição aprendida aefses

14 Entendendo o que é importante
Como entender a aplicação pode levar a construção de serviços melhores < 10% dos usuários que navegam pelo site, entram no fluxo de compra Qualquer inconsistência no fluxo de pagamento gera muitos pedidos de suporte Pagamentos feitos com cartões de crédito e celulares eram críticos com relação a integração com catracas O “fluxo de pagamento” é o rei do nosso sistema, ele nunca pode parar!

15 Primeira vez na nuvem Microsoft Azure Escalar de forma programada
O Azure era a solução dos nossos problemas Escalar de forma programada Proteção para as tempestades . Microsoft Azure Estratégia de diferenciação dos concorrentes Economia de recursos

16

17 Azure Cloud Services Previsão de crescimento Escalável 100GB 80GB
A empresa passava por um momento decisivo e desempenhar bem na venda de grande eventos poderia ser a diferença entre continuar crescendo e ser apenas mais um no mercado Previsão de crescimento Escalável Esse foi o argumento definitivo para mudarmos a arquitetura do sistema. Ser escalável naquele momento significava continuar crescer 100GB 80GB Cloud Services

18 Foi surgindo uma nova ordem
Bilheterias remotas 4 Fila de Processamento Web 1 Catracas 5 Processador de fila de atendimento 2 API para serviços remotos e Pagamento 3 Banco de Dados

19 A nuvem não resolveu todos os problemas
Muitos outros problemas surgiram Quando a fila cresce o que fazer? A Fila Se já existiam problemas em um cenário monolítico, imagina em um cenário distribuído Release Algumas dores de cabeça ainda vinham das demandas dos clientes. Como relatórios “Real Time” Clientes Uma estratégia de cache ruim prejudica a capacidade do sistema de responder rapidamente Cadê o Cache? Serviços externos continuavam a consumir uma API localizada no servidor de pagamento. Serviços Ext.

20 Eventos promovidos pela plataforma
O que estava por vir Eventos promovidos pela plataforma

21 Turbulência a vista!!!

22 Azure salvando o dia! Momento nostalgia – Primeiro portal do Azure
Facilidades de um PaaS Momento nostalgia – Primeiro portal do Azure (feito em Silverlight)

23 Green – Blue Deployment
Quando achávamos que estava tudo pronto, era só virar a chave V1.1 V1.1 V1.0 V1.0

24 Pausa para o “fanboy” do Azure
In this slide there is a background placeholder. Click to the small icon on the center of the slide and choose an image from computer. When add an image, you must sent it to back with Right Click on Image -> Send to Back -> Send to Back. Unindo o Visual Studio Online e o Azure é possível criar um pipeline campeão CI & CD Possível dividir o trafego que chega ao seu site entre diversas publicações e medir os resultados Teste A/B Publique para parte de seus usuários e acompanhe os resultados Canary Release Vale a pena conhecer os recursos de PaaS do Azure

25 Múltiplos processadores
Mudando novamente Catracas * Fila de Processamento Bilheterias remotas * Web escalabilidade quase dinâmica APP BackOffice Múltiplos processadores APP Pagamento Cache Banco de Dados Mantenedor do cache invalida/atualiza

26 Aumentando o grau de maturidade
Múltiplas instâncias Web Múltiplos Workers para vazão da fila Permitindo suportar o trafego crescente, com possibilidade de escalar dinamicamente Para suportar esse cenário foi preciso fazer algumas modificações para que a operação de processamento da fila fosse idempotente e com isso eliminasse o risco de concorrência de recursos na fila Gerenciamento de Cache Separação de APIs Criação de worker responsável por gerir a estratégia de cache. Hidratação, invalidação e atualização. Divisão de responsabilidades e separação física de APIs e Aplicações

27 Se já estava difícil antes, imagina agora
As estratégias de release anteriores ajudaram, mas não solucionaram o problema Boa parte dos Releases ainda tinha problema Ter um ambiente de testes refletindo o ambiente de produção, não era o suficiente, pois não conseguíamos pegar todos os erros no processo de teste 40% Database Payment WEB . CDN Difícil planejar hora exata da Troca de versão Definitivamente não era uma intervenção cirúrgica Os usuários descobriam os problemas antes do time Rollback nem sempre era tão suave

28

29 Na verdade a gente não era tão esperto assim
Nem sabíamos o que era Canary Release Mais uma vez, fomos guiados pela intuição e pela vontade de resolver o problema A liberação de vazão e rollback eram manuais Front Controller Ficávamos de olho no painel monitorando quantidade de usuários de cada implantação e possíveis alertas de erro Medição da quantidade de requisições direcionadas para cada implantação e possibilidade de rollback caso algo saísse do controle

30 Porque ninguém aguenta mais e eu provavelmente já estourei o tempo
Finalizando... Porque ninguém aguenta mais e eu provavelmente já estourei o tempo Monitore – seja obsessivo Pense em escalabilidade em diversos níveis CPU, tamanho de filas, latencia, tempo de resposta, perfil de uso dos clientes, funil de venda. Monitore TUDO! Seja obsessivo com isso. Quando a carga é realmente imprevista, nem sempre se consegue dimensionar servidores a tempo. Colocar novas threads ou processos para fazer o trabalho em maquinas que já estão prontas pode salvar o seu dia. Escalabilidade dinâmica Capacidade ociosa ainda é preciso Faça de tudo para ter um sistema de escalabilidade eficiente. Essa pode ser a diferença entre boas noites de sono ou muitas xicaras de café. Não é porque a propaganda do seu celular fala que você pode usar ele na agua que você deve tomar banho todo dia com ele

31 Cloud depois do Hype Modele seu sistema desde o inicio
Lições para a vida Modele seu sistema desde o inicio para ser distribuído O mundo muda, e seu sistema tem que mudar para acompanhar Estude os pontos vitais do seu sistema e proteja eles Ninguém faz um bom sistema de primeira, sistemas são organismos evolutivos/adaptativos Pense na forma de publicação o mais cedo possível Desenvolver sistemas pensando em Cloud leva todas as disciplinas ao extremo – Arquitetura, DevOps, Performance... Por isso é tão excitante! Ainda é importante conhecer como as infraestruturas de Cloud funcionam. Não é porque sua empresa não tem limitação de recursos financeiros que você deve deixar de se preocupar com consumo e recursos.

32 Agradecimentos especiais
Danilo Delgado Camilo Telles Michel Borges

33 Entre em contato facebook.com/joao.bosco.t.seixas
Estou a disposição Contato pessoal facebook.com/joao.bosco.t.seixas twitter.com/joaoboscoseixas linkedin.com/in/joaoboscoseixas


Carregar ppt "Do 1º usuário a 10 mil requests/seg"

Apresentações semelhantes


Anúncios Google