SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Testes de Escalabilidade
         usando Cloud
Como utilizamos um serviço de cloud para validar nossas estimativas de
 escalabilidade. Rodando o sistema inteiro, mais clientes de teste, num
                      cloud a baixíssimo custo.

                             Daniel Sperry
                           Lead Programmer
                          daniel@hoplon.com
Disclaimer


    Essa é uma história de várias pessoas, o
   palestrante é apenas um dos envolvidos nos
     eventos descritos, o leader programmer
        durante a execução desses testes.
Taikodom
MMO de Ação Espacial
  Players são pilotos de espaçonave lutando para
  conquistar o espaço

Versão 2.0:
  Em Barnard, um sistema remoto, um buraco negro
  artificial explodiu.
  O jogador deve escolher uma facção:
       ■ Consórcio: Uma missão de ajuda "humanitária"
           enviada pelo sistema solar.
       ■ Renegados: lutam contra a "tirania" dos
           consorciados.
Histórico

2005 - Desenvolvimento do Taikodom iniciado: python, c++ e java.
2005 - Versão inicial aberta a testes.
2006 - Protótipo em java e c++
2007 - Convertido para java, beta 1.0
2008 - Lançamento nacional do 1.0, 100% java.
2009 - Nova definição de produto.
2009 - Acordo de publicação internacional para versão 2.0 (Gamersfirst)
2009 - Início da codificação da versão 2.0
2010 - Closed beta iniciado.
2011 - Open beta.
2012 - Lançado no Brasil. Closed beta nos EUA.
Taikodom 1.0 - escalabilidade
● Taikodom 1.0 não usava database convencional. Utilizava
  servidor transacional in memory desenvolvido in house.
● Testes de performance indicavam que poderia fazer mais
  de 100K Transações por segundo.
● Na vida real, depois de 2 semanas, e com algumas
  centenas de CCU, o servidor parava regularmente durante
  dezenas de segundos em função do garbage collection.
● Os jogadores chamaram a reação percebida por eles no
  cliente de jogo de LAG.
● Os problemas foram resolvidos mas o estrago de imagem
  já estava feito.
Taikodom 2.0
Arquitetura mais tradicional:
● engine comercial
● database
● webservices
Estragégia para escalabilidade
Estratégia de escalabilidade:
● evitar ponto único de falha/gargalo escrito in
  house.
● calcanhar de aquiles: database
● projetado para cada shard suportar até 10k
  CCU.
● stored procedures devem demorar menos de
  5ms (evitamos LINQ to SQL).
Arquitetura
Testes de escala inhouse
● Começamos com testes internos usando
  bots.
● De noite ligávamos as máquinas do Studio e
  executávamos os bots nelas, processo semi
  manual.
● Resultados:
  ○ algumas centenas de CCU.
  ○ eliminação de bugs e de gargalos.
  ○ chegamos no limite que um teste manual poderia
    gerar.
Escolha de um serviço
● Na época avaliamos seriamente
  ○ amazon EC2
  ○ GoGrid
  ○ rackspace



● Critérios de escolha:
  ○ elasticidade
  ○ custo, especialmente das máquinas highend
  ○ familiaridade/facilidade de uso
Estimativas iniciais
Configuração dos testes

Go grid


      Bot Machine           Sim Machine        Proxy Machine
       Bot Machine            Sim Machine        Proxy Machine     DB Machine
          Bot Machine           Sim Machine        Proxy Machine
                                                                       MS
                                                                    SqlServer
          Bot Process         Bot Process         Bot Process
            Bot Process         Bot Process         Bot Process
                                                                   WebServices
              Bot Process          Simulator             Proxy
Quantidade de testes e custos
Períodos dos testes
● 2010/outubro
● 2010/dezembro
● 2011/março à maio
● 2011/dezembro

Custo total de utilização: < US$ 8.000
Duração média dos testes: 1h20
Tempo médio de setup dos testes: 4h
Número de total de testes: ~40
Resultados
Resultados dos testes

