Pregunta

Estoy planeando proponerle a mi (muy pequeña) compañía que compremos una computadora para ejecutar una integración continua. Si dicen que sí, la tarea de comprar la máquina probablemente recaerá sobre mí, así que mi pregunta es:

¿Qué busco en una computadora que se utilizará para la integración continua de un equipo php muy pequeño (3 personas)?

Qué '' cosas '' (memoria, procesador, etc.) son importantes y ¿qué no lo son?

¿Fue útil?

Solución

Realmente no vas a necesitar esa poderosa máquina. Si está ejecutando pruebas u otras métricas, la capacidad de procesamiento es probablemente su principal preocupación, pero realmente podría ejecutarla en un antiguo Pentium 1 y probablemente funcionaría.

Sus limitaciones serán su entorno operativo. Si está ejecutando LAMP, desea utilizar una máquina que pueda manejar bien la configuración de LAMP, que es prácticamente cualquier máquina * nix que sea bastante moderna.

Configuré una configuración de integración continua para .NET en una antigua estación de trabajo Pentium4 que teníamos por ahí y funcionó bien.

Una cosa a tener en cuenta es el espacio de almacenamiento si está archivando su código en la compilación.

Otros consejos

El almacenamiento se convirtió en un problema para nosotros cuando estábamos usando Maven , Continuum y Clearcase y edificio por hora. Las vistas de la instantánea se quedaron después de cada compilación.

Teníamos una caja lo suficientemente potente (Sun Fire V490) y la usamos para nuestro entorno de integración de desarrollo y Archiva repositorio. Así que nunca tuvimos problemas con el rendimiento y la memoria. De hecho, la única vez que tuvimos un problema con la memoria PermGen fue construir el objetivo del sitio Maven y eso solo significaba usar -XX: MaxPermSize = 128m.

Desde mi experiencia, esto no tiene que ser una máquina potente. Cualquier máquina que usarías para el desarrollo sería más que satisfactoria. Obviamente, cuanto más rápido sea el equipo, más rápida será la respuesta si está ejecutando pruebas unitarias en confirmaciones de código. Nuestro servidor CI está ejecutando XP SP2, procesador 3G, 3G de RAM, y está muy dominado para nuestras necesidades en este momento. Dicho esto, es bueno recibir un correo electrónico no más de 6 minutos después de la confirmación que le permite saber si la compilación está limpia y todas las pruebas pasan. Para hacer compilaciones nocturnas, las especificaciones probablemente disminuyan más, ya que probablemente tengas más tiempo para hacerlas. El espacio en el disco duro (300G es razonablemente alcanzable en estos días) es bueno para almacenar informes y compilaciones para la regresión, pero si tiene un NAS, probablemente pueda eliminar los artefactos después de que se hayan construido.

Casi cualquier máquina nueva que pueda comprar hoy puede manejar la tarea de integración continua en un árbol fuente no demasiado grande. Algunas cosas a buscar:

  • 2-4GB de RAM, más si desea ejecutar muchas pruebas en paralelo o si desea ejecutar máquinas virtuales para simular clientes.
  • Un procesador multinúcleo (o procesadores múltiples) para aumentar las posibilidades de detectar errores de subprocesamiento.
  • " Servidor " Las máquinas de clase tienden a manejar la operación 24/7 mejor que "escritorio" máquinas de clase, pero no hay una línea clara entre las dos.
  • RAID1 o RAID1 + 0 discos redundantes son imprescindibles. Incluso si tiene copias de seguridad (y debería tenerlas de todos modos) es difícil reconstruir un servidor y un disco duro adicional de $ 100 vale más que el dinero como seguro.

RAM: suficiente para ejecutar su herramienta CI ( phpUnderControl ?) y cualquier software de soporte que usted desea para su compilación y pruebas.

Almacenamiento: decida cuántas compilaciones antiguas desea mantener en la máquina. En mi experiencia, no es útil tener muchos, especialmente. si tiene un equipo pequeño sin muchos procesos formales para volver a versiones anteriores.

CPU: sin problema. Cualquier máquina que pueda comprar funcionará.

Entonces, entre los dos tiendo a favorecer la RAM sobre el espacio de almacenamiento.

A menos que la aplicación sea enorme, solo obtendría una caja de doble núcleo con aproximadamente 4 gigas de ram y probablemente 2 discos SATA razonablemente rápidos configurados en RAID 0. ¿500 gigas tal vez?

Si desea estar realmente seguro con él, obtenga dos unidades de concierto 70ish para RAID 0 para la partición del sistema operativo y luego 3 más de 140 unidades de concierto en RAID 5 para los datos.

El rendimiento de la máquina apenas importa, pero cuide bien la disponibilidad porque una vez que comience a usarlo y un día salga el humo mágico, deberá reemplazarlo pronto para continuar trabajando. Defina una política de copia de seguridad sensata y asegúrese de saber cómo configurar un nuevo sistema idéntico cuando sea necesario. Por ejemplo, es posible que se ejecute desde una pequeña partición que puede crear imágenes en otra máquina, y luego la parte principal de los datos se puede mover físicamente si reside en RAID1 y al menos una unidad funciona (aunque tenga una copia de seguridad disponible en otro lugar) en la red también).

Creo que una cosa a la que mucha gente está llegando es que la máquina no es tan importante como el software de CI. El único momento en que la máquina es importante es si necesita arquitecturas diferentes. De lo contrario, obtenga una máquina que coincida con su entorno de destino. Si está creando una aplicación de servidor, puede ser conveniente obtener un procesador de 64 bits, ya que su aplicación probablemente se ejecutará en un servidor de 64 bits.

Me importaría más qué herramienta estoy usando para CI. Necesita algo que se ejecute rápidamente, y como la gente aquí ha señalado, no debería aferrarse a las compilaciones antiguas a menos que necesite que estén disponibles. Si es así, buscaría algo que permita subir compilaciones y resultados a un servidor separado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top