O Skaffold é uma ferramenta de linha de comando que facilita o desenvolvimento contínuo de aplicativos nativos do Kubernetes. O Skaffold lida com o fluxo de trabalho para criar, enviar e implantar seu aplicativo e fornece elementos básicos para criar pipelines de CI/CD. O Skaffold é o mecanismo que capacita o Cloud Code.
Os projetos do Skaffold geralmente começam a usar uma única configuração de skaffold.yaml
para descrever como criar e implantar o aplicativo. As medida que um
projeto cresce, pode ser útil dividir o pipeline de aplicativo em
partes separadas.
O Skaffold dá suporte à definição de vários
dependências de configuração,
são colocados juntos no mesmo arquivo skaffold.yaml
e separados usando YAML
separadores de documentos (---
) ou colocados em um skaffold.yaml
separado
referenciados em um arquivo skaffold.yaml
de nível superior. Um
pode ser transformada em um módulo. Basta dar um nome a ele usando a
.metadata.name
.
O uso de módulos permite desenvolver e depurar partes do aplicativo de maneira independente. As dependências podem ser definidas entre arquivos de configuração e módulos específicos.
Como depurar aplicativos com módulos Skaffold
Você pode desenvolver e depurar iterativamente todo o aplicativo ou um conjunto de módulos definidos. O Skaffold gerencia as dependências do módulo e a ordem de implantação delas.
Primeiros passos com uma amostra dos módulos do Skaffold
Para selecionar módulos para seu aplicativo, consulte Como desenvolver partes de um aplicativo de maneira independente.
Se você não tiver usado módulos Skaffold e quiser testar o recurso
com uma amostra, consulte o Exemplo de livro de visitas, que é modularizado em frontend
ebackend
de dados.
Para uma amostra grande de aplicativo empresarial, desenvolvida usando várias tecnologias e linguagens, e usando módulos Skaffold, consulte a amostra do Bank of Anthos.
Casos de uso comuns
Esta seção descreve alguns exemplos de casos de uso comuns que demonstram cenários diferentes de quando e como você pode usar módulos no seu ambiente de desenvolvimento integrado.
Desenvolvimento de microsserviço
Você é um desenvolvedor de front-end que trabalha principalmente no módulo frontend
. Como um microsserviço, frontend
não tem uma dependência explícita do código ou
da biblioteca no repositório backend
, mas é necessário que backend
seja implantado e executado
no cluster.
Use o projeto baseado no Skaffold que contém uma definição de módulo frontend
para implantar e depurar de um ambiente de desenvolvimento integrado do Cloud Code para um cluster de desenvolvimento compartilhado em que a equipe de back-end também implanta o serviço. A equipe de DevOps mantém esse cluster compartilhado.
Você não trabalha nem depura o código backend
nem atualiza as configurações do Kubernetes na maioria das vezes. O Skaffold cria e implanta outras configurações
que a frontend
exige. Você define a configuração de implantação do Cloud Code para iterar apenas no módulo frontend
.
Também é possível implantar frontend
e backend
em um cluster local para ter uma experiência iterativa mais rápida.
Desenvolvimento e depuração de microsserviços entre limites
Quando vários microsserviços precisam ser depurados juntos, é possível:
- Abra o diretório pai em que todos os subdiretórios com o código-fonte dos módulos estão localizados um em relação ao outro
- Selecione o arquivo
skaffold.yaml
raiz para implantação (configurações) - Defina a configuração de implantação do Cloud Code para iterar somente em módulos
frontend
ebackend
disponíveis localmente (e no respectivo módulo de configuração do Kubernetes quando houver alterações).
Também é possível ter um arquivo skaffold.yaml
raiz separado para desenvolvimento
local que inclua um servidor de dados estático.
Edição de YAML do módulo inteligente
Você é engenheiro de DevOps e cria um repositório de modelos para a equipe de desenvolvedores de microsserviços que usa módulos Skaffold. Você quer garantir que não haja erros nas definições do módulo sem executar o Skaffold manualmente, como dependências cíclicas ou nomes de módulo não exclusivos. Use os ambientes de desenvolvimento integrado do Cloud Code para editar arquivos de configuração YAML do Skaffold.