● Identificamos/corrigimos bugs de
  networking
● Identificamos as stored procedures mais
  caras.
● Identificamos problemas de deadlocks na
  database
● Atingimos a meta interna de 5K CCU por
  shard
Minimizando custos

● Persistir imagem das máquinas bases
● Fechar a torneira ao terminar os testes
● Planos pré-pago do GoGrid
Cloud - Desafios
●   Tempo de upload dos servidores
●   Requisição de mais IPs
●   Tempo de criação de cada instância
●   Escolha dos tamanhos certos das instâncias.
●   Fechar a "torneira" ao sair
●   Tempo total do teste: na melhor das
    hipóteses 1 tarde inteira.
Contato
Daniel Sperry
 ● Taikodom Lead Programmer
 ● daniel@hoplon.com
 ● http://br.linkedin.com/in/dsperry

Estamos contratando!
 ● game designers
 ● programadores
 ● artistas
 ● produtores

Envie seu currículo para: rh@hoplon.com
Contato
Daniel Sperry
 ● Taikodom Lead Programmer
 ● daniel@hoplon.com
 ● http://br.linkedin.com/in/dsperry

Estamos contratando!
 ● game designers
 ● programadores
 ● artistas
 ● produtores

Envie seu currículo para: rh@hoplon.com

Weitere ähnliche Inhalte

Was ist angesagt?

Estendendo o kubernetes
Estendendo o kubernetesEstendendo o kubernetes
Estendendo o kubernetesRicardo Katz
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo realAmazon Web Services LATAM
 
JVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyJVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyGleydson Lima
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
 
Docker + Kubernetes (devOps)
Docker + Kubernetes (devOps)Docker + Kubernetes (devOps)
Docker + Kubernetes (devOps)Andre Straube
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhatdc-globalcode
 
Docker | Meetspark - #2
Docker | Meetspark - #2Docker | Meetspark - #2
Docker | Meetspark - #2Lucas Martins
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machineBruno Coan
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?tdc-globalcode
 
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidorNode VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidortdc-globalcode
 
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidorNode VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidorEvandro Eisinger
 
Princípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémPrincípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémLocaweb
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...tdc-globalcode
 

Was ist angesagt? (18)

Estendendo o kubernetes
Estendendo o kubernetesEstendendo o kubernetes
Estendendo o kubernetes
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo real
 
JVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyJVM and Tools - ESIG Academy
JVM and Tools - ESIG Academy
 
Node slide
Node slideNode slide
Node slide
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Docker + Kubernetes (devOps)
Docker + Kubernetes (devOps)Docker + Kubernetes (devOps)
Docker + Kubernetes (devOps)
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unha
 
Docker | Meetspark - #2
Docker | Meetspark - #2Docker | Meetspark - #2
Docker | Meetspark - #2
 
Imergindo na JVM
Imergindo na JVMImergindo na JVM
Imergindo na JVM
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machine
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
 
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidorNode VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
 
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidorNode VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
 
Princípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémPrincípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e Além
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Apt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queirozApt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queiroz
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...
TDC2018SP | Trilha UX - Live Coding na Arquitetura Mais Produtiva Que Encontr...
 

Andere mochten auch

Alta disponibilidade e redundancia
Alta disponibilidade e redundanciaAlta disponibilidade e redundancia
Alta disponibilidade e redundanciaLicínio Rocha
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
 
Com a cabeça nas nuvens: montando ambientes para aplicações elásticas
 Com a cabeça nas nuvens: montando ambientes para aplicações elásticas Com a cabeça nas nuvens: montando ambientes para aplicações elásticas
Com a cabeça nas nuvens: montando ambientes para aplicações elásticasPET Computação
 
Teste combinatório de software
Teste combinatório de softwareTeste combinatório de software
Teste combinatório de softwarePET Computação
 
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para CloudPaulo Miguel Almeida
 
