Copa do mundo no brasil interagindo com os torcedores em tempo real

32
São Paulo

Transcript of Copa do mundo no brasil interagindo com os torcedores em tempo real

Page 1: Copa do mundo no brasil   interagindo com os torcedores em tempo real

São Paulo

Page 2: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Copa do Mundo no Brasil

Interagindo com os torcedores em tempo real

Page 3: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Agenda

• Motivação

• Jornada para a nuvem

• Aprendizado

• Métricas

Page 4: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Motivação

Page 5: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Segunda tela

Feito para atender a todos os programas da TV Globo

Page 6: Copa do mundo no brasil   interagindo com os torcedores em tempo real

GloboApp.mp4

Page 7: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Jornada para a nuvem

Page 8: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Antes da AWS

TV Globo

CMS

Clients

Page 9: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Primeira publicação na AWS

CloudFront Amazon S3

TV Globo

CMS

Elastic IP Amazon EC2

Clients

Page 10: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Uma ferramenta para resolver tudo

Page 11: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Serviços utilizados

AWS

CloudFormationCloudWatch IAM Amazon SNS Amazon SQS Amazon S3 CloudFront

Amazon Redshift Amazon RDS ElastiCache DynamoDB

RDS DB

instance read

replica

Amazon

Route 53

Elastic Load

BalancingAMI Elastic IP Amazon EC2 Amazon EMR Amazon VPC Auto Scaling

Page 12: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Visão geral da arquitetura

WebServer

Worker

CloudFront Amazon S3

Route 53ClientsTV Globo

CMS

Broadcast

Page 13: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Web Server

WebServer

Social Networks

Elasti

Cache

Amazon

SQS

Amazon

RDS

RDS

Read Replica

CloudFront Amazon S3

TV Globo

CMS

WebApp AppServer

Route 53

Page 14: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Worker

Worker

Elasti

CacheAmazon

SQS

CloudFront Amazon S3

TV Globo

CMS

Ranking

Route 53DynamoDB

Answer

Page 15: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Broadcast

CloudFront Amazon S3

Route 53Clients TV Globo

CMS

Broadcast

Elasti

Cache

Page 16: Copa do mundo no brasil   interagindo com os torcedores em tempo real

AWS Support

Gerenciamento de evento de infraestrutura (IEM)

Auxílio no teste de cargae otimização da performance do aplicativo

Page 17: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Gerenciamento de evento de infraestrutura (IEM)

• Eu tenho um lançamento global que vai acontecer e não tenho ideia de que tipo de capacidade vou precisar.

• Nossa empresa tem picos de acesso durante o ano e não precisamos de muitos recursos para operar, mas quando precisamos….

• Minha empresa é especialista em trazer tráfegopara o nosso site, não somos especialistas emgerenciamento de infraestrutura. Quando mandoos acessos eu confio em vocês para garantir quea infraestrutura está lá.

• Nós vamos fazer uma grande migração, falhar não é uma opção.

Page 18: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Aplicativo Globo

Page 19: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Aprendizado

Page 20: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Resiliência

• Arquitetura Multi-AZ

• Instâncias com disco local

• Famílias variadas de instância para cada tipo de

processamento

Page 21: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Performance

• Testes de carga

• Réplicas de leitura

• Muito cache

Page 22: Copa do mundo no brasil   interagindo com os torcedores em tempo real
Page 23: Copa do mundo no brasil   interagindo com os torcedores em tempo real

NGINX Cache

1. proxy_cache_path /dir/cache levels=1:2 keys_zone=cachename:5m;

2. location ~ /path/.*/file.json {

3. ...

4. proxy_cache cachename;

5. proxy_cache_valid 200 302 24h;

6. proxy_cache_key $proxy_host$uri;

7. ...

8. }

Page 24: Copa do mundo no brasil   interagindo com os torcedores em tempo real

1. local user_timestamp = ngx.var["arg_timestamp”]

2. local timestamp = string.match(ngx.arg[1], "_timestamp.:.?(%d+)”)

3. if timestamp ~= nil and user_timestamp ~= nil then

4. if tonumber(timestamp) <= tonumber(user_timestamp) then

5. ngx.arg[1] = "{}”

6. ngx.arg[2] = true

7. return

8. end

9. end

Page 25: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Development process

TDD

&

BDD

Page 26: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Cloudformation

• Infraestrutura como Código

• Integra com controle de versão

• JSON

• Templates

• Suporta todos os tipos de recursos da AWS

• Publicação blue/green

Page 27: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Cloudformation

"WebServerGroup" : {

"Type" : "AWS::AutoScaling::AutoScalingGroup",

"Properties" : {

"AvailabilityZones" : { "Fn::GetAZs" : ""},

"LaunchConfigurationName" : { "Ref" : "LaunchConfig" },

"MinSize" : "1",

"MaxSize" : "3",

"LoadBalancerNames" : [ { "Ref" : "ElasticLoadBalancer" } ],

"NotificationConfiguration" : {

"TopicARN" : { "Ref" : "NotificationTopic" },

"NotificationTypes" : [ "autoscaling:EC2_INSTANCE_LAUNCH",

"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",

"autoscaling:EC2_INSTANCE_TERMINATE",

"autoscaling:EC2_INSTANCE_TERMINATE_ERROR"]

}

Page 28: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Pense de forma simples

Page 29: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Métricas

Page 30: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Downloads do Aplicativo

0

100000

200000

300000

400000

500000

600000

700000

800000

900000

1000000

Maio Junho Julho

Page 31: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Estrelas no Google Play

1

2

4

Maio Início da Copa Fases Eliminatórias Fim da Copa

Page 32: Copa do mundo no brasil   interagindo com os torcedores em tempo real

Obrigado