Módulos de Skaffold en Cloud Code para VS Code

Skaffold es una herramienta de línea de comandos que facilita el desarrollo continuo de aplicaciones nativas de Kubernetes. Skaffold gestiona el flujo de trabajo de compilación, envío e implementación de tu aplicación, y proporciona elementos básicos para crear flujos de procesamiento de CI/CD. Skaffold es el motor que impulsa Cloud Code.

Los proyectos de Skaffold suelen empezar usando una sola configuración de skaffold.yaml para describir cómo compilar y desplegar la aplicación. A medida que un proyecto crece, puede ser útil dividir la canalización de la aplicación en partes independientes.

Skaffold permite definir varias dependencias de configuración, que se pueden colocar juntas en el mismo archivo skaffold.yaml y separarse mediante separadores de documentos YAML (---) o bien 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 asignándole un nombre mediante el campo .metadata.name.

Los módulos te permiten desarrollar y depurar partes de la aplicación de forma independiente. Se pueden definir dependencias entre archivos de configuración y módulos específicos. Para ver los pasos que debes seguir para usar esta función, consulta Desarrollar partes de una aplicación de forma independiente.

Depurar 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 gestiona las dependencias de los módulos y su orden de implementación.

Empezar a usar un ejemplo de módulos de Skaffold

Para seleccionar módulos para tu aplicación, consulta Compilar módulos de Skaffold y sus dependencias.

Si no has usado módulos de Skaffold y quieres probar la función con un ejemplo, consulta el ejemplo Guestbook, que se ha modularizado en frontend y backend.

Para ver un ejemplo de una aplicación empresarial de gran tamaño desarrollada con varias tecnologías y lenguajes, y que usa módulos de Skaffold, consulta el ejemplo de Bank of Anthos.

Casos prácticos habituales

En esta sección se describen algunos ejemplos de casos prácticos habituales que muestran diferentes situaciones en las que puedes usar módulos en tu IDE y cómo hacerlo.

Desarrollo de microservicios

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

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

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

También puedes implementar tanto frontend como backend en un clúster local para disfrutar de una experiencia iterativa más rápida.

Desarrollo y depuración de microservicios entre límites

Si necesitas depurar varios microservicios a la vez, puedes hacer lo siguiente:

  • Abre el directorio principal donde se encuentran todos los subdirectorios con el código fuente de los módulos entre sí.
  • Selecciona el archivo raíz skaffold.yaml para la implementación (configuraciones).
  • Configura la configuración de despliegue de Cloud Code para que solo se itere en los módulos frontend y backend que estén disponibles de forma local (y en su módulo de configuración de Kubernetes correspondiente cuando haya cambios).

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

Editar YAML de módulos inteligentes

Eres un ingeniero de DevOps que está creando un repositorio de plantillas para el equipo de desarrolladores de microservicios que usa módulos de Skaffold. Quieres asegurarte de que no haya errores en las definiciones de los módulos sin ejecutar Skaffold manualmente (por ejemplo, dependencias cíclicas o nombres de módulos no únicos). Utilizas los IDEs de Cloud Code para editar los archivos de configuración YAML de Skaffold.

Siguientes pasos

Obtener asistencia

Para enviar comentarios o informar de problemas, visita GitHub o haz una pregunta en Stack Overflow.