Escalabilidade de Aplicações Web
Escalabilidade de Aplicações WebEscalabilidade de Aplicações Web
Escalabilidade de Aplicações WebRenato Lucindo
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidadeMarcelo Garcia
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 
Escalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebEscalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebRenato Lucindo
 
Apresentação geral do gqs - Usabilidade na convergência digital - Customizaç...
Apresentação geral do gqs -  Usabilidade na convergência digital - Customizaç...Apresentação geral do gqs -  Usabilidade na convergência digital - Customizaç...
Apresentação geral do gqs - Usabilidade na convergência digital - Customizaç...PET Computação
 
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações WebRecursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações WebRégis Eduardo Weizenmann Gregol
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlex Camargo
 
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...Amazon Web Services LATAM
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLMySQL Brasil
 

Andere mochten auch (17)

Alta disponibilidade e redundancia
Alta disponibilidade e redundanciaAlta disponibilidade e redundancia
Alta disponibilidade e redundancia
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
Com a cabeça nas nuvens: montando ambientes para aplicações elásticas
 Com a cabeça nas nuvens: montando ambientes para aplicações elásticas Com a cabeça nas nuvens: montando ambientes para aplicações elásticas
Com a cabeça nas nuvens: montando ambientes para aplicações elásticas
 
Ensinar com jogos
Ensinar com jogosEnsinar com jogos
Ensinar com jogos
 
Teste combinatório de software
Teste combinatório de softwareTeste combinatório de software
Teste combinatório de software
 
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud
[Palestra] - Arquitetura de Sistemas de Alta Disponibilidade para Cloud
 
Escalabilidade de Aplicações Web
Escalabilidade de Aplicações WebEscalabilidade de Aplicações Web
Escalabilidade de Aplicações Web
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidade
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
Escalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebEscalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas Web
 
Apresentação geral do gqs - Usabilidade na convergência digital - Customizaç...
Apresentação geral do gqs -  Usabilidade na convergência digital - Customizaç...Apresentação geral do gqs -  Usabilidade na convergência digital - Customizaç...
Apresentação geral do gqs - Usabilidade na convergência digital - Customizaç...
 
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações WebRecursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
 
Refactoring like a boss
Refactoring like a bossRefactoring like a boss
Refactoring like a boss
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
 
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...
Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhõe...
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
 

Ähnlich wie Testes de escalabilidade usando cloud

Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Giovanni Bassi
 
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannMonitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannTchelinux
 
Monitoramento rede
Monitoramento redeMonitoramento rede
Monitoramento redeAndré Déo
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Mozart Diniz
 
QCon 2011
QCon 2011QCon 2011
QCon 2011Ismael
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVTapsegundo
 
Java alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisJava alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisLeonardo Simberg
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
Planejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasRodrigo Campos
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital PreservationRoberto Beraldo Chaiben
 
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...André Dias
 

Ähnlich wie Testes de escalabilidade usando cloud (20)

Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannMonitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
 
Monitoramento rede
Monitoramento redeMonitoramento rede
Monitoramento rede
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
QCon 2011
QCon 2011QCon 2011
QCon 2011
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 
Java alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisJava alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionais
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Planejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e Ferramentas
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
 

Mehr von PET Computação

Cooperação e Codificação de Rede Aplicadas as RSSF Industriais
Cooperação e Codificação de Rede Aplicadas as RSSF IndustriaisCooperação e Codificação de Rede Aplicadas as RSSF Industriais
Cooperação e Codificação de Rede Aplicadas as RSSF IndustriaisPET Computação
 
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoRedes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoPET Computação
 
MapReduce: teoria e prática
MapReduce: teoria e práticaMapReduce: teoria e prática
MapReduce: teoria e práticaPET Computação
 
Processamento e visualização tridimensional de imagens de Satelite e Radar
Processamento e visualização tridimensional de imagens de Satelite e RadarProcessamento e visualização tridimensional de imagens de Satelite e Radar
Processamento e visualização tridimensional de imagens de Satelite e RadarPET Computação
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
 
Bancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralBancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralPET Computação
 
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...PET Computação
 
Cloud computing: evolution or redefinition
Cloud computing: evolution or redefinitionCloud computing: evolution or redefinition
Cloud computing: evolution or redefinitionPET Computação
 
Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar dronePET Computação
 
Processamento e visualização tridimensional de imagens de satelite e radar
Processamento e visualização tridimensional de imagens de satelite e radarProcessamento e visualização tridimensional de imagens de satelite e radar
Processamento e visualização tridimensional de imagens de satelite e radarPET Computação
 
Evoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokEvoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokPET Computação
 
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafiosPET Computação
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyPET Computação
 
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...PET Computação
 
Métodos formais aplicados a segurança da informação
Métodos formais aplicados a segurança da informaçãoMétodos formais aplicados a segurança da informação
Métodos formais aplicados a segurança da informaçãoPET Computação
 

Mehr von PET Computação (20)

Linux em tempo real
Linux em tempo realLinux em tempo real
Linux em tempo real
 
Cooperação e Codificação de Rede Aplicadas as RSSF Industriais
Cooperação e Codificação de Rede Aplicadas as RSSF IndustriaisCooperação e Codificação de Rede Aplicadas as RSSF Industriais
Cooperação e Codificação de Rede Aplicadas as RSSF Industriais
 
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoRedes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
 
MapReduce: teoria e prática
MapReduce: teoria e práticaMapReduce: teoria e prática
MapReduce: teoria e prática
 
Processamento e visualização tridimensional de imagens de Satelite e Radar
Processamento e visualização tridimensional de imagens de Satelite e RadarProcessamento e visualização tridimensional de imagens de Satelite e Radar
Processamento e visualização tridimensional de imagens de Satelite e Radar
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
 
Planejamento automático
Planejamento automáticoPlanejamento automático
Planejamento automático
 
Bancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralBancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geral
 
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...
 
Cloud computing: evolution or redefinition
Cloud computing: evolution or redefinitionCloud computing: evolution or redefinition
Cloud computing: evolution or redefinition
 
Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar drone
 
Processamento e visualização tridimensional de imagens de satelite e radar
Processamento e visualização tridimensional de imagens de satelite e radarProcessamento e visualização tridimensional de imagens de satelite e radar
Processamento e visualização tridimensional de imagens de satelite e radar
 
Evoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokEvoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbok
 
Latex
LatexLatex
Latex
 
Ferramenta git
Ferramenta gitFerramenta git
Ferramenta git
 
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 
1+1=0
1+1=01+1=0
1+1=0
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the ugly
 
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...
Identificando seu estilo pessoal de aprendizagem através da aplicação de dois...
 
Métodos formais aplicados a segurança da informação
Métodos formais aplicados a segurança da informaçãoMétodos formais aplicados a segurança da informação
Métodos formais aplicados a segurança da informação
 

Kürzlich hochgeladen

Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 

Kürzlich hochgeladen (20)

Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 

