2009-11-03 15 views
5

Es hora de presupuestar y Corporate está evitando el costo de reemplazar la máquina de un compañero de trabajo que se lo debe, lo necesita y lo merece.¿Es factible virtualizar las máquinas de desarrollador?

Nuestro grupo es un pequeño ISV/SAAS que existe como una división de un grupo de medios más grande. No somos un centro de costos, ganamos dinero, incluso este año. Somos propiedad de un grupo de medios de tamaño medio cuyo modelo de negocio es bastante diferente, y parece impulsado solo por la reducción de costos.

Nuestra pila de software es Visual Studio 2008, SQL 2008, en Windows Server 2008 (para que varios sitios web raíz puedan alojarse y depurarse en cada máquina de desarrollo). Nuestro hardware objetivo es una estación de trabajo de cuatro núcleos de 3GHz, 4 GB de RAM y discos duros duplicados RAID 1 para que estemos protegidos contra la pérdida de productividad de perder un disco duro de desarrollador.

Corporate quiere darnos un par de servidores poderosos pero desmantelados, y luego cada desarrollador tendría una estación de trabajo virtual en ese servidor. Las computadoras que se encuentran en nuestros escritorios serían terminales tontas a $ 400-500 cada una.

Intento ser neutral pero dudo que sea difícil discernir mi parcialidad. Me gustaría ver reacciones reales de los desarrolladores a esto, y me imagino que este es el mejor lugar para conseguirlo.

Incluya argumentos a favor o en contra, pruebas si ha visto esto probado y qué tan bien (o no) se ha ido.

+1

Lo expresaría de nuevo como una pregunta (principalmente el título) –

+0

Usar Visual Studio sobre RDP no es lo mismo. –

Respuesta

10

Esto suena como una idea bien intencionada, pero:

En mi experiencia que necesita múltiples núcleos, mucha memoria y discos rápidos para ser productivos en la moderna IDE de hoy. No veo que eso ocurra en un entorno virtual con ninguna economía. Las cajas individuales son aún mejores.

También es un problema de control. En un entorno virtual, puedo imaginar todo tipo de restricciones. ¿Todavía podrá instalar sus propias herramientas, por ejemplo?

En última instancia, está equivocado. Si esta idea aumenta los tiempos de construcción en una cantidad sustancial, cualquier ahorro en hardware se borrará rápidamente por la pérdida de productividad. Por el contrario, el dinero que se gasta en máquinas individuales decentes para los desarrolladores pagará rápidamente una y otra vez en tiempos de construcción reducidos.

Las máquinas individuales de buena calidad son una inversión , sin costo.

5

Aparte de todo lo dado (Desempeño, espacio en disco, etc ...):

estaría de acuerdo con esto, siempre y cuando todavía tenía compatibilidad con varios monitores.

Sin eso, es un no-go.

+0

¡Absolutamente! Los IDE modernos son cerdos de pantalla absolutos. E incluso si tiene la condena de Terminal/VI/Emacs/make, aún querrá todos los bienes inmuebles de la pantalla que pueda obtener. –

+1

Actualmente estamos desarrollando en Windows Server 2008 alojado en VMware. Funciona bastante bien, y VS2010 es muy receptivo. Para soporte de múltiples monitores, llame a 'mstsc.exe/multimon'. –

7

El desarrollo está vinculado al disco, es decir, usted pasa su tiempo esperando compilaciones, que es un proceso de disco la mayoría de las veces. Si todos comparten una máquina, los tiempos de construcción empeorarán.

0

Supongo que ya tiene máquinas para SVN/TRAC, su servidor de Integración Continua, demostraciones de productos, pruebas, etc. y que el único uso posible que su equipo podría hacer de estos servidores es para máquinas virtuales personales.

0

Hago muchas cosas que vinculan mi procesador al 100%. Compila ciertamente lograr esto. Ahora imagina tener que compartir ese procesador con otros 10 desarrolladores. La pérdida de productividad será bastante evidente. Si tienes una PC multi-core, esto no será tan doloroso.Obtenga un Intel i7 y probablemente ni siquiera lo note cuando haya 8 personas conectadas. La mayoría de los programas (incluido mi compilador) no pueden usar más de 1 procesador de todos modos.

Dicho esto, es una solución viable para reducir costos. Solía ​​trabajar en una empresa que desde entonces ha cambiado a estas terminales tontas. Funciona bien. Mi universidad tenía máquinas HP UNIX que eran terminales tontas. Iniciaron sesión en un servidor que dividió la propiedad del procesador entre la cantidad de personas que iniciaron sesión. Lo que la gente haría es iniciar sesión en un servidor y verificar el número de personas que iniciaron sesión. Si hubiera demasiados, buscarían el próximo. uno, porque los tiempos de construcción son notablemente más lentos. Nunca me conectaría con los nombres de servidor fáciles de recordar. =)

