Módulos do Skaffold no Cloud Code para Cloud Shell

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 o aplicativo e fornece elementos básicos para criar pipelines de CI/CD. O Skaffold é o mecanismo que aciona 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 é compatível com a definição de várias dependências de configuração, colocadas juntas no mesmo arquivo skaffold.yaml e separadas usando separadores de documentos YAML (---) ou colocadas em arquivos skaffold.yaml separados referenciados em um arquivo skaffold.yaml de nível superior. Uma configuração pode ser transformada em um módulo ao atribuir um nome a ele 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
  • Selecione o arquivo raiz skaffold.yaml para implantação (configs)
  • Defina a configuração de implantação do Cloud Code para iterar somente em módulos frontend e backend disponíveis localmente (e no respectivo módulo de configuração do Kubernetes quando houver alterações).

Você também pode ter um arquivo skaffold.yaml raiz separado para desenvolvimento local que inclua um servidor de dados estáticos.

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