Amazon S3

Um dos primeiros serviços de “computação nas nuvens” que eu irei avaliar é o S3 da Amazon, este é um serviço interessante pois ele provê uma forma de gravar dados via interface Web Service, e publicar via HTTP e Torrent a informação lá guardada.

Ele guarda informações em formato chave/valor e metadados customizáveis, dentro de uma especie de pasta que deve ter um nome único entre todos os usuários do serviço, chamado “Bucket”. O limite por chave é de 5 GB, nada mal para um Web Service.

Os dados podem ser guardados fisicamente em dois lugares distintos, um dos servidores se localiza nos EUA, e outro na Europa, para se gravar dados em um ou em outro deve-se mudar o endereço de acesso do servidor.

A Interface de acesso é bem documentada, e vários softwares já estão compatíveis com o serviço:

  • S3browse é um serviço via web que usa o S3 para simular um disco virtual online, é gratuito e bem fácil de usar.
  • Jets3t é um componente em Java para desenvolvedores que também vem com o Cockpit, uma especie de software de FTP muito amigável também
  • Cyberduck é um programa de FTP para Mac OS X que também suporta de forma transparente o serviço S3
  • JungleDisk na minha opnião é a mais profissional das ferramentas aqui citadas, ele implementa um drive virtual utilizando o FUSE como se fosse local, e também tem a opção de usar o serviço S3 para fazer backup da mesma forma que o Time Machine faz.

Os custos são relativamente baixos, custa 0.15 centavos de dolar por GB ocupado, e mais 0.10 centavos por GB enviado e 0.17 por GB baixado.

Minha ultima conta deu 1.26 dolares, com 3 GB’s ocupados em arquivos e uma boa quantidade de transferência.

Como todos os serviços novos ele ainda não é perfeito, as vezes há quedas bruscas nas conexões de download/upload, lentidão e latencias de rede. Mas a coisa tende a melhorar, a própria Amazon já prometeu verificar todos estes problemas e solucioná-los.

Maiores informações no próprio site: Amazon AWS

Computação nas nuvens

Este termo ainda desconhecido por muitos é o futuro da computação, ele prevê um mundo em que computadores como conhecemos hoje não serão nada mais do que interfaces de acesso, e toda a computação que precisaremos estará hospedada “nas nuvens”, ou seja, na rede, assim você não terá mais dados no seu computador, nem mesmo capacidade de processa-los, pedirá a rede que obtenha suas informações onde é que elas estejam, sendo que provavelmente nem você mesmo saberá, e as processe em algum “node” disponível para executar as tarefas necessárias.

Neste ambiente, empresas não mais necessitam de datacenters, tudo que fazem é alocar um “node” e enviar sua “imagem” com o sistema operacional e a aplicação a ser executada. Além disto ainda existem serviços “nas nuvens” como bancos de dados, discos virtuais, publicadores de conteúdo multimidia como som e video, sistemas de live streamming e tudo que for necessário para atender a demandas escaláveis.

A grande chave deste conceito está na disponibilidade e escalabilidade da arquitetura computacional, pois um dos desafios da tecnologia da informação nos dias de hoje é desenvolver um sistema que sirva para uma pessoa tanto quanto para milhões.

Neste ambiente todo o conceito de desenvolvimento de software que temos hoje não serve mais, pois a teoria da computação defende a execução de tarefas em forma linear, sendo processadas uma depois da outra. Mesmo a tecnologia de multiplos núcleos com threads defende basicamente a mesma idéia, porém dividindo com varios “executores” de tarefas sequenciais.

Em um sistema desenvolvido para rodar “nas nuvens”, as tarefas devem ser tratadas em forma paralela, onde sempre que se dispor de mais recursos de processamento, este seja utilizado para diminuir o trabalho de todos os outros nodes da rede. É um conceito extremamente complexo e atualmente não existem plataformas e frameworks faceis de se desenvolver que implementem este tipo de funcionalidade, acessível para qualquer programador.

Nos próximos posts eu vou avaliar alguns serviços já disponíveis começando pelo Amazon AWS.

Referências:
Cloud versus cloud: A guided tour of Amazon, Google, AppNexus, and GoGrid