Skaffold es una herramienta de línea de comandos que facilita el desarrollo continuo para aplicaciones nativas de Kubernetes. Skaffold controla el flujo de trabajo para compilar, enviar y implementa tu aplicación y proporciona componentes básicos para crear canalizaciones de CI/CD. Skaffold es el motor que impulsa Cloud Code.
Los proyectos de Skaffold suelen comenzar a usar una única configuración de skaffold.yaml
para describir cómo compilar e implementar la aplicación. A medida que un proyecto crece, puede ser útil dividir la canalización de la aplicación en partes separadas.
Skaffold admite la definición de múltiples
dependencias de configuración
colocados en el mismo archivo skaffold.yaml
y separados con YAML
separadores de documentos (---
), o bien colocarlos en skaffold.yaml
separados
a los que se hace referencia en un archivo skaffold.yaml
de nivel superior. R
configuración se puede convertir en un módulo dándole un nombre mediante la
.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.
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
A fin de seleccionar módulos para tu aplicación, consulta Desarrolla partes de una aplicación de manera independiente.
Si no usaste módulos de Skaffold y quieres probar la función con una muestra, consulta Muestra del libro de visitas, que se modulariza en frontend
y backend
.
Para ver una muestra de aplicaciones empresariales grandes, que se desarrolló con varios lenguajes y tecnologías, y el uso de módulos de Skaffold, consulta la muestra de Bank of Anthos.
Casos de uso habituales
En esta sección se describen algunos ejemplos de casos de uso comunes que demuestran diferentes situaciones de cuándo y cómo puedes usar módulos en tu IDE.
Desarrollo de microservicios
Eres un desarrollador de frontend que trabaja en su mayoría en el módulo frontend
. Como microservicio, frontend
no tiene un código explícito ni una dependencia de biblioteca en el repositorio backend
, pero requiere que backend
se implemente y se 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 a 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.
No trabajas ni depuras el código backend
, tampoco actualizas la configuración de Kubernetes la mayor parte del tiempo. Skaffold compila e implementa otras opciones de configuración que requiere frontend
. Puedes establecer 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.
Desarrollo y depuración de microservicios entre límites
Cuando sea necesario depurar varios microservicios a la vez, puedes hacer lo siguiente:
- Abre el directorio superior en el que se ubican todos los subdirectorios con código fuente de módulos relacionados entre sí.
- Selecciona el archivo raíz
skaffold.yaml
para la implementación (configuración). - Configura la implementación de Cloud Code para iterar solo en los módulos
frontend
ybackend
que están disponibles de forma local (y su módulo de configuración de Kubernetes correspondiente cuando hay cambios allí).
También podrías tener un archivo skaffold.yaml
raíz por separado para el desarrollo local que incluya un servidor de datos estáticos.
Edita YAML de módulo inteligente
Eres un ingeniero DevOps que compila un repositorio de plantillas para el equipo de desarrolladores de microservicios que usa módulos de Skaffold. Deseas asegurarte 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ódulo que no son únicos). Usas IDE de Cloud Code para editar archivos de configuración YAML de Skaffold.