2010-12-05 16 views
5

¿Cuál es el mejor conjunto de prácticas y herramientas que me podrían ayudar en el despliegue continuo de una aplicación web?Cómo implementar aplicaciones web de manera ágil

Deberíamos poder desplegar sin esfuerzo varias veces al día.

Es una aplicación Ruby on Rails 3. Usamos Git y Github.

+0

Simplemente a un lado: RoR permite el desarrollo extremadamente rápido de aplicaciones. Un blog con administración de sección y Markdown se puede escribir en diez minutos. –

+0

@TimeMachine - ¿De verdad? ahora quiero aprender Ruby y RoR. ¿Dónde puedo obtener información sobre eso? Estoy en Mac OS X. – Moshe

+0

El sitio RoR original tiene un tutorial llamado 'Creación de un blog en 20 minutos'. Sí, 20, pero esto se debe a que está destinado a personas que no están familiarizadas con RoR. Mac OS X tiene RoR instalado con Xcode. Si Xcode está instalado, puede usar RoR. De lo contrario, instale Xcode. –

Respuesta

4

¿Cuál es el mejor conjunto de prácticas

estoy asumiendo que usted está tratando de ser ágil aquí. Intentar derivar un conjunto de mejores prácticas para la implementación es un poco aterrador. De hecho, cualquier tipo de lista de mejores prácticas para un equipo ágil es aterrador. Si estudias Águila cuidadosamente, te darás cuenta de que requiere que el Equipo inspeccione, adapte y mejore continuamente, en el momento en que pienses que tu Equipo ha encontrado las "mejores prácticas", de manera predeterminada aceptas que puedes dejar de mejorar y por lo tanto dejar de inspeccionar , adaptándose y mejorando. Mike Cohn, autor de Agile Estimating and Planning, sugiere que un equipo ágil no debe presentar un conjunto de mejores prácticas, sino que debe mejorar continuamente, inspeccionando y adaptándose.

Para darle algunos comentarios constructivos, estas son algunas de las prácticas que siguió nuestro equipo de Scrum, que nosotros mismos descubrimos al inspeccionar y adaptar nuestro propio proceso de implementación. Agregaré información sobre nuestro código fuente en las prácticas junto con la implementación también.

  • Cada vez que un desarrollador registró código, Hudson-ci usada sondeo SMC gatillo y automáticamente armadas y distribuidas código a un entorno de desarrollo. Envió notificaciones apropiadas de éxito o fracaso por correo electrónico.

  • Hubo una creación nocturna en el entorno de desarrollo que fue activada por Hudson-ci automáticamente todas las noches.

  • Después de que las características estuvieran listas y probadas preliminarmente en el entorno Dev, el control de calidad del equipo desencadenó una compilación Hudson-ci y se implementó en el servidor de integración, donde las características podrían probarse mediante integración. El entorno de integración era una réplica exacta del entorno de producción.
  • La implementación de producción generalmente se realizaba utilizando Hudson de nuevo según el plan de lanzamiento.

y herramientas que podrían ayudarme en el despliegue continuo de una aplicación web?

Hay varias herramientas de CI disponibles. Mi favorito del montón es Hudson-ci. Otros son Continuum y control de crucero. Pero creo que Hudson es la herramienta más versátil y fácil de usar, y debido a que tiene complementos impulsados ​​por la comunidad, será muy fácil para usted encontrar un complemento para git y ruby ​​on rails para encajar.

+0

+1 Para la recomendación de Hudson. – rcravens

+1

+1 para "cualquier tipo de lista de mejores prácticas para un equipo ágil es aterrador". –

+0

Gracias por su excelente respuesta. Cuando el sistema se está actualizando, me gustaría que mis usuarios vean una página de "Estamos actualizando" en lugar de 404. Supongo que tengo que usar la aplicación 2 Rails, ¿no? – Nerian

0

IMVU es el niño del póster para el despliegue continuo y obtuvieron el suyo siguiendo la regla de "si estamos seguros de que no rompimos nada que tenemos que implementar de inmediato". Ahora tienen una automatización muy impresionante en torno a su proceso, pero comenzó con esa regla.

creo que algunos de los ingredientes que ayudan con la implementación continua incluyen:

  1. siempre tienen una acumulación de trabajo.esto significa una integración continua ejecutando pruebas unitarias automatizadas en commit, y respondiendo inmediatamente a cualquier falla. en IMVU van tan lejos como revertir automáticamente commits que rompen la compilación
  2. pruebas funcionales extensas. esto es lo que te da confianza de que no has roto nada. estas pruebas tienden a ser lentas, por lo que necesitará una estrategia para mantener el tiempo de prueba bajo, como ejecutar pruebas en paralelo en muchas máquinas o utilizar un servicio como SauceLabs.
  3. implementaciones automatizadas. nunca implementar manualmente nunca cambie la configuración manualmente implementar en todos los entornos utilizando la misma tecnología.

Cuando dices la implementación continua, la mayoría de las personas piensa en pasar automáticamente a la producción sin intervención humana. Puede evitar eso - despliegues de producción de botón pulsador - y aún así obtener un gran valor. Nosotros (urbancode, fabricantes de AnthillPro) ayudamos a muchos clientes a poner este tipo de elementos en su lugar. Pocas personas realizan la implementación de producción automática, pero la implementación automatizada es útil para todos.

Jtf

Cuestiones relacionadas