Usando a instância do EC2 como plataforma principal de desenvolvimento [fechado]

28

Meu problema

Estou trabalhando como consultor para várias empresas. Cada empresa me fornece um laptop com seu software e eu também tenho o meu, onde tenho meu ambiente de desenvolvimento. Costumo comprar um laptop novo a cada dois anos e me pego gastando muito tempo configurando e instalando software. Também passo muito tempo esperando meu laptop processar as coisas.

Para resolver todos esses problemas, agora estou pensando em usar o EC2 (instâncias do Windows em execução) como minha principal plataforma de desenvolvimento e apenas acessá-lo em qualquer PC em que estiver. Calculei que executar a instância Grande (64 bits mais barata) por 8 horas por dia durante um ano me custa 960 $ por ano, o que é aceitável.

Imagino que, quando me aproximar do local de trabalho todos os dias, darei um único toque no meu telefone para iniciar a instância, para que fique pronto quando chegar ao trabalho. Deveria ter ícones diferentes no meu telefone para iniciar os vários tipos de instância. Obviamente, o mesmo software deve ser carregado automaticamente em vários hardwares (às vezes eu precisaria da instância deles com 68,4 GB de memória).

Outra vantagem é que, se estou tendo um problema específico com a minha instância, poderia iniciar outra instância e pedir a alguém que investigasse o problema e atualizasse a imagem.

Minha pergunta:

Alguém tem experiência com essa configuração no EC2? Que tipo de problemas você prevê?

David
fonte
2
Se você tiver uma conexão doméstica decente o suficiente, poderá fazer isso usando a Área de Trabalho Remota do Windows em uma máquina 'servidor' em sua casa. Ou, se você quiser várias instâncias, execute várias na caixa virtual. Sem taxa mensal.
GrandmasterB
2
@GrandmasterB: Sem taxa mensal? Você quer dizer que a eletricidade não custa dinheiro onde você mora? E a manutenção do seu servidor doméstico leva tempo zero?
22812 John Bartholomew
O método de acesso remoto será rápido "suficiente" para você?
E as máquinas virtuais do Azure como uma alternativa ao EC2 para executar o ambiente de área de trabalho?
feklee
Você considerou usar alguns VPS do Linux em vez do EC2?
Basile Starynkevitch

Respostas:

11

Não uso o EC2, mas utilizo um farm Xen muito grande. Francamente, eu amo isso porque:

  • Eu posso trabalhar de qualquer lugar
  • É simples fazer instantâneos de sistemas de arquivos inteiros (estou usando VHD)
  • É simples produzir ISOs para instalação
  • A migração das VMs é trivial se eu precisar de uma para crescer e ficar sem espaço
  • Programas como o distcc realmente aceleram a compilação quando você tem de 8 a 10 máquinas virtuais que ele pode usar
  • O material é baixado rapidamente com uma conexão de 100 MB :)

A ressalva é que eu estou ferrado se não tiver um puxão atualizado dos meus repositórios de HG, caso eu não consiga acessar a Internet por qualquer motivo, e isso aconteceu algumas vezes.

Se você tem uma configuração muito, muito elaborada .. não há como realmente produzi-la novamente localmente (ou talvez você possa), mas o ponto é: sem conexão, sem trabalho.

Tim Post
fonte
Obrigado pela excelente resposta. Atualizei a pergunta um pouco com o preço. Deveria ter sido 960 $ por ano.
David
@ David, atualizado :)
Tim Post
6

Você está descobrindo o que o pessoal do Unix / Linux faz há anos: desenvolvendo em servidores. Você pode usar qualquer máquina e ssh / putty nos seus servidores e desenvolvedores.

Servidores linux baratos são muito mais baratos que o ec2. Você pode usar o rackspacecloud por US $ 11 / mês (eles também têm imagens do Windows), mas também pode usar a hospedagem de máquina base de 15,00 / ano em http://buyvm.net/ (cliente feliz, sem outro relacionamento)

Para a amazon, você pode ver instâncias pré-pagas de 3 anos. Isso pode economizar muito.

Christopher Mahan
fonte
4
A execução remota da GUI IDE no servidor Linux de longe não é o que as pessoas do Unix / Linux estão fazendo.
vartec 9/07/12
2
Eu não mencionei o GUI IDE. As pessoas Unix geralmente não usam IDIs da GUI. É EMACS vs VIM e alguns Nano e Ed jogado.
Christopher Mahan
1
Então, primeiro, AFAIK, não há modo de texto no Visual Studio; portanto, desenvolver remotamente no Windows não é a mesma coisa que editar remotamente o arquivo com o vi. Em segundo lugar, não concordo totalmente com a sua generalização. Nos meus 15 anos de experiência no desenvolvimento para Linux, vi poucas pessoas usando apenas o editor de modo de texto. E a maioria deles era de fato SysOps, não desenvolvedores. Por outro lado, os desenvolvedores usariam principalmente o IDE completo (Komodo, Eclipse e derivados, KDevelop, Quanta +, InteliJ e derivados).
vartec
Mmm, interessante. Talvez a nossa experiência varie. Vou ter isso em mente quando fizer amplas declarações generalizadas.
Christopher Mahan
6

