Reference Architectures
COSMOS is the best way to command and control hardware with embedded software. The hardware it can control and the configuration of the software is limitless. However, there are several "Reference Architectures" that are commonly used which describe the vast majority of use-cases for COSMOS.
Core Single Server Architecture
COSMOS Core (Open Source) deployed on a single server is most suitable for evaluation, test or development. COSMOS can be deployed on a individual computer with Windows or Mac OS via Docker Desktop. It can deployed on Linux directly using Docker on Ubuntu or Podman on RedHat.
If you deploy COSMOS Core you have to configure COSMOS yourself and build all your hardware plugins from scratch. You must rely on the COSMOS documentation and github issues instead of having direct email support from the OpenC3 team. Core configures a single user with a shared password having admin privileges. The Core license is AGPLv3 which means your users must have access to the COSMOS source code and any extensions you build into COSMOS itself.
Most Suitible for:
- Evaluation of COSMOS
- University teams
- Individual use
- Localized lab development
Advantages | Considerations |
---|---|
✅ Free (AGPLv3 license) | 🤔 No OpenC3 support |
✅ Easy to deploy | 🤔 No Users, RBAC or SSO |
✅ Easy to configure | 🤔 Limited scalability |
🤔 No Calendar or Autonomic |
Enterprise Single Server Architecture
COSMOS Enterprise deployed on a single server is most suitable for formal test, production or operations. COSMOS Enterprise can be deployed on a individual computer with Windows or Mac OS via Docker Desktop. It can deployed on Linux directly using Docker on Ubuntu or Podman on RedHat.
Enterprise comes with a number of plugins that help you jump start your development: CCSDS TC/TM/CFDP, SCPI, SNMP, Gems, Protocol Buffers, gRPC, etc. Enterprise comes with email support from the OpenC3 team. Enterprise includes users, RBAC (role based access control) and SSO (single sign-on) through Keycloak. The Enterprise license is Commercial which means you can build proprietary COSMOS extensions and not be required to give your users access to the source code.
Most Suitible for:
- Quickly connecting to existing hardware via SCPI, SNMP, Gems, gRPC, etc
- Controlling hardware utilizing CCSDS TC, TM, CFDP
- Operating cFS (Core Flight System)
- Formal test with user attribution
- Operations for 1 or more satellites
Advantages | Considerations |
---|---|
✅ OpenC3 Supported | 🤔 Limited scalability |
✅ Commercial License | |
✅ Library of existing plugins | |
✅ Users with RBAC and SSO | |
✅ Calendar and Autonomic | |
✅ Easy to deploy | |
✅ Easy to configure |
Enterprise Cloud Architecture (High Reliability / High Availability)
COSMOS Enterprise deployed in the cloud (public or private) is most suitable for operations of satellite constellations or as a satellite operations center. In addition to the benefits listed under the Enterprise Single Server Architecture, Enterprise comes with cloud scripts to help create a reference deployment (EKS, GKE, etc). Enterprise also comes with helm charts to deploy COSMOS in Kubernetes. Running COSMOS in Kubernetes is what achieves high reliability and high availability.
Most Suitible for:
- Operating a satellite constellation (10-1000 satellites)
- Running a satellite ops center which supports many different satellite buses / payloads
Advantages | Considerations |
---|---|
✅ OpenC3 Supported | 🤔 Cloud configuration / complexity |
✅ Commercial License | 🤔 Kubernetes management |
✅ Library of existing plugins | 🤔 Public cloud costs |
✅ Users with RBAC and SSO | |
✅ Calendar and Autonomic | |
✅ Cloud configuration scripts | |
✅ Helm charts |