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

Post on 25-Jul-2015

163 Views

Category:

Internet

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

São Paulo

Copa do Mundo no Brasil

Interagindo com os torcedores em tempo real

Agenda

• Motivação

• Jornada para a nuvem

• Aprendizado

• Métricas

Motivação

Segunda tela

Feito para atender a todos os programas da TV Globo

GloboApp.mp4

Jornada para a nuvem

Antes da AWS

TV Globo

CMS

Clients

Primeira publicação na AWS

CloudFront Amazon S3

TV Globo

CMS

Elastic IP Amazon EC2

Clients

Uma ferramenta para resolver tudo

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

Visão geral da arquitetura

WebServer

Worker

CloudFront Amazon S3

Route 53ClientsTV Globo

CMS

Broadcast

Web Server

WebServer

Social Networks

Elasti

Cache

Amazon

SQS

Amazon

RDS

RDS

Read Replica

CloudFront Amazon S3

TV Globo

CMS

WebApp AppServer

Route 53

Worker

Worker

Elasti

CacheAmazon

SQS

CloudFront Amazon S3

TV Globo

CMS

Ranking

Route 53DynamoDB

Answer

Broadcast

CloudFront Amazon S3

Route 53Clients TV Globo

CMS

Broadcast

Elasti

Cache

AWS Support

Gerenciamento de evento de infraestrutura (IEM)

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

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.

Aplicativo Globo

Aprendizado

Resiliência

• Arquitetura Multi-AZ

• Instâncias com disco local

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

processamento

Performance

• Testes de carga

• Réplicas de leitura

• Muito cache

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

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

Development process

TDD

&

BDD

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

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"]

}

Pense de forma simples

Métricas

Downloads do Aplicativo

0

100000

200000

300000

400000

500000

600000

700000

800000

900000

1000000

Maio Junho Julho

Estrelas no Google Play

1

2

4

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

Obrigado

top related