Orchestration
Table of Contents
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
- logical grouping of all the components above
- towards High Availability and scalability
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