Uso de la instancia EC2 como plataforma principal de desarrollo [cerrado]

28

Mi problema

Estoy trabajando como consultor para varias empresas. Cada compañía me proporciona una computadora portátil con su software y también tengo el mío, donde tengo mi entorno de desarrollo. Tiendo a comprar una nueva computadora portátil cada dos años y me encuentro pasando mucho tiempo configurando e instalando software. También paso mucho tiempo esperando que mi computadora portátil procese las cosas.

Para resolver todos estos problemas, ahora estoy considerando usar EC2 (ejecutando instancias de Windows) como mi plataforma de desarrollo principal y solo accedo a esto desde cualquier PC en la que esté. Calculé que ejecutar la instancia Large (la más barata de 64 bits) durante 8 horas al día durante un año me cuesta 960 $ por año, lo cual es aceptable.

Me imagino que cuando me acerque al lugar de trabajo todos los días, haré un solo toque en mi teléfono para activar la instancia, de modo que esté listo cuando llegue al trabajo. Debería tener diferentes iconos en mi teléfono para activar los distintos tipos de instancias. Por supuesto, el mismo software debería cargarse automáticamente en los distintos hardware (a veces incluso necesitaría su instancia con 68,4 GB de memoria).

Otra ventaja es que si tengo un problema específico con mi instancia, podría iniciar otra instancia y hacer que alguien investigue el problema y actualice la imagen.

Mi pregunta:

¿Alguien tiene experiencia con tal configuración en EC2? ¿Qué tipo de problemas prevees?

David
fuente
2
Si tiene una conexión hogareña lo suficientemente decente, puede hacerlo usando el Escritorio remoto de Windows en una máquina 'servidor' en su hogar. O si desea varias instancias, ejecute varias en el cuadro virtual. Sin cuota mensual.
GrandmasterB
2
@GrandmasterB: ¿Sin tarifa mensual? ¿Quieres decir que la electricidad no cuesta dinero donde vives? ¿Y el mantenimiento de su servidor doméstico lo lleva a tiempo cero?
John Bartholomew
¿El método de acceso remoto será rápido "suficiente" para usted?
¿Qué hay de las máquinas virtuales de Azure como alternativa a EC2 para ejecutar el entorno de escritorio?
feklee
¿Consideró usar algunos VPS de Linux en lugar de EC2?
Basile Starynkevitch

Respuestas:

11

No uso EC2, pero sí uso una gran granja Xen. Francamente, me encanta porque:

  • Puedo ir a trabajar desde cualquier lugar
  • Es simple hacer instantáneas de sistemas de archivos completos (estoy usando VHD)
  • Es sencillo producir ISO para la instalación.
  • La migración de máquinas virtuales es trivial si necesito una para crecer y quedarme sin espacio
  • Programas como distcc realmente aceleran las compilaciones cuando tienes 8-10 máquinas virtuales que puede usar
  • Las cosas se descargan muy rápido con una conexión de 100 MB :)

La advertencia es que estoy jodido si no tengo una actualización actualizada de mis repositorios de HG en caso de que no pueda acceder a Internet por cualquier razón, y eso ha sucedido varias veces.

Si tiene una configuración realmente muy elaborada ... no hay forma de que pueda volver a producirla localmente (o tal vez podría), pero el punto es que no hay conexión ni trabajo.

Tim Post
fuente
Gracias por la excelente respuesta. He actualizado un poco la pregunta con el precio. Debería haber sido 960 $ por año.
David
@David, actualizado :)
Tim Post
6

Estás descubriendo lo que la gente de Unix / Linux ha estado haciendo durante años: desarrollar en servidores. Luego puede usar cualquier máquina y ssh / putty en sus servidores y desarrollar allí.

Los servidores linux baratos son mucho más baratos que ec2. Puede usar rackspacecloud a $ 11 / mes (también tienen imágenes de Windows), pero también puede usar el alojamiento de la máquina base de 15.00 / año en http://buyvm.net/ (cliente satisfecho, ninguna otra relación)

Para Amazon, puede ver instancias prepagas de 3 años. Eso podría ahorrarte mucho.

Christopher Mahan
fuente
44
Ejecutar remotamente GUI IDE en el servidor Linux no es lo que hacen las personas de Unix / Linux.
vartec
2
No mencioné GUI IDE. Las personas de Unix generalmente no usan IDE GUI. Es EMACS vs VIM y algunos Nano y Ed arrojados.
Christopher Mahan
1
Primero, AFAIK, no hay ningún modo de texto en Visual Studio, así que no, desarrollar remotamente en Windows no es lo mismo que editar remotamente un archivo con vi. En segundo lugar, no estoy del todo de acuerdo con su generalización. En mis 15 años de experiencia en el desarrollo para Linux, he visto a muy pocas personas usando solo el editor de modo de texto. Y la mayoría de ellos eran de hecho SysOps, no desarrolladores. Por otro lado, los desarrolladores utilizarían principalmente IDE completo (Komodo, Eclipse y derivados, KDevelop, Quanta +, InteliJ y derivados).
vartec
Mmm, interesante. Quizás nuestra experiencia varía. Lo tendré en cuenta cuando haga declaraciones generales generalizadas.
Christopher Mahan
6

Estoy usando EC2 más tradicionalmente, como servidores. Los problemas que preveo con lo que estás intentando:

  • almacenamiento: tiene dos opciones, EBS persistente y almacenamiento efímero. EBS es bastante lento, realmente no puedo imaginar trabajar con un IDE usando un disco tan lento. El almacenamiento efímero desaparece tan pronto como detiene su instancia, por lo que tampoco es una buena opción. Y, por supuesto, ni de lejos tan rápido como SSD.

  • memoria: no es suficiente, especialmente dado lo barato que es la RAM hoy en día.

  • CPU: muy, muy poco potencia, solo 2 núcleos virtuales lentos. El nivel de entrada i3 le dará un mejor rendimiento, sin mencionar i5 o i7.

  • conectividad: la latencia a AWS es bastante alta, muy por encima de lo que cabría esperar. Dado que estoy usando instancias EC2 en Europa mientras me conecto desde Europa, esperaría una latencia muy inferior a 30 ms, mientras tanto, es más como 300-500 ms. En comparación, la latencia transatlántica es de aproximadamente 50 ms. La latencia haría inutilizable cualquier entorno de GUI interactiva.

En general, la nube para servidores, su gran ventaja es el escalado (especialmente el autoescalado). Que no vas a usar en absoluto. Sin embargo, tendrás que soportar todas las molestias de la nube.

ACTUALIZACIÓN a mediados de 2015 : desde que escribí esta respuesta en 2012, AWS ha agregado almacenamiento SSD, latencia reducida. En cuanto a la CPU y la RAM, aún se mantiene, el EC2 tiene una potencia insuficiente en comparación con una computadora portátil promedio, a menos que esté dispuesto a gastar más de $ 200 / mes.

vartec
fuente
4

He usado una instancia EC2 de esta manera para hacer un desarrollo de 64 bits usando Visual Studio 2010 en una instancia grande de Windows. Funcionó muy bien!

Aunque estoy en Sudáfrica, la latencia no fue un gran problema. Copiar y pegar, y editar grandes bloques de texto fue un poco lento, pero al depurar ni siquiera noté el retraso. Hacer las grandes descargas para ponerme en marcha, para mí VS 2010 y Office 2010, fue extremadamente rápido, algunos GB en pocos minutos. Estaba literalmente en funcionamiento en media hora.

Así que te recomiendo que lo pruebes.

Govert
fuente
¿Qué hacías copiando y pegando en tu IDE? ¡Mala forma!
lorddev
@lorddev copiando entre archivos en Visual Studio? ¿Qué me recomiendan como alternativa?
Kirk Broadhurst
Que era una broma. Me he encontrado con un montón de programadores de copiar y pegar a lo largo de los años.
lorddev
3

El mayor problema que veo, al menos con una instancia de Windows y suponiendo que está usando un escritorio remoto, es que los retrasos de la red son molestos. Dependiendo de cuán físicamente cerca esté del centro de datos de Amazon, puede que no sea un problema. Experiencia personal: tuve una semana en la que mi ISP decidió enrutar paquetes a través de los EE. UU. Para llegar a mi oficina (a 12 millas de distancia); la interfaz de usuario era inutilizable.

Luego
fuente
Probablemente será un problema, al menos si estoy en una conexión móvil. Supongo que tengo que probarlo antes de decidir algo.
David
1
Utilizo mucho RDP para acceder a una máquina de desarrollo personal. Para la programación sin gráficos, el rendimiento es tan bueno que fácilmente podrías olvidar que no estás sentado en la máquina. Por lo tanto, dependerá mucho de su conexión y de cómo configurarla (eliminando todos los efectos de interfaz gráfica de usuario sofisticados).
GrandmasterB
1
@GrandmasterB: depende mucho de la latencia de su conexión. Por ejemplo, incluso en la LAN de mi hogar, hay una diferencia notable entre las conexiones cableadas y la inalámbrica. Y el enrutamiento de sus paquetes a través de Internet puede causar grandes latencias: un viaje de ida y vuelta de 6,000 millas entre las costas estadounidenses, por ejemplo, agrega 3/100 de segundo.
Anon
1

Estoy usando micro instancias EC2 a través del nivel gratuito y es fantástico. Es rápido, sensible y apenas tengo que pagar un centavo. Dura aproximadamente un año, pero si necesita un entorno de desarrollo temporal, EC2 es el camino a seguir. No he tenido más que grandes experiencias allí. Micro instancias para mí incluso han soportado tráfico de hasta 100k visitas al día (también muy bien manejado, con un pico de aproximadamente 70% de uso de CPU).

Eche un vistazo a bitnami: es una imagen de pila LAMP de inicio rápido (o cualquier pila) que se ejecuta en básicamente 5 minutos. Además, asegúrese de configurar su seguridad correctamente. Solo permita conexiones SSH, HTTP / HTTPS en sus grupos de seguridad web. Use SFTP para la transferencia de archivos.

Kevin Wang
fuente