Definitivamente funciona, pero también reduce la productividad debido a tiempos de construcción más largos, especialmente cuando varias personas están construyendo al mismo tiempo. Dado que la productividad es tan difícil de cuantificar, puede ser difícil argumentar su punto.

0

La aceleración de gráficos también puede ser un problema si necesita hacer algo con animación, video o edición de imágenes. Realmente no se puede probar la reproducción de video a través de una sesión RDP ya que la velocidad de fotogramas y/o profundidad de color no es lo suficientemente alta.

1

Nuestro equipo se está desarrollando en un servidor remoto (sin elementos de GUI, simple antiguo vim) durante bastante tiempo sin problemas. De acuerdo, requiere un servidor bastante potente y, a veces, comienza a ser lento si todos compilan al mismo tiempo.

Pero, como beneficio adicional, usted es muy móvil en términos de donde puede desarrollar (todos tenemos computadoras portátiles) ya sea en la oficina, en el hogar, en la playa soleada (la última probablemente fue una exageración).

Bute, sí, puede que no todos funcionen bien para aplicaciones pesadas de gráficos, por supuesto.

+3

... ¡y este servidor debería funcionar un poco más que vim! ¡Visual Studio no es exactamente liviano! –

+0

En realidad, en comparación con Eclipse ... –

+0

Tuve bastante éxito ejecutando X-Server localmente y ejecutando Eclipse en una máquina remota a través de la red local, así que por favor ... :) –

3

falta básica para entender lo que es un cuadro revelador está haciendo mucho en realidad de la época:

Cuando la construcción de su masticación a través del procesador y el disco - sobre todo el disco. Cuando pruebas estás hablando de tener una o más instancias de Visual Studio ejecutándose (una vez que pasas dos cosas comienzan a ponerse interesantes), servidor de base de datos, sitio web/servicios y todo lo demás (navegadores con un lote de pestañas abierto, software de computadora portátil, y el cielo solo sabe qué más) todos se extienden a través de múltiples monitores (al menos dos). ¡Muchos núcleos, mucha memoria, por favor!

Puedo muy felizmente aceptar que haya un argumento para la virtualización: un buen dev box debería ser capaz de alojar varias VM simultáneas para aislar algunas de las anteriores y proporcionar entornos "limpios" para las pruebas. Tenga en cuenta que esa es la caja para el desarrollador ONE que aloja varias máquinas virtuales únicamente en beneficio de ese desarrollador ...

+2

Ya usamos Microsoft Virtual PC para alojar múltiples entornos virtuales para pruebas, incluyendo SUSE Linux para la búsqueda de sitios Postfix MTA y SOLR, Windows 2000 con una copia limpia de IE6 y múltiples instalaciones de XP con diferentes ediciones de IE. –

+1

(es decir, en nuestros sistemas de desarrollo local) –

+0

Ese es un argumento a su favor ... – Murph

0

Independientemente del rendimiento, en mi empresa nos estamos moviendo a las computadoras portátiles como máquinas de desarrollo. La principal ventaja es que los desarrolladores pueden llevar sus computadoras a reuniones, conferencias, etc. También es muy valioso poder sentarse junto a un colega cuando lo ayuda con un problema y tener su propio entorno de desarrollo disponible.

+3

Hmm, no estoy seguro, el tipo de máquina en la que quiero trabajar (en mi escritorio) y del tipo que quiero carry-round son bastante diferentes: una potencia decente en un paquete adecuadamente pequeño es costosa y, si lo hace, debe comprometerse con otra cosa (y si su portabilidad supera su argumento básico). – Murph

+0

Tienes razón, debes comprometerte. Pero aún puede obtener una buena computadora portátil para desarrolladores por un precio razonable. Mi computadora portátil es lo suficientemente potente como para hacer el trabajo de desarrollo y lo suficientemente portátil como para ponerlo en mi mochila. No tiene que ser extremadamente portátil, porque se sienta en mi escritorio la mayor parte del tiempo. Y tienes razón en que las máquinas de escritorio son más potentes por el mismo precio. Pero por ese dinero extra se obtiene la portabilidad, y para mí eso es valioso. Por supuesto, si el dinero no tiene objeción alguna, debe obtener una poderosa máquina de escritorio Y una computadora portátil pequeña, pero no tengo ese lujo. –

1

Parece que su grupo no está ofreciendo las soluciones que usted ha considerado en un formato bien documentado, de lo contrario, las empresas no estarían empujando decisiones por la garganta. Si tiene un proceso documentado para el desarrollo, es posible que las empresas quieran discutir el cambio del proceso con usted, pero tan pronto como diga, "este cambio rompería nuestro proceso y tendríamos que reorganizar nuestro flujo de trabajo de desarrollo", verán el dolor del $$ en la reelaboración del proceso y lo más probable es que retroceda.Dicho esto, una vez que se documente su proceso, internamente debe ser implacable para tratar de hacerlo más eficiente y rentable, y tener una mente abierta acerca de las sugerencias de las empresas.

Cuestiones relacionadas