Plataforma Nuvem

Aplicativos baseados na Internet

Posts Tagged ‘desenvolvimento

Usando a nuvem para testar aplicativos

leave a comment »

Existem vários serviços na nuvem para apoiar o desenvolvimento de aplicativos. Um exemplo são os serviços que testam o funcionamento de um aplicativo web em diferentes combinações de dispositivos, sistemas operacionais, browsers, resoluções, plugins e configurações.

StatCounter-browser-ww-monthly-200807-201108

Estes serviços se aproveitam dos ganhos de escala da nuvem, que ocorrem quando um provedor de serviços que mantém um conjunto de recursos e fornece o uso compartilhado destes recursos como serviço. Neste caso específico, em lugar de manter uma coleção de máquinas físicas ou virtuais com diferentes combinações de sistema operacional e browser, e testar manualmente o website ou aplicativo em cada uma destas combinações, o cliente comanda um teste distribuído e recebe os resultados.

Um destes serviços é o Browsershots. Ele oferece dezenas de browsers em diferentes versões de Linux e Windows.

browsershots1

Um teste gratuito leva em torno de 1 hora e retorna quase 60 imagens da página nos mais diversos tipos e versões de browsers. Existe uma opção paga, com processamento prioritário.

browsershots2

Um serviço mais sofisticado é o CrossBrowserTesting.

crossbrowsertesting1

Ele possibilita teste em uma grande quantidade de dispositivos móveis, PCs, Macs, rodando os principais browsers, e com inúmeros plugins.

crossbrowsertesting2

Um grande diferencial deste serviço é que ele não apenas apresenta imagens estáticas das telas: ele permite abrir uma sessão interativa em um sistema operacional e browser específico. Isto possibilita uma grande agilidade no teste e na depuração de problemas.

crossbrowsertesting3

Desenvolver aplicativos para nuvem é um esforço complexo. Serviços na nuvem como os descritos aqui ajudam a lidar com esta complexidade dentro de um custo e prazo aceitáveis.

Anúncios

Written by Fernando Correia

14/ago/2011 at 17:20

Publicado em Geral

Tagged with , , ,

Trabalhando no mesmo projeto em várias máquinas

leave a comment »

Hoje em dia está cada vez mais comum uma pessoa utilizar vários computadores diferentes em um mesmo dia. Por exemplo, um desktop no escritório, um notebook em viagens e outro desktop em casa.

Mesmo para quem resolve simplificar a vida e adotar um notebook como solução única, ainda resta uma questão importante, que é manter em um lugar seguro um backup atualizado e versionado dos seus documentos e projetos.

Uma solução interessante que atende a estes cenários é utilizar um sistema de controle de versão distribuído em conjunto com um serviço de backup online. Duas ferramentas que se destacam nestas tarefas são o git (para controle de versão) e o Dropbox (para backup online). As duas juntas são mais um caso em que o todo é maior do que a soma das partes.

A arquitetura básica é a seguinte:

O Dropbox mantém nos servidores deles um espaço particular para você, com os seus arquivos. Neste espaço, você cria um diretório que é um repositório do git, contendo uma cópia versionada dos arquivos do seu projeto. Em cada computador, você conecta ao Dropbox, que vai manter a sincronização automaticamente. Além disso, em cada computador você terá uma área de trabalho local, fora deste espaço sincronizado.

Você trabalha localmente, no sistema de arquivos do seu próprio computador. Quando chega a um ponto em que deseja salvar uma versão do seu trabalho, você simplesmente faz um “commit” (um salvamento) no git e o publica para o repositório git que está dentro da área compartilhada do Dropbox. Por sua vez, o próprio Dropbox irá fazer automaticamente um backup online deste repositório. Quando você for para outro de seus computadores, logo ao ligar, o Dropbox irá automaticamente atualizar este computador a partir do backup central. Portanto, o seu repositório git também será atualizado a partir desta cópia central. Depois, basta atualizar a sua área de trabalho local do git, e ela estará no mesmo ponto em que você salvou no outro computador.

Parece complicado demais para um problema simples? Por exemplo, porque não trabalhar diretamente no diretório que é sincronizado pelo Dropbox, ou por algum serviço semelhante, como o Live Mesh? Você pode fazer isso, mas o modelo git + Dropbox traz vantagens interessantes:

  • Velocidade: Você trabalha em um diretório fora da sincronização online. Portanto não haverá uma sincronização a cada vez que você salvar ou alterar um arquivo, mas somente quando você resolver salvar uma nova versão do repositório inteiro. Isto acelera o trabalho e diminui o tráfego de internet.
  • Integridade: Se você, por exemplo, fechar o notebook, ou perder a conexão WiFi, antes de o Dropbox sincronizar todos os arquivos, o seu repositório ficaria inconsistente, com alguns dos arquivos modificados já sincronizados, e outros em versão antiga. O git garante a integridade: ou o conjunto de atualizações estará disponível, ou o repositório inteiro estará na versão anterior.
  • Versionamento: O Dropbox permite recuperar versões anteriores dos arquivos, mas o git traz recursos de versionamento de primeira linha, muito superiores ao que você teria sem ele.
  • Repositórios distribuídos: O git foi feito para o cenário de trabalho distribuído, não apenas com uma pessoa utilizando vários computadores, mas também com várias pessoas trabalhando colaborativamente em um mesmo projeto, utilizando os recursos de versionamento sem necessitar de conexão permanente a um repositório central.
  • Multi-plataforma: Tanto o git quanto o Dropbox funcionam nas principais plataformas utilizadas atualmente: Windows, Mac e Linux.

Interessado em experimentar? Em primeiro lugar, instale o Dropbox e crie uma conta. O serviço gratuito oferece 2 GB de espaço e se você utilizar o meu link de referência, nós dois ganhamos 250 MB adicionais.

Em segundo lugar, instale o git. Em cada plataforma, a instalação vai ser diferente. Se você estiver no Windows, instale o Git e o TortoiseGit. No Ubuntu, use o aptitude. Em último caso, faça o download.

O git é uma ferramenta poderosa, mas tem uma curva de aprendizado razoável. A página de documentação pode ser um bom lugar para começar a aprender. Aqui eu vou mostrar alguns comandos básicos para trabalhar neste cenário. Vou utilizar como referência a linha de comando do sistema operacional Ubuntu, mas os conceitos podem ser aplicados nas outras plataformas.

Criar o repositório git dentro do Dropbox

cd ~/Dropbox
mkdir git
cd git
mkdir projeto.git
cd projeto.git
git init --bare

Converter um diretório já existente em um repositório local do git

cd ~/Projetos/projeto
git init
git add .
git commit -m "Versao inicial"
git remote add origin ~/Dropbox/git/projeto.git
git push origin master

Salvar alterações feitas localmente

git add .
git commit -m "Versao modificada"
git push origin master

Criar o repositório local em outra máquina

Em um computador sincronizado com o Dropbox, mas sem o diretório local de trabalho:

cd ~/Projetos
git clone -o projeto ~/Dropbox/git/projeto.git
cd projeto
git remote add origin ~/Dropbox/git/projeto.git

Atualizando o repositório local em outra máquina

Para atualizar o diretório de trabalho a partir do repositório central sincronizado pelo Dropbox:

cd ~/Projetos/projeto
git pull origin master

No final, usando o Dropbox para fazer backup online de forma transparente e manter seus computadores sincronizados, e o git para versionar seus projetos e facilitar o trabalho distribuído, você pode ter uma solução gratuita e muito poderosa para manter seus arquivos seguros e acessíveis.

Written by Fernando Correia

20/maio/2010 at 12:50

Publicado em Geral

Tagged with ,