Este tópico descreve os termos relacionados a pipelines, incluindo pipeline, modelo de pipeline, tarefa, modelo de tarefa e contexto.
Visão geral
O Serverless Application Center utiliza pipelines e modelos de pipeline. Um pipeline descreve uma execução e seu resultado ao referenciar um modelo de pipeline e fornecer o contexto de execução. O modelo de pipeline define o processo de execução por meio da descrição das tarefas e das dependências entre elas.
Tarefas e modelos de tarefa descrevem as etapas de execução e os métodos correspondentes nos pipelines do Serverless Application Center. Uma tarefa fornece o contexto de execução que detalha uma etapa específica do pipeline e seu resultado ao referenciar um modelo de tarefa. O modelo de tarefa especifica os métodos de execução e permite predefinir o contexto para determinar como executar as tarefas.
O uso de tarefas e modelos de tarefa elimina a necessidade de descrever a execução de cada tarefa diretamente no pipeline. Esses conceitos simplificam a definição de pipelines e facilitam a criação de pipelines personalizados.
Pipeline
Um pipeline representa a execução de um modelo de pipeline. Por exemplo, se você configurar uma regra de gatilho para um repositório de código, o sistema realizará uma operação de build e release a cada evento de push. Sempre que um usuário envia código para o repositório, o Serverless Application Center cria um objeto de pipeline para registrar detalhadamente a execução, incluindo seus resultados. A figura a seguir mostra um exemplo.

Modelo de pipeline
Um modelo de pipeline descreve um cenário de integração contínua e entrega contínua (CI/CD), como o cenário de build e release. Esse modelo especifica o fluxo de um cenário específico de CI/CD ao definir as tarefas e as dependências entre elas. Modelos de pipeline são reutilizáveis. Por exemplo, em um cenário de build e implantação, é necessário compilar um produto com base no código do repositório e liberá-lo na nuvem após aprovação. A figura a seguir ilustra as dependências entre as tarefas de build, aprovação e implantação.

Tarefa
As tarefas são os componentes principais dos pipelines. Cada tarefa descreve uma etapa de execução dentro do pipeline e seu respectivo resultado. Na maioria dos casos, os usuários não executam uma tarefa isoladamente. O sistema gera as tarefas quando executa o pipeline. Por exemplo, ao acionar um pipeline de build e implantação, três tarefas independentes são geradas em sequência: build, aprovação e implantação. A tarefa de build é executada de forma autônoma para compilar produtos com base no código do repositório.
Os resultados da execução das tarefas podem ser gerados como textos ou estruturas. Arquivos e imagens produzidos devem ser salvos durante a execução da tarefa.
Uma tarefa pode ser executada em um ambiente sandbox da Alibaba Cloud ou na conta atual, dependendo das especificações do modelo e do contexto de execução.

Modelo de tarefa
Um modelo de tarefa descreve os métodos de execução das tarefas e oferece a opção de predefinir o contexto para especificar como elas serão executadas. O Serverless Application Center fornece modelos de tarefa comuns, como tarefas de aprovação, implantação e execução personalizada. Você também pode criar um novo modelo para implementar lógica personalizada. Os modelos de tarefa simplificam a descrição do pipeline.
Contexto de execução
Os contextos de execução influenciam a forma como pipelines e tarefas são executados e funcionam como entradas para ambos. Quando um evento Git que atende a condições específicas é gerado ou aciona pipelines, o sistema cria um objeto de pipeline. O contexto do gatilho é parametrizado e transmitido ao contexto de execução.
Durante a execução do pipeline, as tarefas são geradas e executadas. O mecanismo de execução mescla o contexto de execução do pipeline (ctx_pipeline) com o contexto de execução predefinido no modelo de pipeline (ctx_pipelinetemplate) para gerar um novo contexto, que servirá como contexto de execução da tarefa (ctx_task). Durante a execução de uma tarefa, o mecanismo mescla o contexto de execução da tarefa com o contexto de execução do modelo de tarefa (ctx_tasktemplate), resultando no contexto de execução final da tarefa (ctx).
Se o operador + for usado para descrever a ação de mesclagem, a fusão do contexto de execução ctx_1 no contexto de execução ctx_2 pode ser registrada como ctx_1+ctx_2. A lógica de mesclagem anterior pode ser descrita como ctx_task=ctx_pipeline+ctx_pipelinetemplate e ctx=ctx_task+ctx_tasktemplate. Também é possível descrever essa lógica como ctx=ctx_pipeline+ctx_pipelinetemplate+ctx_tasktemplate. A figura a seguir apresenta os detalhes.

A ação de mesclagem é explicitamente definida no Serverless Application Center. O objeto resultante é um objeto JSON, e o padrão de implementação da mesclagem segue o JSON Merge Patch. Por exemplo, ctx_1+ctx_2 indica que os dados em ctx_1 têm prioridade maior. Os dados em ctx_2 são sobrescritos e um novo objeto JSON é gerado.
O comportamento de mesclagem não suporta a propriedade comutativa. Por exemplo, ctx_1+ctx_2 não é igual a ctx_2+ctx_1. ctx_1+ctx_2 especifica que ctx_1 é mesclado em ctx_2, enquanto ctx_2+ctx_1 especifica que ctx_2 é mesclado em ctx_1. A figura a seguir mostra o comportamento e os resultados de cada ação.

Ao executar uma tarefa, o sistema mescla o contexto de execução da tarefa com o contexto predefinido no modelo e o utiliza como contexto de execução final. O nó onde a tarefa está localizada recebe uma solicitação contendo o contexto de execução e executa a lógica correspondente com base nesse contexto.
