O Skaffold é uma ferramenta de linha de comandos que facilita o desenvolvimento contínuo para aplicações nativas do Kubernetes. O Skaffold processa o fluxo de trabalho para criar, enviar e implementar a sua aplicação, e fornece bases para criar pipelines de CI/CD. O Skaffold é o motor que alimenta o Cloud Code.
Normalmente, os projetos do Skaffold começam a usar uma única configuração skaffold.yaml
para descrever como criar e implementar a aplicação. À medida que um projeto cresce, pode ser útil dividir o pipeline de aplicações em partes separadas.
O Skaffold suporta a definição de várias
dependências de configuração,
colocadas em conjunto no mesmo ficheiro skaffold.yaml
e separadas através de separadores de documentos YAML (---
) ou colocadas em ficheiros skaffold.yaml
separados que são referenciados a partir de um ficheiro skaffold.yaml
de nível superior. Uma configuração pode ser transformada num módulo atribuindo-lhe um nome através do campo .metadata.name
.
A utilização de módulos permite-lhe desenvolver e depurar partes da aplicação de forma independente. As dependências podem ser definidas entre ficheiros de configuração e módulos específicos. Para ver os passos para usar esta funcionalidade, consulte o artigo Desenvolver partes de uma aplicação de forma independente.
Depurar aplicações com módulos do Skaffold
Pode desenvolver e depurar iterativamente toda a aplicação ou um conjunto dos módulos definidos. O Skaffold gere as dependências dos módulos e a respetiva ordem de implementação.
Introdução a um exemplo de módulos do Skaffold
Para selecionar módulos para a sua aplicação, consulte o artigo Criar módulos do Skaffold selecionados e respetivas dependências.
Se não usou módulos do Skaffold e quer testar a funcionalidade com um exemplo, consulte o exemplo do livro de visitas, que é modularizado em frontend
e backend
.
Para ver um exemplo de aplicação empresarial de grande escala, desenvolvido com várias tecnologias e linguagens, e que usa módulos do Skaffold, consulte o exemplo do Bank of Anthos.
Exemplos de utilização comuns
Esta secção descreve alguns exemplos de utilização comuns que demonstram diferentes cenários de quando e como pode usar módulos no seu IDE.

Desenvolvimento de microsserviços
É um programador de frontend que trabalha principalmente no módulo frontend
. Como um microsserviço, o frontend
não tem uma dependência explícita de código ou biblioteca no repositório backend
, mas requer que o backend
seja implementado e executado no cluster.
Usa o seu projeto baseado no Skaffold que contém uma definição de módulo frontend
para implementar e depurar a partir de um IDE do Cloud Code para um cluster de desenvolvimento partilhado onde a equipa de back-end também implementa o respetivo serviço. A equipa de DevOps mantém este cluster partilhado.
Não trabalha nem depura código backend
nem atualiza as configurações do Kubernetes na maioria das vezes. O Skaffold cria e implementa outras configurações
que o frontend
requer. Configura a configuração de implementação do Cloud Code para iterar apenas no módulo frontend
.
Também pode implementar o frontend
e o backend
num cluster local para ter uma experiência iterativa mais rápida.
Depuração e desenvolvimento de microsserviços entre limites
Quando é necessário depurar vários microsserviços em conjunto, pode:
- Abra o diretório principal onde todos os subdiretórios com o código fonte dos módulos estão localizados uns em relação aos outros
- Selecione o ficheiro
skaffold.yaml
raiz para implementação (configurações) - Configure a configuração de implementação do Cloud Code para iterar apenas nos módulos
frontend
ebackend
que estão disponíveis localmente (e no respetivo módulo de configuração do Kubernetes quando existem alterações).
Também pode ter um ficheiro skaffold.yaml
raiz separado para o desenvolvimento local que inclua um servidor de dados estático.
Edição de YAML de módulos inteligentes
É um engenheiro de DevOps a criar um repositório de modelos para a equipa de programadores de microsserviços que usa módulos do Skaffold. Quer garantir que não existem erros nas definições dos módulos sem executar o Skaffold manualmente (como dependências cíclicas ou nomes de módulos não únicos). Usa IDEs do Cloud Code para editar ficheiros de configuração YAML do Skaffold.
O que se segue?
- Desenvolver partes de uma aplicação de forma independente
- Depurar uma aplicação Kubernetes
- Executar uma aplicação Kubernetes