tutorial que plugin integracion example espaƱol delivery declarativo continua jenkins jenkins-pipeline jenkins-2 spinnaker

que - Compare Spinnaker con Jenkins 2.0 como una herramienta de entrega continua



pipeline declarativo (3)

Hay algunas razones por las que puede elegir Spinnaker sobre Jenkins (2.0) Pipeline como herramienta de CD:

  1. Spinnaker incluye una interfaz de usuario web que realmente puede aprovisionar recursos y hacerlo en múltiples entornos de nube. Entonces, para crear recursos básicos como máquinas virtuales, equilibradores de carga, clústeres, etc., puede hacer esto desde la misma interfaz de usuario que su herramienta de entrega.
  2. Si su arquitectura es similar a la de Netflix, Netflix usa esto como su plataforma de administración de nube completa, por lo que no es necesario utilizar herramientas dispersas para respaldar su administración de infraestructura y entrega.

Por otro lado, hay muchas razones para elegir Jenkins Pipeline sobre Spinnaker

  1. Spinnaker aún requiere una herramienta de construcción, por lo que es posible que necesites mantener a Jenkins de todos modos. Entonces, si Jenkins Pipeline se convierte en su herramienta de CD, ya puede realizar de forma nativa las tareas específicas de su ejecutor.
  2. Spinnaker no tiene controles de acceso detallados (y solo recientemente se agregó autenticación de cualquier tipo), mientras que Jenkins tiene muchos complementos y configuraciones nativas dentro de Pipeline para ofrecer control de acceso a nivel de recursos.
  3. Todo es manejado por una única secuencia de comandos, por lo que es una verdadera configuración como código. Permite un flujo / lógica / control simple que no es posible (o al menos fácil) en otras herramientas de CD.
  4. Soporte de tuberías de múltiples sucursales, crear / eliminar / cambiar sucursales fácilmente
  5. Amplio soporte de plug-in para Jenkins ya. Por ejemplo, estamos utilizando el complemento de AWS ECS para permitir nodos de acoplamiento dinámico para nuestras tuberías.
  6. Fácilmente compartir / colaborar en el código hacia las tuberías. Sin duda tendrá funciones reutilizables que desea utilizar a través de múltiples tuberías. Jenkins lo hace fácil con herramientas como el complemento de cargador remoto.
  7. Apoyo de la comunidad grande

Finalmente, elegimos Jenkins 2.0 Pipeline como nuestra herramienta de CD sobre Spinnaker y varios otros.

Como sabemos, Jenkins 2.0 ha sido lanzado y se extiende más allá de la integración continua (CI) a la entrega continua (CD). Así que quiero preguntar, ¿cuáles son las ventajas competitivas de Spinnaker en comparación con Jenkins 2.0?


Usamos Maven para empaquetar todo el código base junto con configuraciones, propiedades (es decir, todo lo que está versionado en GitHub) y crear un RPM a partir de él. Con este final del flujo, activamos las tuberías de Spinnaker en AWS o en cualquier otra nube para iniciar la parte del CD.

Spinnaker es muy singular con este alcance de CD dado.

  1. Promoción de código: el mismo RPM que promocionaremos asegura que estamos haciendo nuestro código subyacente / envolvente inmutable.

  2. Podemos controlar el cambio de tamaño de las instancias desde la propia consola Spinnaker.

  3. Retroceder es solo un clic.

  4. Todos los conceptos de implementación modernos como Azul-verde / Rojo-Negro, Canario, montañés, etc. son OOB aquí.

  5. Los registros de tuberías proporcionan una visión muy perspicaz, tanto de alto como de bajo nivel.

  6. Despliegues multirregionales (DR estratégico)

Si alguien necesita ayuda (¡ayuda gratis!) para instalar Spinnaker en RHEL, puede avisarme.

Pero debo decir que usamos Spinnaker solo para implementaciones centradas en la nube.


Trabajo mucho en la integración de Jenkins en Spinnaker y en la funcionalidad de Pipelines en Netflix.

Spinnaker nunca fue pensado para ser una herramienta de compilación de extremo a extremo. Hay cosas que Jenkins hará mejor en términos de administración de SCM, ejecutar pruebas, crear paquetes, tener millones de complementos, etc., etc., etc.

Lo que Spinnaker intenta hacer bien es tomar una parte del software que ha publicado (ya sea un paquete debian, una imagen de docker o un JAR desplegable) y ejecutarlo a través de un ciclo de implementación de software predecible que es altamente personalizable. En otras palabras, todas las funciones de Spinnaker están diseñadas para facilitar la implementación de artefactos de múltiples cuentas y múltiples cuentas de alta disponibilidad.

Las tuberías de Spinnaker toman una vista centrada en la nube. La mayoría de nuestras etapas de canalización y controles de API están relacionados con la creación de nuevos grupos de servidores y el cambio de los grupos de servidores existentes de forma predecible y fácil de usar. En caso de duda, este es el caso para el que optimizamos.

Tenemos opiniones más firmes acerca de cómo se ve la implementación en la nube y, a menudo, tendremos una IU de apuntar y hacer clic cuando se trate de tareas de implementación en la nube en nuestras unidades de CD: encuentre la imagen en el clúster x, desactive este clúster, cambie el tamaño de un grupo de servidores , reduce este clúster, haz que este clúster tome tráfico, destruya este clúster antiguo, etc.

La funcionalidad de la tubería de Jenkins no estaba disponible para nosotros cuando comenzamos a escribir Spinnaker hace más de 2 años, por lo que creamos la funcionalidad que necesitábamos. El soporte de Jenkins que surgió evolucionó a partir de nuestras necesidades y ayudó a otros equipos en Netflix a construir miles de canales de implementación internamente. Como Netflix depende en gran medida de Jenkins para la construcción y las pruebas, la transición entre los trabajos de Jenkins y las etapas de Spinnaker es bastante perfecta.

Hay equipos en Netflix que no usan la funcionalidad de canalización de Spinnaker y en su lugar usan la API de Spinnaker en sus trabajos de Jenkins como acceso directo para implementar en AWS. Si está utilizando tuberías de Jenkins o herramientas de CD similares, Spinnaker hace que su fase de implementación sea realmente flexible.

También tenemos equipos a los que les gusta la forma en que Spinnaker desglosa los trabajos de Jenkins en tareas atómicas y reutilizables en torno a una aplicación. Los equipos que no se despliegan en la nube usan Spinnaker porque nuestras tuberías satisfacen sus necesidades mejor que lo que pueden encontrar en el mundo Jenkins.

Las tuberías de Jenkins están bastante limpias. No creo que Spinnaker alguna vez reemplace completamente a Jenkins y las millones de cosas que hace. Nuestro objetivo es simplemente simplificar y ampliar el paso de ''despliegue en la nube''. La elección de usar uno sobre el otro, juntos o no, depende de usted.