Módulos de Skaffold

Skaffold es una herramienta de línea de comandos que facilita el desarrollo continuo para las aplicaciones nativas de Kubernetes. Skaffold controla el flujo de trabajo para compilar, enviar e implementar tu aplicación, y proporciona componentes básicos que permiten crear canalizaciones de CI/CD. Skaffold es el motor que impulsa Cloud Code.

Los proyectos de Skaffold suelen comenzar a usar una sola configuración skaffold.yaml para describir cómo se compila e implementa la aplicación. A medida que un proyecto crece, puede ser útil dividir la canalización de la aplicación en partes diferentes.

Skaffold admite la definición de varias dependencias de configuración, ya sea colocadas en el mismo archivo skaffold.yaml y separadas por separadores de documentos YAML (---), o bien ubicadas en archivos skaffold.yaml independientes a los que se hace referencia desde un archivo skaffold.yaml de nivel superior. Una configuración se puede convertir en un módulo si le asignas un nombre mediante el campo .metadata.name.

El uso de módulos te permite desarrollar y depurar partes de la aplicación de forma independiente. Las dependencias se pueden definir entre archivos de configuración y módulos específicos. Si quieres conocer los pasos para usar esta función, consulta Desarrolla partes de una aplicación de forma independiente.

Depura aplicaciones con módulos de Skaffold

Puedes desarrollar y depurar de forma iterativa toda la aplicación o un conjunto de módulos definidos. Skaffold administra las dependencias del módulo y su orden de implementación.

Comienza a usar una muestra de módulos de Skaffold

Si quieres seleccionar módulos para tu aplicación, consulta Cómo compilar módulos seleccionados de Skaffold y sus dependencias.

Si todavía no usaste los módulos de Skaffold y deseas probar la función con una muestra, consulta la muestra del libro de visitas, que se modulariza en frontend y backend.

Para ver una muestra de una aplicación empresarial grande, desarrollada con varias tecnologías y lenguajes, y los módulos Skaffold, consulta la muestra del Banco de Anthos.

Casos prácticos habituales

En esta sección, se describen algunos ejemplos comunes de casos prácticos en los que se demuestran diferentes situaciones en las que se puede usar y usar módulos en tu IDE.

Desarrollo de microservicios

Eres un desarrollador de frontend que trabaja principalmente en el módulo frontend. Como microservicio, frontend no tiene un código explícito o una dependencia de biblioteca en el repositorio backend, pero requiere que backend se implemente y ejecute en el clúster.

Usa tu proyecto basado en Skaffold que contiene una definición de módulo frontend para implementar y depurar desde un IDE de Cloud Code en un clúster de desarrollo compartido, en el que el equipo de backend también implementa su servicio. El equipo de DevOps mantiene este clúster compartido.

La mayoría de las veces, no trabajas ni depuras el código de backend ni actualizas la configuración de Kubernetes. Skaffold compila e implementa otras configuraciones que requiere frontend. Establece la configuración de implementación de Cloud Code para que solo itere en el módulo frontend.

También puedes implementar frontend y backend en un clúster local para obtener una experiencia iterativa más rápida.

Depuración y depuración de microservicios entre límites

Cuando se deben depurar varios microservicios juntos, podrías hacer lo siguiente:

  • Abre el directorio superior donde se encuentran todos los subdirectorios con código fuente de módulos en relación entre sí.
  • Seleccionar el archivo skaffold.yaml raíz para la implementación (archivos de configuración)
  • Configura los ajustes de implementación de Cloud Code para que solo iteren en los módulos frontend y backend que estén disponibles de forma local (y su módulo de configuración respectivo de Kubernetes cuando haya cambios allí).

También puedes tener un archivo skaffold.yaml raíz distinto para el desarrollo local que incluya un servidor de datos estáticos.

Edición de YAML del módulo inteligente

Imagina que eres ingeniero de DevOps y creas un repositorio de plantillas para el equipo de desarrolladores de microservicios que usa módulos de Skaffold. Asegúrate de que no haya errores en las definiciones de módulos sin ejecutar Skaffold de forma manual (como dependencias cíclicas o nombres de módulos que no sean únicos). Usa los IDE de Cloud Code para editar los archivos de configuración YAML de Skaffold.

Próximos pasos