Introduction
Architecture
Tork is a platform that lets you run workflows (also referred to as "jobs"). A workflow is represented as a series of sequential steps (or tasks).
Jobs are typically authored in YAML format. Here's a very simple example.
# hello.yaml
---
name: hello job
tasks:
- name: say hello
image: ubuntu:mantic
run: |
echo -n hello world
- name: say goodbye
image: ubuntu:mantic
run: |
echo -n bye world
A Tork installation generally consists of the following components:
Coordinator: The Coordinator is responsible for keeping track of jobs, dishing out work to be done by Worker nodes, handling task failures, retries and other job-level details. Unlike Worker nodes, the Coordinator does not execute actual work but delegate all task execution activities to Worker instances. Coordinators are stateless and leaderless.
Worker: Responsible for executing tasks by means of a runtime (typically Docker).
Broker: Responsible for routing tasks between the Coordinator and Worker nodes.
Datastore: holds the state for tasks and jobs.
Runtime: the platform used by workers to execute tasks.