Testes de escalabilidade usando cloud

  • 1. Testes de Escalabilidade usando Cloud Como utilizamos um serviço de cloud para validar nossas estimativas de escalabilidade. Rodando o sistema inteiro, mais clientes de teste, num cloud a baixíssimo custo. Daniel Sperry Lead Programmer daniel@hoplon.com
  • 2. Disclaimer Essa é uma história de várias pessoas, o palestrante é apenas um dos envolvidos nos eventos descritos, o leader programmer durante a execução desses testes.
  • 3. Taikodom MMO de Ação Espacial Players são pilotos de espaçonave lutando para conquistar o espaço Versão 2.0: Em Barnard, um sistema remoto, um buraco negro artificial explodiu. O jogador deve escolher uma facção: ■ Consórcio: Uma missão de ajuda "humanitária" enviada pelo sistema solar. ■ Renegados: lutam contra a "tirania" dos consorciados.
  • 4. Histórico 2005 - Desenvolvimento do Taikodom iniciado: python, c++ e java. 2005 - Versão inicial aberta a testes. 2006 - Protótipo em java e c++ 2007 - Convertido para java, beta 1.0 2008 - Lançamento nacional do 1.0, 100% java. 2009 - Nova definição de produto. 2009 - Acordo de publicação internacional para versão 2.0 (Gamersfirst) 2009 - Início da codificação da versão 2.0 2010 - Closed beta iniciado. 2011 - Open beta. 2012 - Lançado no Brasil. Closed beta nos EUA.
  • 5. Taikodom 1.0 - escalabilidade ● Taikodom 1.0 não usava database convencional. Utilizava servidor transacional in memory desenvolvido in house. ● Testes de performance indicavam que poderia fazer mais de 100K Transações por segundo. ● Na vida real, depois de 2 semanas, e com algumas centenas de CCU, o servidor parava regularmente durante dezenas de segundos em função do garbage collection. ● Os jogadores chamaram a reação percebida por eles no cliente de jogo de LAG. ● Os problemas foram resolvidos mas o estrago de imagem já estava feito.
  • 6. Taikodom 2.0 Arquitetura mais tradicional: ● engine comercial ● database ● webservices
  • 7. Estragégia para escalabilidade Estratégia de escalabilidade: ● evitar ponto único de falha/gargalo escrito in house. ● calcanhar de aquiles: database ● projetado para cada shard suportar até 10k CCU. ● stored procedures devem demorar menos de 5ms (evitamos LINQ to SQL).
  • 9. Testes de escala inhouse ● Começamos com testes internos usando bots. ● De noite ligávamos as máquinas do Studio e executávamos os bots nelas, processo semi manual. ● Resultados: ○ algumas centenas de CCU. ○ eliminação de bugs e de gargalos. ○ chegamos no limite que um teste manual poderia gerar.
  • 10. Escolha de um serviço ● Na época avaliamos seriamente ○ amazon EC2 ○ GoGrid ○ rackspace ● Critérios de escolha: ○ elasticidade ○ custo, especialmente das máquinas highend ○ familiaridade/facilidade de uso
  • 12. Configuração dos testes Go grid Bot Machine Sim Machine Proxy Machine Bot Machine Sim Machine Proxy Machine DB Machine Bot Machine Sim Machine Proxy Machine MS SqlServer Bot Process Bot Process Bot Process Bot Process Bot Process Bot Process WebServices Bot Process Simulator Proxy
  • 13. Quantidade de testes e custos Períodos dos testes ● 2010/outubro ● 2010/dezembro ● 2011/março à maio ● 2011/dezembro Custo total de utilização: < US$ 8.000 Duração média dos testes: 1h20 Tempo médio de setup dos testes: 4h Número de total de testes: ~40
  • 15. Resultados dos testes ● Identificamos/corrigimos bugs de networking ● Identificamos as stored procedures mais caras. ● Identificamos problemas de deadlocks na database ● Atingimos a meta interna de 5K CCU por shard
  • 16. Minimizando custos ● Persistir imagem das máquinas bases ● Fechar a torneira ao terminar os testes ● Planos pré-pago do GoGrid
  • 17. Cloud - Desafios ● Tempo de upload dos servidores ● Requisição de mais IPs ● Tempo de criação de cada instância ● Escolha dos tamanhos certos das instâncias. ● Fechar a "torneira" ao sair ● Tempo total do teste: na melhor das hipóteses 1 tarde inteira.
  • 18. Contato Daniel Sperry ● Taikodom Lead Programmer ● daniel@hoplon.com ● http://br.linkedin.com/in/dsperry Estamos contratando! ● game designers ● programadores ● artistas ● produtores Envie seu currículo para: rh@hoplon.com
  • 19. Contato Daniel Sperry ● Taikodom Lead Programmer ● daniel@hoplon.com ● http://br.linkedin.com/in/dsperry Estamos contratando! ● game designers ● programadores ● artistas ● produtores Envie seu currículo para: rh@hoplon.com