Fluxo de trabalho de motor para scripters devops: Vazão

Flowpipe possibilita a criação de fluxos de trabalho complexos e altamente paralelos de forma declarativa, utilizando a linguagem de configuração padrão devops, HCL.

Se optar por configurar sua infraestrutura por meio de código, é importante que a automação do seu fluxo de trabalho siga a mesma abordagem. É dessa forma que o Flowpipe opera. Você pode definir fluxos de trabalho utilizando HCL (HashiCorp Configuration Language) e executá-los por meio de um único binário, o qual pode ser implantado localmente, na nuvem ou em qualquer pipeline CI/CD. O Flowpipe possui os mesmos elementos arquitetônicos presentes em outras ferramentas de fluxo de trabalho, como pipelines, etapas, gatilhos e controle de fluxo, além de integrar-se com as funcionalidades esperadas nessa categoria de ferramentas.
Porém, isso não se trata de ClickOps. Não se trata de utilizar uma ferramenta de diagramação para criar integrações. As definições de canalização são elementos de código que residem em repositórios, sendo tratados como parte essencial do ecossistema de software atual, controlados por versões e criados de forma colaborativa.
Esses sistemas de encadeamento podem coordenar processos usando diferentes abordagens. Se você quer acompanhar questões em aberto no GitHub e depois informar no Slack, existem várias formas de coletar os dados do GitHub para compartilhar no Slack.
- Em um estágio da sequência de processamento, utilize a função list_issues do pacote GitHub, que engloba uma etapa de requisição HTTP para acessar a API do GitHub.
- Em um simples passo de pesquisa, utilize o plugin GitHub do Steampipe para verificar as questões em aberto em um repositório.
- Em uma fase de desenvolvimento de função, crie um código em Python ou JavaScript que seja adequado para ser utilizado com AWS-Lambda e que tenha a finalidade de acessar a API do GitHub.
- Em uma fase do processo, coloque o GitHub CLI em um contêiner e execute a lista de problemas do gh dessa forma.
Por que tantas opções diferentes são oferecidas? O antigo princípio do Perl de que “há mais de um jeito de fazer” também se aplica aqui. Fluxopipe é uma versão moderna da ideia de “cola de produtos para a Internet”: um conjunto personalizável de ferramentas úteis que se complementam. Ao realizar uma integração específica, escolha as opções mais adequadas para esse contexto, que aproveitem recursos já existentes ou que sejam mais práticas. Não há impasses. Sempre há uma maneira de concluir a tarefa ao navegar por um cenário complexo de nuvens e serviços interconectados.
Podes exibir-me o código, por favor?
Aqui estão quatro métodos para obter dados sobre questões no GitHub.
Enumere dificuldades encontradas no GitHub por meio das integrações das bibliotecas do GitHub e Slack disponíveis no Flowpipe.
Os módulos de fluxo oferecem pipelines reutilizáveis que contam com módulos de biblioteca que suportam operações como listar problemas do GitHub e enviar notificações para o Slack. Assim, é possível empregar essas bibliotecas em etapas específicas do pipeline.
A documentação dos mods do GitHub e Slack apresenta os diferentes fluxos de trabalho disponíveis, juntamente com os requisitos e opções de cada um. A utilização dos mods Flowpipe disponíveis é fácil, assim como a criação e utilização de seus próprios fluxos de trabalho.
Enumerar as questões do GitHub utilizando a extensão GitHub do Steampipe.
Flowpipe não requer o Steampipe, mas ficará contente em utilizá-lo. Combinar os dois proporciona um grande poder. O plugin do GitHub é apenas um dos vários recursos disponíveis para acessar uma variedade de dados, todos organizados como tabelas que podem ser consultadas com SQL.
Aqui, basta ter uma string de conexão. Se você se conectar ao Steampipe, poderá acessar seus plugins, mas se os dados que deseja estão em outro banco de dados, é possível consultá-los usando SQL.
Enumere as dificuldades do GitHub por meio de uma função que seja adequada para Lambda.
E se não houver um módulo de biblioteca ou plugin Steampipe disponível para a sua situação? Uma alternativa é invocar uma função dentro de um fluxo de função.
Aqui está a tarefa.
Essas funções podem ser criadas em Python ou JavaScript e são suportadas pelas funções AWS Lambda, sendo orientadas a eventos, sem estado e de curta duração. Em comparação com as funções AWS Lambda, são mais simples de desenvolver e testar. É possível realizar edições em tempo real nas funções, pois o Flowpipe detecta e aplica automaticamente as alterações feitas.
Utilize o GitHub CLI para listar os problemas do GitHub.
As CLIs são essenciais para a integração do DevOps, podendo ser empacotadas em contêineres e utilizadas em uma etapa específica do processo.
Essa afirmação pode estar exagerada neste contexto, porém a habilidade de empregar comandos de contêineres dessa maneira assegura alta flexibilidade e portabilidade.
Por qual motivo optar pela linguagem de configuração da HashiCorp?
A linguagem de configuração HashiCorp (HCL) é amplamente reconhecida pelos profissionais que a utilizam para descrever configurações no Terraform. No entanto, ela se mostra adequada para diversos fluxos de trabalho. No cerne de seu modelo de execução está o grafo acíclico direcionado (DAG), que define a sequência de operações com base nas dependências dos recursos, diferentemente de muitas linguagens de script que exigem a gestão explícita dessas dependências.
Se o passo seguinte em um fluxo de trabalho está relacionado à saída do passo anterior, o Flowpipe segue as etapas de forma implícita, com confiança implícita também. Os passos do fluxo de trabalho que não dependem de outros passos são executados automaticamente em paralelo, sem necessidade de sintaxe especial. Isso permite a criação de fluxos de trabalho complexos e altamente paralelos de forma declarativa, facilitando a leitura e escrita. Por exemplo, pode-se ter um passo que itera sobre uma lista de usuários e utiliza um passo http para chamar uma API para cada usuário.
Devido às eventualidades que podem surgir, a abordagem direta da Flowpipe também abrange a forma como lida com erros e tentativas de novo.
Geralmente é necessário descompactar os resultados de uma etapa em um pipeline, depois fazer a transformação dos dados para serem usados na etapa seguinte. A Flowpipe oferece suporte a funções HCL compatíveis com Terraform, incluindo funções de coleta que operam com listas e mapas.
Aqui é onde você encontra o resultado do comando flowpipe pipeline run get_astronauts.

