github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/design/orchestration/README.md (about)

     1  ### Abstract
     2  
     3  How to deploy Heeus application into some Heeus federation
     4  
     5  ### Principles
     6  
     7  - No intermediate package managers like artifactory, jfrog etc.
     8  - Application is deployed using Application Images (AppImage) + Deployment Descriptor (Deployment)
     9  - AppImage presents on every server node (is downloaded by Agent)
    10  - Application is executed by Application Partitions
    11  
    12  ### Best practices
    13  
    14  - [Swarm](10-review-existing-1-swarm.md)
    15  - [Nomad](10-review-existing-2-nomad.md)
    16  - [K8s](10-review-existing-3-k8s.md)
    17  - [Google: Borg, Omega, and Kubernetes](google/README.md)
    18  
    19  ### Concepts
    20  
    21  - [Deployment Artifacts](#deployment-artifacts)
    22  - [Deployment](#deployment)
    23  - [Agents](#agents)
    24  
    25  ### Detailed design
    26  
    27  - [Application Partition Deployment](app-deployment-2.md)
    28  
    29  ### Deployment Artifacts
    30  - Deployment (Deployment Descriptor, Дескриптор развертывания)
    31  - AppImage
    32  
    33  ```mermaid
    34  erDiagram
    35    Deployment ||..|| AppImage : "has a reference to"
    36    AppImage ||..|{ Package : "has a copy of"
    37    Package |{..|| Module: "is kept in"
    38    Module |{..|| Repository: "is kept in"
    39  
    40  ```
    41  
    42  ### Job
    43  
    44  ```mermaid
    45  erDiagram
    46    Job ||..|{ Group : "has"
    47    Group ||..|{ Task : "has"
    48    Group |{..|| Host : "tasks are placed (colocated)  on the same"
    49  
    50    Group{
    51      numReplicas int "number of desired replicas"
    52    }
    53  
    54    Task{
    55      driver string  "AppPartition, docker, exec, java"
    56      config map "driver-specific, image = 'hashicorp/web-frontend'"
    57      env map "DB_HOST = 'db01.example.com'"
    58      resources map "cpu  = 500 #MHz, memory = 1024 #MB"
    59    }
    60  ```
    61  ### Agents
    62  ```mermaid
    63  erDiagram
    64    Job ||..|{ Group : "has"
    65    Group ||..|{ Task : "has"
    66    Group ||..|{ Replica : "scheduled to"
    67    Replica || .. |{ Scheduler : "scheduled by"
    68    Replica |{ .. || Agent: "executed by"
    69    Replica |{ .. || Host: "scheduled to"
    70    Agent || .. || HostAgent: "can be"
    71    Agent || .. || VVMAgent: "can be"
    72    Host ||..|| HostAgent: "runs one"
    73    Host ||..|| VVM: "runs one"
    74    VVM ||..|| VVMAgent: "has one"
    75    HostAgent ||..|{ Executable: "controls"
    76    HostAgent ||..|{ Container: "controls"
    77    VVMAgent ||..|{ AppPartition: "controls"
    78    Executable ||..|| VVM : "can be"
    79  ```