O Skaffold é uma ferramenta de linha de comando que facilita o desenvolvimento contínuo para 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 oferece suporte à definição de várias
dependências de configuração,
colocadas no mesmo arquivo skaffold.yaml
e separadas com separadores de documentos
YAML (---
) ou separadas. Arquivos skaffold.yaml
separados que são referenciados em um arquivo skaffold.yaml
de nível superior. Uma
configuração pode ser transformada em um módulo, basta dar um nome a ela usando o
campo .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. Para saber as etapas de uso desse recurso, consulte Como desenvolver partes de um aplicativo de maneira independente.
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 o aplicativo, consulte Como criar módulos selecionados do Skaffold e as respectivas dependências.
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
- Selecionar o arquivo raiz
skaffold.yaml
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.
A seguir
- Como desenvolver partes de um aplicativo de forma independente
- Como depurar um aplicativo do Kubernetes
- Como executar um aplicativo do Kubernetes