Ambos os métodos são maneiras equivalentes de percorrer a lista de mapas fornecida pela API e obter o campo de nomes de cada um. A primeira abordagem emprega a expressão versátil “para”, que funciona com listas, conjuntos, tuplas, mapas e objetos. Já o segundo método produz um resultado igual utilizando a expressão splat, que facilita o acesso aos campos dentro dos elementos de listas, conjuntos e tuplas.
Agenda, atividades programadas e elementos que desencadeiam ações.
Assim como ocorre com outros motores de processos de trabalho, é possível habilitar um fluxo de trabalho pipeline em um cronograma definido.
No entanto, é importante agir rapidamente diante de situações como atualizações de código, alterações na infraestrutura ou mensagens no Slack. Portanto, o Flowpipe oferece um mecanismo de acionamento por HTTP para responder a um webhook de entrada e executar um fluxo de trabalho.
Para empregar gatilhos, inicie o Flowpipe em modo servidor.
A região Goldilocks
Flowpipe está localizado em um ponto intermediário entre ferramentas como Zapier ou IFTTT, que não exigem codificação para tarefas simples, e ferramentas como N8N ou moinho de vento, que podem lidar com tarefas complexas, mas demandam grande conhecimento de programação. Os usuários podem definir pipelines, etapas e gatilhos usando a linguagem de configuração padrão devops: HCL. Se necessário, é possível aprimorar esse código com SQL, Python, JavaScript, bash ou qualquer outra linguagem que possa ser empacotada em um contêiner.
Você gerencia todos esses recursos por meio de um modelo de execução integrado em um único arquivo executável que pode ser usado tanto como uma interface de linha de comando (CLI) quanto como um servidor que programa tarefas e recebe webhooks. Assim, é possível executar esse arquivo executável localmente ou implantá-lo em qualquer ambiente de nuvem ou em um pipeline de integração e entrega contínua (CI/CD).
Para iniciar, faça o download da ferramenta, verifique os mods e amostras disponíveis na biblioteca e siga as instruções do tutorial.
O estilo de declaração da Flowpipe será adotado por scripters devops? Descubra como ele opera. Se você estiver interessado em colaborar com o mecanismo licenciado pela Flowpipe AGPL ou mods licenciados pelo Apache, teremos prazer em receber solicitações de colaboração!