Essa semana encontrei uma excelente demonstração de desenvolvimento JAVA utilizando serviços Iaas(Infrastrutura como serviço) providos pela Amazon (EC2).

A Hazelcast criou uma plataforma de cluster Java baseada em Tomcat que trabalha com a solução Cloud Computing da Amazon, tendo assim a capacidade de utilizar pequenas máquinas e mais baratas para criação de um ambiente clusterizado e de alta-disponibilidade. A solução é peer-to-peer onde cada servidor é um peer, caso ocorra algum problema com um ou mais servidores, o cluster não sofrerá falhas mas perderá performance.

A configuração é muito simples, vejam os passos abaixo:

  • Download hazelcast-1.8.3.zip from www.hazelcast.com.
  • Unzip the file and move the monitoring war file into tomcat6/webapps directory.
  • Edit the test.sh under the bin directory:
    1. Add -Xmx1G -Xms1G
    2. Add -Dhazelcast.initial.wait.seconds=100 to make the cluster evenly partition on start so that migration can be avoided for better performance.
    3. Add t250 as an argument to the application to set thread count to 250. Remember the latency issue.
  • Run the Deployer from IDE.
  • Check from EC2 Management Console if 100 servers started.
  • Start tomcat.
  • Copy the public DNS name of one of the servers to connect to from monitoring tool.
  • Go to http://localhost:8080/hazelcast-monitor-1.8.3/ (Hazelcast Monitoring Tool). Paste the address and connect to the cluster.

O pessoal da Hazelcal colocou um excelente vídeo com a execução dos passos acimas.

Vejam que como pré-req, vc precisa ter um cartão de crédito internacional, para o aluguel dos serviços da Amazon e a configuração, básica, de servidores com Linux.

Vejam que a utilidade dessa aplicação é gigantesca, onde você pode começar o seu ambiente com um número determinado de máquinas e crescer e diminuir de acordo com a demanda, sem quedas no seu ambiente. Você remove ou adiciona máquinas sem precisar de um restart.