Orchestration

See Container

1. Abstract

  • provisioning automation for deployment, scaling and management of resources.
  • said resources may be defined by conceptual combinations of compute, storage and networking resources.

2. Overview

An orchestrator's interpretation may be enabled via following generic terminology:

2.1. Task

  • smallest unit of work, usually run in a container.
  • defined by a set of specifications:
    • resource requirements (compute, storage (disk, memory))
    • failure policy (restart, etc)
    • metadata (names, tags, book keeping stuff)

2.2. Job

  • An aggregation of tasks
  • specifies details at a higher level than a task
    • tasks that make up a job
    • which data centers should run it
    • number of replications
    • failure policy and further types

2.3. Scheduler

  • schedules tasks in a job
  • decision making component
    • checkout scheduling algorithms
    • score candidates based on job compatibility
    • allocate job to the best machine at the moment

2.4. Manager

  • control plane : brains
  • orchestrates the working of all components discussed here
  • global metrics, logging, tracking etc
  • a basic manager should be able to:
    • accept user requests to start/stop tasks
    • schedule tasks onto workers
    • track tasks, their states, and their address

2.5. Worker

  • runs tasks assigned to it
  • local metrics, tracking, logging, health for manager's log collation
  • supply local task stats and meta-data for manager's meta-data collation

2.6. Cluster

2.7. Interface (CLI atleast)

  • query and command the orchestrator
  • the internal interface for how the above interact can also be included in the design spec of this component
  • see Application Programming Interface
Tags::cs: