Desarrollar y desplegar una aplicación utilizando IBM Cloud Satellite
DevOps Insights Llegará al final de su vida útil y se dejará de ofrecer el 31 de agosto de 2026. Continuous Delivery dejará de estar disponible en las siguientes regiones el 12 de febrero de 2027: au-syd, ca-tor, us-east. Code Risk Analyzer también dejará de estar disponible en todas las regiones a partir de esa fecha. Si en una región no se hace un uso activo de estas funciones, es posible que dichas funciones se retiren antes de lo previsto en esa región y dejen de aceptar nuevas instancias. Más información
En esta guía de aprendizaje, descubrirá cómo crear una cadena de herramientas abierta utilizando IBM Cloud® Continuous Delivery y cómo desplegar la aplicación en Satellite. También aprenderá a implementar las cadenas de herramientas en el servicio de Continuous Delivery y a desarrollar y desplegar una aplicación web simple (app) utilizando las cadenas de herramientas.
IBM Cloud Satellite integra los servicios de nube pública en cualquier entorno, lo que permite a los clientes con requisitos normativos estrictos aprovechar la flexibilidad y la agilidad de estos servicios para sus centros de datos seguros locales. Continuous Delivery utiliza Satellite Config para desplegar una aplicación en un grupo de clústeres en IBM Cloud Satellite. Con Satellite Config, puede crear una configuración para especificar qué recursos de Kubernetes quiere desplegar en un grupo de clústeres de Kubernetes o clústeres de Red Hat® OpenShift® on IBM Cloud® que se ejecutan en su ubicación de Satellite o en IBM Cloud.
La cadena de herramientas que se utiliza en esta guía de aprendizaje implementa prácticas de DevOps estándar, como la exploración de código, las pruebas de aceptación, los repositorios de Git y las funciones de integración continua y entrega continua. Después de crear clústeres y asociarlos a un grupo de clústeres de Continuous Delivery, cree una cadena de herramientas para cambiar el código de la aplicación y envíe el cambio al repositorio de Git Repos and Issue Tracking. Cuando se envían cambios al repositorio, la interconexión de entrega basada en Tekton compila y despliega el código automáticamente.
Tekton es un marco de trabajo de código abierto, independiente del proveedor y nativo de Kubernetes, que permite crear, probar e implementar aplicaciones. Tekton ofrece un conjunto de componentes compartidos para crear sistemas de integración continua y entrega continua. Como proyecto de código abierto, Tekton está gestionado por la Fundación Continuous Delivery. El objetivo es modernizar la entrega continua proporcionando especificaciones del sector para interconexiones, flujos de trabajo y otros bloques de construcción. Con Tekton, puede efectuar compilaciones, pruebas y despliegues en distintos proveedores o en sistemas locales abstrayendo los detalles de implementación subyacentes. Los pipelines de Tekton están integrados en Continuous Delivery. Para obtener más información sobre el IBM Cloud® Kubernetes Service, consulte IBM Cloud® Kubernetes Service.
La plantilla que se utiliza en esta guía de aprendizaje funciona con el plan Estándar de Kubernetes.
Antes de empezar
Antes de iniciar esta guía de aprendizaje, asegúrese de que dispone de los recursos siguientes:
-
Una cuenta de IBM Cloud. En función del tipo de cuenta de IBM Cloud, es posible que se limite el acceso a determinados recursos. En función de los límites del plan de cuenta, es posible que algunas prestaciones necesarias para algunas estrategias de despliegue no estén disponibles. Para obtener más información sobre las cuentas de IBM Cloud, consulta Configuración de tu cuenta de IBM Cloud y Actualización de tu cuenta.
-
Un clúster de Kubernetes y una clave de API. Puede crear estos recursos utilizando la interfaz de usuario o la CLI. El clúster puede tardar algún tiempo en llevar a cabo la provisión. A medida que se crea el clúster, se va avanzando por las etapas de Despliegue, Pendiente y Preparado. Para obtener más información sobre los clústeres de Kubernetes, consulte Clústeres de Kubernetes.
-
Un Grupo de clústeres de Satellite que contiene el clúster que necesita la cadena de herramientas. La cadena de herramientas de esta guía de aprendizaje admite un grupo de clústeres de Satellite que contiene un único tipo de clúster: un clúster de Kubernetes o un clúster de Satellite.
-
Una instancia del servicio Continuous Delivery.
-
Opcional. Secretos almacenados en una caja fuerte de gestión de secretos y administrados de forma centralizada desde una única ubicación. Para obtener más información sobre cómo seleccionar una oferta de gestión de secretos y protección de datos entre todas las que se ofrecen, consulte Gestión de secretos de IBM Cloud. Si todavía no se ha decidido por una instancia del proveedor de cajas fuertes de gestión de secretos, cree una.
-
Opcional. Un espacio de nombres que se crea utilizando la línea de mandatos del registro de contenedor. Para crear un espacio de nombres, escriba el mandato siguiente desde la línea de mandatos:
ibmcloud cr namespace-add <my namespace>Si lo prefiere, puede crear un espacio de nombres en la página Container Registry. Para obtener más información sobre cómo crear un espacio de nombres en esta ubicación, consulte el servicio IBM Cloud Container Registry.
Creación de la cadena de herramientas
En este paso, vamos a crear la cadena de herramientas Desarrollar y desplegar la aplicación en Kubernetes utilizando estrategias de despliegue. El clúster de Kubernetes de destino se configura al mismo tiempo que la cadena de herramientas utilizando la clave de API de IBM Cloud y el nombre del clúster de Kubernetes. Puede cambiar estos valores más adelante actualizando la configuración de Delivery Pipeline. Cualquier código fusionado en la rama de repositorios Git de destino se compila, se valida y se despliega automáticamente en el clúster de Kubernetes.
Para crear una cadena de herramientas Desarrollar y desplegar la aplicación en Kubernetes utilizando estrategias de despliegue, pulse
Como alternativa, desde la IBM Cloud consola, haga clic en el icono de menú ( ) > Automatización de plataformas > Cadenas de herramientas.
En la página Cadenas de herramientas, pulse Crear una cadena de herramientas. En la página Crear una cadena de herramientas, haz clic en Desarrollar e implementar una aplicación en Kubernetes utilizando estrategias de implementación.
Configurar el nombre y la región de la cadena de herramientas
Revise la información predeterminada para la configuración de la cadena de herramientas. El nombre de la cadena de herramientas la identifica en IBM Cloud. Asegúrese de que el nombre de la cadena de herramientas sea exclusivo dentro de las cadenas de herramientas de la misma región y grupo de recursos en IBM Cloud.
La región de la cadena de herramientas puede diferir del clúster y de la región de registro.
Seleccione la estrategia de despliegue
La cadena de herramientas crea una interconexión de entrega continua para desplegar la imagen de Docker de la aplicación en el grupo de clústeres definido en Satellite.
-
Pulse Varios clústeres mediante Satellite para desplegar la aplicación utilizando Satellite.
Estrategias seguras para la implementación de aplicacionesEstrategias de implementación -
Pulse Continuar.
Configurar el repositorio de código fuente de aplicación
En el paso Aplicación, se muestran, de forma predeterminada, las opciones recomendadas para el repositorio del código fuente de aplicación. Para ver todas las opciones disponibles para la integración de Git subyacente, pulse Opciones avanzadas. De forma predeterminada, la cadena de herramientas utiliza el ejemplo predeterminado que clona la aplicación de ejemplo como un repositorio de Git Repos and Issue Tracking alojado en IBM.
Puede cambiar el nombre del repositorio de aplicaciones. La región del repositorio sigue siendo la misma que la región de la cadena de herramientas.
La plantilla de cadena de herramientas proporciona una aplicación Hello Containers. Si quiere enlazar un repositorio de aplicaciones existente para la cadena de herramientas, seleccione Traer su propia aplicación y especifique el URL del repositorio. La cadena de herramientas solo admite la creación de enlaces con repositorios existentes de Git Repos and Issue Tracking.
De forma predeterminada, la plantilla del repositorio de aplicaciones se clona en la organización Git Repos and Issue Tracking. Para cambiar la organización, habilite las Opciones avanzadas y especifique el propietario del repositorio.
Configurar el repositorio de inventario
El repositorio de inventario registra los detalles de los artefactos creados por las cadenas de herramientas de integración continua. Puede crear un nuevo repositorio de inventario que sea un clon de la plantilla de repositorio de inventario o utilizar un repositorio de inventario ya existente que comparta entre cadenas de herramientas.
De forma predeterminada, la plantilla del repositorio de inventario se clona en la organización Git Repos and Issue Tracking. Para cambiar la organización, seleccione Opciones avanzadas y especifique el propietario del repositorio.
Almacenar secretos de forma segura
Hay varias herramientas de esta cadena de herramientas que requieren secretos, como una clave de API de IBM Cloud. Es necesario almacenar de forma segura todos los secretos en una caja fuerte de secretos y hacer referencia a ellos siempre que lo requiera la cadena de herramientas.
Con IBM Cloud, puede elegir entre varias ofertas de gestión de secretos y protección de datos que le ayudan a proteger los datos confidenciales y a centralizar los secretos. En el paso Secretos, puede especificar qué integraciones de la caja fuerte de secretos se deben añadir o eliminar de la cadena de herramientas. Para obtener más información sobre cómo añadir y eliminar integraciones de la caja fuerte, así como los requisitos previos y el uso de sugerencias, consulte Gestión de secretos de IBM Cloud.
Cuando se utilizan sugerencias en una plantilla, la cadena de herramientas se rellena automáticamente con secretos configurados previamente; no es necesario seleccionar secretos de forma manual en las integraciones de cajas fuertes conectadas a la cadena de herramientas.
En esta guía de aprendizaje, se utiliza IBM Secrets Manager como caja fuerte de secretos.
IBM Secrets Manager almacena y aplica de forma segura secretos como las claves de API, la firma de imágenes o las credenciales de HashiCorp que forman parte de la cadena de herramientas.
Para más información sobre la gestión de sus secretos en IBM Key Protect o HashiCorp, consulte Secretos.
Configurar el destino de despliegue
Configure el clúster de Kubernetes de destino en el que desplegar la aplicación. Una vez que la aplicación pasa la fase de compilación, prueba y exploración, la interconexión despliega la imagen de la aplicación compilada en el clúster de Kubernetes de destino. En ese momento, el despliegue está listo para la prueba de aceptación o la prueba de integración.
Si la clave de API dispone del acceso necesario, los campos siguientes se cargan automáticamente utilizando la clave de API creada, recuperada de una caja fuerte o especificada de forma manual. Si la clave de API es válida, se rellenan automáticamente los valores de espacio de nombres y región del registro de contenedores, el espacio de nombres, el nombre y la región del clúster, y el grupo de recursos. Puede actualizar cualquiera de estos campos para adecuarlos a la configuración.
-
Nombre de app: nombre de la aplicación. El nombre de aplicación predeterminado es
hello-containers. -
Clave de API de IBM Cloud: clave de API que se utiliza para interactuar con la herramienta de CLI de
ibmclouden distintas tareas. Utilice uno de estos métodos para especificar la clave de API que quiera utilizar:- Pulse el icono de llave para importar una clave de API existente desde la caja fuerte de secretos que quiera.
- Copie y pegue una clave de API existente.
- Pulse Nuevo para crear una clave de API.
- Genere un nuevo valor
api-keysi no tiene una clave de API existente.
Puede guardar de inmediato la clave de API generada en una caja de fuerte de secretos existente de su elección.
-
Nombre del grupo de clústeres de Satellite: nombre del grupo de clústeres creado en Satellite. La aplicación se despliega en este grupo de clústeres.
-
Espacio de nombres del clúster: si el espacio de nombres del clúster no existe en los clústeres del grupo de clústeres, la cadena de herramientas lo creará automáticamente.
Añadir integraciones de herramientas opcionales
Puede añadir la integración de herramientas de IBM Cloud® DevOps Insights a la cadena de herramientas sin ninguna configuración adicional.
DevOps Insights se incluye en la cadena de herramientas creada. No se necesita ningún paso de configuración para DevOps Insights. La interconexión de integración continua utiliza automáticamente la instancia de DevOps Insights incluida en la cadena de herramientas. DevOps Insights agrega datos de despliegue, compilación, prueba y código para proporcionar visibilidad sobre la velocidad y la calidad de todos los equipos y releases.
Pulse Continuar.
Complete la configuración de la cadena de herramientas
En la página Resumen, pulse Crear. Para configurar la cadena de herramientas, se ejecutan varios pasos automáticamente.
Puede configurar las integraciones de cadenas de herramientas individuales después de crear la interconexión.
Exploración de su nueva cadena de herramientas
Después de crear la cadena de herramientas, muestra cada una de las integraciones de herramientas que forman parte de la cadena de herramientas en un diagrama.
Exploración de los conductos
Puede explorar los conductos para comprender el flujo de la cadena de herramientas y las distintas operaciones que se ejecutan dentro de cada conducto. La cadena de herramientas que acaba de crear contiene tres interconexiones:
- Interconexión de solicitud de extracción: se ejecuta cuando un desarrollador fusiona cambios de la rama de desarrollo con la rama maestra o con cualquier otra rama del repositorio. El conducto de la solicitud de extracción ejecuta la prueba unitaria y las exploraciones estáticas sobre el código fuente de la aplicación.
- Interconexión de integración continua: se ejecuta cuando se fusiona un cambio en la rama maestra del repositorio de código fuente de aplicación. La interconexión de integración continua ejecuta la prueba de unidad, la cobertura de código, las exploraciones estáticas en el código fuente de aplicación, la comprobación de CIS y la comprobación de la lista de materiales (BOM). La interconexión de entrega continua genera también los artefactos de compilación binarios y los carga en IBM Cloud® Kubernetes Service, tal y como se ha configurado en la cadena de herramientas. Además, la interconexión de integración continua genera los metadatos de los artefactos de compilación y los almacena en el repositorio de inventario.
- Interconexión de despliegue continuo: despliega artefactos de compilación en el entorno de despliegue. La interconexión verifica el despliegue correcto de la aplicación ejecutando la comprobación de estado. Una vez completada la interconexión de integración continua, debe activar de forma manual esta interconexión. En función de la estrategia de despliegue seleccionada, se añadirán más desencadenantes a la interconexión de entrega continua.
Ejecutar las interconexiones de integración continua y solicitud de extracción
Para iniciar la interconexión de solicitud de extracción, cree una solicitud de fusión en el repositorio de aplicaciones:
- En la página Visión general de la cadena de herramientas, en la tarjeta Repositorios, pulse el repositorio de la aplicación
compliance-app-<timestamp>. - Desde el repositorio maestro, cree una rama.
- Actualice parte del código de la aplicación del nodo de ejemplo o el archivo readme y guarde los cambios.
- Envíe la solicitud de fusión.
- En la página Visión general de la cadena de herramientas, en la tarjeta Repositorios, pulse el repositorio de
pr-pipelinepara iniciar la interconexión de la solicitud de extracción. La solicitud de fusión correspondiente en el repositorio de aplicaciones permanece en estado pendiente hasta que todas las etapas de la interconexión de la solicitud de extracción se completan correctamente. - Si la ejecución de la interconexión de solicitud de extracción se realiza correctamente, puede seleccionarla para explorar los pasos completados.
{: caption="
Para iniciar la interconexión de integración continua, fusione la solicitud de fusión de integración continua en el repositorio de aplicaciones:
- Vaya a la solicitud de fusión.
- Fusione la solicitud para que los cambios se copien en la rama maestra del repositorio de aplicaciones. La interconexión de integración continua se desencadena automáticamente.
- En la página Visión general de la cadena de herramientas de integración continua, en la tarjeta Repositorios, pulse el repositorio de
ci-pipelinepara iniciar la interconexión de integración continua. - Después de la correcta ejecución de la interconexión de integración continua, puede pulsar la ejecución de la interconexión para explorar los pasos completados.
{: caption="
Práctica de desplazamiento izquierda
En el entorno de desarrollo de aplicaciones seguras, el desplazamiento izquierda es una práctica que evita y detecta problemas, como defectos y vulnerabilidades de seguridad, y que ejecuta comprobaciones de conformidad en las primeras fases del proceso de entrega de software. Esta práctica de adelantar los controles de calidad en el ciclo de desarrollo incluye las siguientes prácticas:
- La ejecución, en la fase más temprana posible, de comprobaciones, en el código o en el propio repositorio, que no necesitan la imagen compilada. Estas comprobaciones impiden que el código que no respeta la conformidad se fusione en la rama maestra del repositorio. Dado que las pruebas no se recogen del pull request pipeline, su objetivo es trasladar las comprobaciones de conformidad a la fase más temprana posible del proceso de desarrollo.
- Todas las comprobaciones se ejecutan en cada una de las ejecuciones de interconexión. Si falla una comprobación, la interconexión continúa con la siguiente comprobación. Para evaluar si hay alguna anomalía en la ejecución, compruebe el paso final de la interconexión, que tiene un evaluador de interconexiones.
Los resultados de las pruebas de unidad y las exploraciones de vulnerabilidad se publican en la instancia de DevOps Insights de la cadena de herramientas. Para revisar estos resultados, pulse el mosaico DevOps Insights en la cadena de herramientas y vaya a la página Panel de control de calidad.
Para evaluar si hay alguna anomalía en la ejecución de la interconexión, compruebe el paso final de la interconexión, que tiene un evaluador de interconexiones.
Explorar la interconexión de entrega continua
Las interconexiones de integración continua y solicitud de extracción son comunes en todas las estrategias de despliegue. Los cambios en la implementación y el diseño de la interconexión de entrega continua se basan en la estrategia de despliegue seleccionada previamente en esta guía de aprendizaje.
Puede iniciar una interconexión de entrega continua de cualquiera de las maneras siguientes:
- Desencadene manualmente la interconexión de entrega continua.
- Desencadene automáticamente la interconexión de entrega continua después de cada acción de
Mergeen el repositorio de inventario. Después de la fusión, debe desencadenar manualmente la ejecución de la interconexión de entrega continua.
Hay un desencadenante Git Repos and Issue Tracking configurado para desencadenar una interconexión de entrega continua automática, pero está inhabilitado de forma predeterminada. Cuando haya promocionado un cambio, podrá habilitar este desencadenante.
Próximos pasos
Si quiere eliminar la aplicación de ejemplo que se ejecuta en Kubernetes, debe limpiar el clúster de Kubernetes:
-
Vaya a la página de inicio de Kubernetes Cluster.
-
Seleccione el clúster en el que se ejecuta la aplicación de ejemplo.
-
Pulse Panel de control de Kubernetes.
-
Desde la ubicación en la que se ejecuta la aplicación de ejemplo, seleccione espacio de nombres.
Kubernetes espacio de nombres -
Suprima los despliegues, servicios e ingresos relacionados recogidos en el espacio de nombres seleccionado.
¿Está buscando ayuda?
IBM Cloud watsonx, que funciona con la tecnología de IBM, está diseñado para ayudarle a aprender a trabajar en IBM Cloud y a crear soluciones con el catálogo de productos y servicios disponibles. Consulte Cómo obtener ayuda del asistente de IA.
Para obtener más opciones de soporte, consulte Obtención de ayuda y soporte para Continuous Delivery.
