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 ```