Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 1.43 KB

README.md

File metadata and controls

39 lines (28 loc) · 1.43 KB

ordo

  • ordo is a simplified container orchestrator written in Go. It provides a practical understanding of orchestrator concepts like task management, scheduling, and worker communication.

Requirements

  • Go (v1.16 or later)
  • Docker
  • BoltDB (v1.3.1)
  • chi (v5.0.3)
  • goprocinfo

Features

Task Management

  • Task States: Implement task states (Pending, Running, Completed, Failed).
  • Docker Integration: Start/stop Docker containers via Docker API.
  • Task Persistence: Store tasks in-memory or in BoltDB.

Worker Features

  • Task Queue: FIFO queue for processing tasks.
  • Task Execution: Run assigned tasks as Docker containers.
  • Metrics Collection: Collect CPU, memory, disk usage data. (Pending)

Manager Features

  • Task Scheduling: Basic task scheduling (Round-Robin).
  • Enhanced Scheduler: Resource-based E-PVM scheduler. (Pending)
  • Health Checks: Check task health, auto-restart on failure. (Pending)

General Features

  • Modular Design: Separate modules for tasks, workers, managers.
  • Testability: Set up automated testing. (Pending)

Limitations & Future Enhancements

  • Security: Add security measures. (Pending)
  • Service Discovery: Enable service discovery for tasks. (Pending)
  • High Availability: Implement redundancy for manager/workers. (Pending)