Módulos do Skaffold no Cloud Code para VS Code

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 e backend 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?

Obter apoio técnico

Para enviar feedback, comunicar problemas no GitHub ou fazer uma pergunta no Stack Overflow.