Plataforma de orquestração declarativa orientada a eventos
Clique na imagem para saber como começar a usar o Kestra em 4 minutos.
? O que é Kestra?
Kestra é uma plataforma de orquestração de código aberto orientada a eventos que facilita fluxos de trabalho programados e orientados a eventos . Ao trazer as melhores práticas de infraestrutura como código para orquestração de dados, processos e microsserviços, você pode criar fluxos de trabalho confiáveis diretamente da IU em apenas algumas linhas de YAML.
Principais recursos:
- Tudo como código e da UI: mantenha os fluxos de trabalho como código com uma integração do Git Version Control , mesmo ao construí-los a partir da UI.
- Fluxos de trabalho programados e orientados a eventos: automatize fluxos de trabalho programados e orientados a eventos em tempo real por meio de uma definição simples
trigger
. - Interface YAML declarativa: defina fluxos de trabalho usando uma configuração simples no editor de código integrado .
- Rico ecossistema de plug-ins: centenas de plug-ins integrados para extrair dados de qualquer banco de dados, armazenamento em nuvem ou API e executar scripts em qualquer linguagem .
- UI intuitiva e editor de código: crie e visualize fluxos de trabalho diretamente da UI com realce de sintaxe, preenchimento automático e validação de sintaxe em tempo real.
- Escalável: projetado para lidar com milhões de fluxos de trabalho, com alta disponibilidade e tolerância a falhas.
- Controle de versão amigável: escreva seus fluxos de trabalho a partir do editor de código integrado e envie-os para sua ramificação Git preferida diretamente do Kestra, permitindo práticas recomendadas com pipelines de CI/CD e sistemas de controle de versão.
- Estrutura e resiliência : domine o caos e traga resiliência aos seus fluxos de trabalho com namespaces , rótulos , subfluxos , novas tentativas, tempo limite , tratamento de erros , entradas , saídas que geram artefatos na UI, variáveis , ramificação condicional , agendamento avançado , gatilhos de eventos , preenchimentos , dinâmicos tarefas , tarefas sequenciais e paralelas e pule tarefas ou gatilhos quando necessário, definindo o sinalizador
disabled
como true
.
? A definição YAML é ajustada automaticamente sempre que você faz alterações em um fluxo de trabalho na interface do usuário ou por meio de uma chamada de API. Portanto, a lógica de orquestração é sempre gerenciada de forma declarativa no código , mesmo que você modifique seus fluxos de trabalho de outras maneiras (UI, CI/CD, Terraform, chamadas de API).
Início rápido
Experimente a demonstração ao vivo
Experimente Kestra com nossa demonstração ao vivo . Nenhuma instalação necessária!
Comece localmente em 5 minutos
Inicie o Kestra no Docker
Certifique-se de que o Docker esteja em execução. Em seguida, inicie o Kestra com um único comando:
docker run --pull=always --rm -it -p 8080:8080 --user=root
-v /var/run/docker.sock:/var/run/docker.sock
-v /tmp:/tmp kestra/kestra:latest server local
Verifique nosso Guia de instalação para outras opções de implantação (Docker Compose, Podman, Kubernetes, AWS, GCP, Azure e muito mais).
Acesse a UI do Kestra em http://localhost:8080 e comece a construir seu primeiro fluxo!
Seu primeiro fluxo Hello World
Crie um novo fluxo com o seguinte conteúdo:
id : hello_world
namespace : dev
tasks :
- id : say_hello
type : io.kestra.plugin.core.log.Log
message : " Hello, World! "
Execute o fluxo e veja a saída na UI!
? Ecossistema de plug-ins
A funcionalidade do Kestra é estendida por meio de um rico ecossistema de plug-ins que permitem executar tarefas em qualquer lugar e codificar em qualquer linguagem, incluindo Python, Node.js, R, Go, Shell e muito mais. Veja como os plug-ins Kestra aprimoram seus fluxos de trabalho:
Execute em qualquer lugar:
- Execução local ou remota: execute tarefas em sua máquina local, servidores remotos via SSH ou expanda para contêineres sem servidor usando Task Runners.
- Suporte para Docker e Kubernetes: execute contêineres Docker perfeitamente em seus fluxos de trabalho ou inicie trabalhos do Kubernetes para lidar com cargas de trabalho com uso intensivo de computação.
Código em qualquer idioma:
- Suporte a scripts: escreva scripts em sua linguagem de programação preferida. Kestra oferece suporte a Python, Node.js, R, Go, Shell e outros, permitindo integrar bases de código e padrões de implantação existentes.
- Automação flexível: execute comandos shell, execute consultas SQL em vários bancos de dados e faça solicitações HTTP para interagir com APIs.
Processamento orientado a eventos e em tempo real:
- Gatilhos em tempo real: reaja a eventos de sistemas externos em tempo real, como chegadas de arquivos, novas mensagens em barramentos de mensagens (Kafka, Redis, Pulsar, AMQP, MQTT, NATS, AWS SQS, Google Pub/Sub, Azure Event Hubs ) e muito mais.
- Eventos personalizados: defina eventos personalizados para acionar fluxos com base em condições específicas ou sinais externos, permitindo fluxos de trabalho altamente responsivos.
Integrações em nuvem:
- AWS, Google Cloud, Azure: integre-se a uma variedade de serviços em nuvem para interagir com soluções de armazenamento, sistemas de mensagens, recursos de computação e muito mais.
- Processamento de big data: execute tarefas de processamento de big data usando ferramentas como Apache Spark ou interaja com plataformas analíticas como Google BigQuery.
Monitoramento e Notificações:
- Mantenha-se informado: envie mensagens para canais do Slack, notificações por e-mail ou acione alertas no PagerDuty para manter sua equipe atualizada sobre o status do fluxo de trabalho.
O ecossistema de plugins do Kestra está em constante expansão, permitindo adaptar a plataforma às suas necessidades específicas. Esteja você orquestrando pipelines de dados complexos, automatizando scripts em vários ambientes ou integrando-se a serviços em nuvem, provavelmente há um plug-in para ajudar. E se não, você sempre pode criar seus próprios plug-ins para ampliar os recursos do Kestra.
? Nota: Este é apenas um vislumbre do que os plug-ins Kestra podem fazer. Explore a lista completa em nossa página de plug-ins.
Conceitos-chave
- Fluxos: a unidade central do Kestra, representando um fluxo de trabalho composto por tarefas.
- Tarefas: unidades individuais de trabalho, como executar um script, mover dados ou chamar uma API.
- Namespaces: agrupamento lógico de fluxos para organização e isolamento.
- Triggers: cronograma ou eventos que iniciam a execução dos fluxos.
- Entradas e Variáveis: parâmetros e dados dinâmicos passados em fluxos e tarefas.
? Crie fluxos de trabalho visualmente
Kestra fornece uma UI intuitiva que permite construir e visualizar interativamente seus fluxos de trabalho:
- Interface de arrastar e soltar: adicione e reorganize tarefas no Editor de Topologia.
- Validação em tempo real: feedback instantâneo sobre a sintaxe e a estrutura do seu fluxo de trabalho para detectar erros antecipadamente.
- Preenchimento automático: sugestões inteligentes conforme você digita para escrever código de fluxo rapidamente e sem erros de sintaxe.
- Visualização de topologia ao vivo: veja seu fluxo de trabalho como um gráfico acíclico direcionado (DAG) que é atualizado em tempo real.
? Extensível e amigável ao desenvolvedor
Desenvolvimento de plug-ins
Crie plug-ins personalizados para ampliar os recursos do Kestra. Confira nosso Guia do desenvolvedor de plug-ins para começar.
Infraestrutura como código
- Controle de versão: armazene seus fluxos em repositórios Git.
- Integração CI/CD: automatize a implantação de fluxos usando pipelines CI/CD.
- Provedor Terraform: gerencie recursos Kestra com o provedor Terraform oficial.
Junte-se à comunidade
Fique conectado e obtenha suporte:
- Slack: Junte-se à nossa comunidade Slack para fazer perguntas e compartilhar ideias.
- LinkedIn: Siga-nos no LinkedIn — ao lado do Slack e do GitHub, este é nosso principal canal para compartilhar atualizações e anúncios de produtos.
- YouTube: Inscreva-se em nosso canal no YouTube para conteúdo de vídeo educacional. Publicamos novos vídeos toda semana!
- X: Siga-nos no X se você ainda estiver ativo lá.
? Contribuindo
Aceitamos contribuições de todos os tipos!
- Relatar problemas: encontrou um bug ou tem uma solicitação de recurso? Abra um problema no GitHub.
- Código de contribuição: confira nosso Guia do Colaborador para obter diretrizes iniciais e explore nossos bons primeiros problemas para tarefas para iniciantes resolverem primeiro.
- Desenvolva plug-ins: crie e compartilhe plug-ins usando nosso Guia do desenvolvedor de plug-ins.
- Contribua com nossos documentos: contribua com edições ou atualizações para manter nossa documentação de alto nível.
? Licença
Kestra é licenciado sob a licença Apache 2.0 © Kestra Technologies.
️ Fique atualizado
Dê uma estrela ao nosso repositório para se manter informado sobre os recursos e atualizações mais recentes!
Obrigado por considerar o Kestra para suas necessidades de orquestração de fluxo de trabalho. Mal podemos esperar para ver o que você construirá!