“Flexibilidade foi um dos fatores-chave do motivo de nossa escolha do Amazon EC2 para nosso servidor”, relembra Thomas Floracks, COO (Chief Operating Officer, ou Chefe de Operações) do Portal VivaReal. “Como uma start-up nós estávamos inseguros sobre o nosso equipamento de hardware e não tínhamos tempo ou recursos para fazer testes extensos ou simulações de escalabilidade. Portanto nós tivemos que seguir em frente e esperar que desse tudo certo. O Amazon nos deu a possibilidade de sermos totalmente flexíveis com os servidores utilizados e com as configurações de hardware.”
“O modelo de Utility Computing também foi muito atrativo. Não havia risco de comprar ou alugar servidores errados ou em excesso. Em outros serviços de hospedagem ou armazenamento convencionais, nos quais teríamos que acabar comprando ou alugando o hardware, qualquer troca ou upgrade teria sido muito cara.”
Floracks explica o modelo: “A infraestrutura do VivaReal se compõe de três camadas. Servidores de web, servidores de aplicativos e servidores de dados (backend). No total utilizamos dezesseis instâncias EC2 para manter a plataforma VivaReal. Cada portal (domínio) conta com uma instância própria que roda em Apache TomCat 6.x. Para os servidores web TomCat nós usamos uma instância média com capacidade de memória de 1.7 GB e dois processadores core de 2.5 GHZ. Os serviços adicionais de AWS nos permite escalonar dinamicamente o número de servidores de cada portal imobiliário dependendo da carga. CloudWatch, Auto Scaling and Elastic Load Balancing.
O CloudWatch nos permite monitorar o uso dos recursos de cada servidor web, assim como memória disponível, tempo da CPU e banda utilizada. Quando um servidor web tem um nível de carga alto e um dos recursos monitorados excede o limite crítico, o serviço de CloudWatch reporta ao balanceador de carga elástica, que por sua vez usa um serviço de autoescalonamento para replicar o servidor web e dividir a carga entre os dois TomCats. Já que o AWS somente cobra pelos recursos que realmente estão sendo utilizados isso nos permite reduzir custos, já que não temos que comprar hardware para os casos de maior carga. Quando é necessário a quantidade de servidores aumenta (durante o dia) e quando a necessidade diminui (de noite) os servidores adicionais se desligam e deixamos de pagar por eles. O uso do balanceador de carga elástica permite definir a quantidade máxima e mínima de servidores, além de prover um mecanismo básico para a comutação de erros. Se um servidor deixa de responder em uma das portas que está sendo monitorada pelo CloudWatch, o balanceador desliga a instância e a substitui com uma nova e funcional instância.”
Floracks acrescenta: “Outro serviço AWS que tem sido muito útil para a plataforma VivaReal é o Amazon SQS (Simple Query Service). O SQS provém uma fila FiFo (First-in-first-out ou primeiro-que-entra-primeiro-que-sai) para objetos em texto plano. O ciclo de vida de um objeto na fila é de quatro dias e seu tamanho máximo é de 8kb e isso provou ser bastante útil quando nossa aplicação requer um comportamento assíncrono. Um belo exemplo em nosso sistema é o processamento de feeds XML. Recebemos uma grande quantidade de imóveis neste formato, sendo que algumas vezes a quantidade supera dez mil em somente um arquivo XML. Nosso sistema começa o processamento dos feeds e escreve objetos na fila SQS. Estes objetos são lidos da fila e depois escritos em nossa base de dados de um modo que são controlados por um processo separado. Se escrevêssemos toda a informação diretamente na base de dados estaríamos nos arriscando a bloquear ou sobrecarregar o servidor. O processamento assíncrono com a ajuda do SQS nos permite armazenar a informação em fila e processá-la habilmente, dependendo da carga em nossos servidores de dados.”
O VivaReal também usa o Amazon CloudFront para entregar as fotos dos imóveis e baixar a carga de seus servidores web.
Além do mais, para hospedar seus portais no AWS, o VivaReal também acha útil simular e testar seus sistemas a todo momento. “Os testes convencionais de estresse podem ser muito caros quando se tem que alugar ou comprar os servidores necessários para fazer uma réplica 1:1 de um sistema de produção”, diz Floracks. “O Cloud Hosting oferece uma tremenda vantagem de custos sobre a hospedagem convencional. Muitas companhias não podem cobrir os custos de duplicar suas despesas com servidores, a fim de replicar um ambiente de teste e muitas vezes acabam usando um sistema mais enxuto para os testes, com todos os riscos que isso traz. Amazon Web Services, cloud hosting e utility computing fazem com que esse problema seja coisa do passado.”
O VivaReal está em 6 portais imobiliários concentrados em: Brasil, Colômbia, Estados Unidos e México. Para acessar o VivaReal Brasil vá a http://www.vivareal.com.br