Estou usando o EC2 mais tradicionalmente, como servidores. Os problemas que eu previa com o que você está tentando:

  • armazenamento: você tem duas opções, EBS persistente e armazenamento efêmero. O EBS é bastante lento, não consegue imaginar trabalhar com um IDE usando um disco tão lento. O armazenamento efêmero desaparece assim que você interrompe sua instância, portanto, também não é uma boa opção. E, claro, nem de longe tão rápido quanto o SSD.

  • memória: insuficiente, especialmente considerando o quão barata a RAM é hoje em dia.

  • CPU: realmente, realmente com pouca energia, apenas 2 núcleos virtuais lentos. O nível de entrada i3 proporcionará um desempenho melhor, sem mencionar o i5 ou o i7.

  • conectividade: a latência para a AWS é bastante alta, muito acima do que você esperaria. Dado que estou usando instâncias EC2 na Europa enquanto me conecto à Europa, esperaria uma latência bem abaixo de 30ms, enquanto isso é mais ou menos 300-500ms. Para comparação, a latência transatlântica é de cerca de 50ms. A latência tornaria inutilizável qualquer ambiente de GUI interativo.

No geral, na nuvem para servidores, sua enorme vantagem é o dimensionamento (especialmente o dimensionamento automático). Que você não vai usar. No entanto, você terá que suportar todos os aborrecimentos da nuvem.

ATUALIZAÇÃO em meados de 2015 : desde que escrevi esta resposta em 2012, a AWS adicionou armazenamento SSD, latência reduzida. Quanto à CPU e RAM, ainda assim, o EC2 está seriamente com pouca energia em comparação com um laptop comum, a menos que você esteja disposto a gastar muito mais do que US $ 200 / mês.

vartec
fonte
4

Usei uma instância do EC2 dessa maneira para desenvolver um desenvolvimento de 64 bits usando o Visual Studio 2010 em uma instância grande do Windows. Funcionou lindamente!

Mesmo estando na África do Sul, a latência não foi um grande problema. Copiar, colar e editar grandes blocos de texto era um pouco lento, mas ao depurar, nem percebi o atraso. Fazer os grandes downloads para começar a funcionar - para mim, o VS 2010 e o Office 2010 - foi extremamente rápido - alguns GBs em alguns minutos. Eu estava literalmente em funcionamento dentro de meia hora.

Então, eu recomendo que você tente.

Govert
fonte
O que você estava fazendo copiando e colando no seu IDE? Má forma!
Lorddev 8/07
@ Lorddev copiar entre arquivos no Visual Studio? O que você recomenda como alternativa?
usar o seguinte código
Foi uma piada. Eu encontrei uma tonelada de programadores de copiar e colar ao longo dos anos.
Lorddev 23/01
3

O maior problema que vejo - pelo menos com uma instância do Windows e supondo que você esteja usando a área de trabalho remota - é que as falhas de rede são irritantes. Dependendo da proximidade física com o data center da Amazon, pode não ser um problema. Experiência pessoal: tive uma semana em que meu ISP decidiu encaminhar pacotes pelos EUA para chegar ao meu escritório (20 quilômetros de distância); a interface do usuário estava inutilizável.

Anon
fonte
Provavelmente será um problema, pelo menos se eu estiver em uma conexão móvel. Acho que tenho que testá-lo antes de decidir qualquer coisa.
David
1
Eu uso muito o RDP para acessar uma máquina de desenvolvimento pessoal. Para programação não gráfica, o desempenho é tão bom que você pode facilmente esquecer que não está sentado na máquina. Então, vai depender muito da sua conexão e de como configurá-la (removendo todos os efeitos de GUI).
GrandmasterB
1
@ GrandmasterB - depende muito da latência da sua conexão. Por exemplo, mesmo na minha LAN doméstica, há uma diferença notável entre conexões com fio e sem fio. E o roteamento de seus pacotes pela Internet pode causar grandes latências: uma ida e volta de 10.000 km entre as costas dos EUA, por exemplo, acrescenta 1/100 de segundo.
Anon
1

Estou usando micro instâncias EC2 através do nível gratuito e é fantástico. É rápido, ágil e quase não tenho que pagar um centavo. Ele dura cerca de um ano, mas se você precisar de um ambiente de desenvolvimento temporário, o EC2 é o caminho a seguir. Não tive nada além de ótimas experiências por lá. As micro instâncias para mim até suportam tráfego de até 100 mil acessos por dia (muito bem administrado também, com apenas um pico de cerca de 70% de uso da CPU).

Dê uma olhada no bitnami - é uma imagem de pilha LAMP de início rápido (ou qualquer pilha) para executar em basicamente 5 minutos. Além disso, certifique-se de configurar sua segurança corretamente! Permitir apenas conexões SSH, HTTP / HTTPS em seus grupos de segurança da web. Use SFTP para transferência de arquivos.

Kevin Wang
fonte