¿Qué herramienta de CI utiliza y por qué? ¿Qué 3 palabras usarías para describir la marca? ¿Cómo describirías las alternativas?

En learningdollars.com, utilizamos gitlab CI porque se integra con nuestro servidor gitlab, el cual elegimos por la capacidad de crear githooks del lado del servidor libre y configurar las necesidades en gitlab en lugar de usar un montón de plataformas diferentes.

Pocos puntos a favor de gitlab-CI si los repositorios de proyectos están en el servidor gitlab:

Jenkins o sistemas CI de código abierto:

– Ya configuramos una instancia EC2 para el servidor gitlab. Por lo tanto, sería costoso lanzar una instancia adicional para jenkins u otro sistema de CI de código abierto.

– Jenkins necesita mucha configuración manual y algo de experiencia como instalar complementos específicos para un proyecto o dar acceso de autenticación a cada usuario de gitlab y configurar sus configuraciones de seguridad.

– Jenkins necesita una gran cantidad de módulos / bibliotecas de instalación y privilegios en la instancia donde se está ejecutando. Por lo tanto, debe ingresar en ssh y ejecutar manualmente esos comandos o al menos ejecutar un script prefabricado.

– Jenkins necesita un webhook y autenticación para trabajar con repositorios privados. Es posible que deba configurar el sondeo para verificar si se introduce algo en el repositorio para iniciar el corredor de prueba.

Gitlab CI:

– Si el proyecto ya está alojado en gitlab. Solo necesita agregar un .gitlab-ci.yml a su repositorio para iniciar gitlab test runner.

– No es necesario configurar una instancia ec2 separada para ejecutar pruebas. Aunque si desea crear una instancia separada para ejecutar pruebas, puede hacerlo.

– A diferencia de jenkins, gitlab CI mostrará el estado de la compilación y los resultados en las compilaciones del repositorio de gitlab. No es necesario instalar y configurar complementos de notificación de compilación.

– El script Gitlab ci yml es simple y no necesitas ninguna experiencia para escribir eso.

De hecho, utilizo Snap CI y GoCD, dependiendo de lo que esté implementando. Snap CI está construido sobre sí mismo, pero usamos GoCD para construir, probar e implementar la aplicación. (como nota al margen, GoCD también usa Snap CI). Puede ser obvio que uso Snap ya que estoy en el equipo de producto, pero realmente es el pijama del gato.

En tres palabras: tuberías de implementación. Más rápido.

En mi experiencia, solo ahorra tiempo. Puedo dividir todas mis pruebas en pequeñas etapas para que se ejecuten más rápido, y si hay una falla, puedo identificar dónde rápidamente y hacer un cambio de inmediato. A menudo, ni siquiera tendré que visitar el tablero después de presionar GitHub, se ejecutará automáticamente y se implementará automáticamente. Recibiré una notificación en mi canal de Slack y seguiré con mi día.

Las alternativas son muchas. Algunos hacen cosas similares sin las canalizaciones, algunos están más adaptados a OSS, entonces tienes algo como Jenkins donde necesitas un arquitecto a tiempo completo para lidiar con eso, que no tengo la experiencia, el tiempo o la paciencia para manejarlo.

Yo uso varias herramientas en conjunciones

  • Yo uso Jenkins o Travis para administrar CI.
  • Principalmente uso la nube como el entorno de elección (
  • ya sea con VMS o contenedores y un buen lenguaje de script para aprovisionarlos (AWS Cloud Formation, Puppet, por ejemplo))
  • Pruebas automatizadas en un lenguaje de código abierto
  • Confío en las herramientas de código abierto siempre que sea posible
  • Los uso porque son de código abierto, extensibles, bien soportados y de bajo costo

    Muchas de las alternativas son muy similares y no se diferencian ni ofrecen cambios muy diferentes para mí actualmente (pueden construir, implementar, probar, destruir código (y notificar éxito / fallas))

    More Interesting

    ¿Debería aumentarse el pago para los desarrolladores de Android en lugar de los desarrolladores de iOS, ya que la mayoría de los desarrolladores de iOS necesitan admitir dispositivos fabricados por Apple solo mientras que los desarrolladores de Android deben admitir dispositivos fabricados por tantos proveedores?

    ¿Qué es mejor, aprender diseño web o desarrollo de software?

    Cómo conseguir trabajos como desarrollador de software sin ninguna experiencia

    ¿Qué temas debe entender cualquier desarrollador de software?

    ¿Cómo se mantienen actualizados los desarrolladores de software en la explosión de bases de datos "políglotas" y el espacio de marcos web?

    ¿Qué subreddits debe seguir un ingeniero de software?

    Cómo obtener una visa para el trabajo de un desarrollador de software en Canadá, ser ciudadano de la UE y no tener un título relevante

    ¿Cómo se comercializan los desarrolladores de software independientes?

    Cómo comenzar a contribuir en proyectos de código abierto

    ¿En qué trabajan los desarrolladores de software en empresas como WhatsApp una vez que su software está actualizado?

    Cómo pasar de ser ingeniero / desarrollador de software a ejecutivo

    ¿Qué diferencia a un gran desarrollador de software de los mediocres / malos?

    ¿Cuáles son las compañías más seguras para desarrolladores / ingenieros de software en India?

    ¿Qué se debe esperar con una carrera en desarrollo de software?

    ¿Qué características debo tener en cuenta si estoy desarrollando un software de punto de venta POS?