do 1º usuário a 10 mil requests/seg com o microsoft azure

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

Upload: esther-bernardes-sanches

Post on 07-Apr-2016

215 views

Category:

Documents


2 download

TRANSCRIPT

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

Do 1º usuário a

10 mil requests/segCom o Microsoft Azure

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

2

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!

O mundo real!Entre erros e acertos

Mundo real Nem tudo sai como o planejado

AprendizadoO que aprendi e como isso influenciou tudo que fiz depois…

Erros cometidosDurante a trajetória muitos erros são cometidos, o que importa é aprender com eles.

PráticasAlgumas boas práticas e outras não tão boas assim…

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

3

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

AgendaQuanto tempo vai durar esse sofrimento?

Quem é esse

maluco?

Lançamos o produto

Ficou lento, vai

cair!

Redesenhando

Nosso mundo

Medir e agir!

Microsoft Azure

salvando o dia!

Lições aprendid

asConstruindo estratégias

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

João Bosco SeixasProgramador, Empreendedor, Curioso e viciado em cafeína.

Tentando abandonar o vício da cafeína

Programador de sistemas web desde 2005. 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

Formado em computação e MBA em Gestão Empresarial pela FGV

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

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

5De 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.

SETORTodos os concorrentes na época tinham dificuldades com vendas de grandes eventos por conta do volume de acessos

REALIDADE

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

1ª Versão MonolíticaO objetivo era colocar a aplicação no ar – Afinal somos umas startup!

Compromisso com a entregaVou gerar valor, vou entregar software funcionando!

Eu faço rápido, sistemas rápidos!Fazer um sistema que ninguém usa ser rápido, é relativamente simples...

Respondendo as demandasTodo mundo fica feliz quando o software começa a funcionar e os primeiros clientes começam a comprar.

Lançamos!!Tudo começa quando o software vai ao ar! #SQN

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

7

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

ProduçãoAmbiente Local

Tudo era tão simplesEra só codificar e jogar no servidor

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”

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

8

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Catracas Geração de Ingressos

MobileNovas

funcionalidades

A arvore cresceuE eu achando que estava tudo sob controle

Logística

Custo de Servidor

aumentando

Manutenções

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

Dividir para ConquistarPrimeira lição aprendida

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

10

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

WebBackOffice

Pagamentos

Logística

Suporte

“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.

Percebendo nossos mundosAmadurecendo uma visão sobre micro serviços

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

11

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Eu já conhecia as responsabilidadesMas 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 significadoCada “coisa” tem um significado diferente a depender do contexto onde se encontra e é manipulada. É assim na vida, é assim com sistemas...

Errando ao separar contextosEfeitos colaterais por todos os lados

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

12

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

A situaçãoO que tinhamos no momento

S WO T

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

Oportunidades• Carta branca dos

gestores para mudança de arquitetura e infraestrutura

Ameaças• Crescimento de

demanda• Inclusão de novas

funcionalidades

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

Medir para dimensionar corretamenteSegunda lição aprendida

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

14

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Entendendo o que é importanteComo 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 geramuitos 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!

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

15

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Escalar de forma

programada

Estratégia de diferenciação

dos concorrentes

Economia de recursos

Proteção para as

tempestades.

Primeira vez na nuvem

Microsoft Azure

O Azure era a solução dos nossos problemas

Page 16: Do 1º usuário a 10 mil requests/seg Com o Microsoft Azure
Page 17: Do 1º usuário a 10 mil requests/seg Com o Microsoft Azure

17

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

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 crescimentoAzure

Cloud Services

EscalávelEsse foi o argumento definitivo para mudarmos a arquitetura do sistema. Ser escalável naquele momento significava continuar crescer

100GB 80GB

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

18

Web

1

API para serviços

remotos e Pagament

o

3

Bilheterias remotas

4

Banco de Dados

Fila de Processament

o

Catracas5

Processador de fila de atendiment

o

2

Foi surgindo uma nova ordem

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

19

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

A nuvem não resolveu todos os problemasMuitos outros problemas surgiram

Algumas dores de cabeça ainda vinham das demandas dos clientes. Como relatórios “Real Time”

ClientesQuando a fila cresce o que fazer?

A FilaUma 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.Se já existiam problemas em um cenário monolítico, imagina em um cenário distribuído

Release

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

20

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

O que estava por virEventos promovidos pela plataforma

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

21Turbulência a vista!!!

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

22

Momento nostalgia – Primeiro portal do Azure

(feito em Silverlight)

Azure salvando o dia!Facilidades de um PaaS

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

23

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

V1.1

Green – Blue DeploymentQuando achávamos que estava tudo pronto, era só virar a chave

V1.1

V1.0

V1.0

http://1e3ds31.cloudapp,net

http://meuapp.cloudapp,net

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

25

Webescalabilidade

quase dinâmica

APP Pagament

o

Bilheterias remotas

*

Banco de Dados

Fila de Processament

o

Catracas*

Múltiplos processador

es

Mudando novamente

Cache

APP BackOffic

e

Mantenedor do cache

invalida/atualiza

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

26

Permitindo suportar o trafego crescente, com possibilidade de escalar dinamicamente

Múltiplas instâncias Web 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

Múltiplos Workers para vazão da fila

Criação de worker responsável por gerir a estratégia de cache. Hidratação, invalidação e atualização.

Gerenciamento de Cache Divisão de

responsabilidades e separação física de APIs e Aplicações

Separação de APIs

Aumentando o grau de maturidade

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

27

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

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%

WEB.

DatabasePayment

CDNDifícil planejar hora exata da Troca de versão

Definitivamentenão era uma intervenção cirúrgica

Os usuários descobriam os problemas antesdo time

Rollback nem sempreera tão suave

Se já estava difícil antes, imagina agora As estratégias de release anteriores ajudaram, mas não solucionaram o

problema

Page 27: Do 1º usuário a 10 mil requests/seg Com o Microsoft Azure
Page 28: Do 1º usuário a 10 mil requests/seg Com o Microsoft Azure

29Na verdade a gente não era tão esperto assim

Mais uma vez, fomos guiados pela intuição e pela vontade de resolver o problema

Nem sabíamos o que era Canary Release

FrontController

Medição da quantidade de requisições direcionadas para cada implantação e possibilidade de rollback caso algo saísse do controle

Ficávamos de olho no painel monitorando quantidade de usuários de cada implantação e possíveis alertas de erro

A liberação de vazão e rollback eram manuais

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

30

CPU, tamanho de filas, latencia, tempo de resposta, perfil de uso dos clientes, funil de venda. Monitore TUDO! Seja obsessivo com isso.

Monitore – seja obsessivo 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.

Pense em escalabilidade em diversos níveis

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é.

Escalabilidade dinâmica 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

Capacidade ociosa ainda é preciso

Finalizando...Porque ninguém aguenta mais e eu provavelmente já estourei o tempo

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

31

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Cloud depois do HypeLições para a vida

Modele seu sistema desde o inicio para ser distribuído

Estude os pontos vitais do seu sistemae proteja eles

Pense na forma de publicação o maiscedo possível

O mundo muda, e seu sistema tem que mudarpara acompanhar

Ninguém faz um bom sistema de primeira, sistemas são organismos evolutivos/adaptativos

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.

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

32

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Agradecimentos especiais

Camilo Telles Michel Borges Danilo Delgado

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

33

www.companyname.com© 2015 Planner PowerPoint Template. All Rights Reserved.

Contato [email protected]

[email protected]

facebook.com/joao.bosco.t.seixastwitter.com/joaoboscoseixaslinkedin.com/in/joaoboscoseixas

Entre em contatoEstou a disposição