Current Status:
- AWS Ground Station
- Initial conversation with AWS has identified basic components and setup for an AWS ground station deployment.
- Need to further investigate getting access to playground/testing & deployment resources, investigate service options, and determine the validity of deployment architectures.
- For instance, what data rates can be expect? How does this influence the viability of various database options, and their requisite costs.
- Local Ground Station
- Deployment will be self managed, using local or cloud resources as we see fit.
- Component selection for hardware and software is underway, with general architecture already mapped out.
- Already know options for command and data management services, fault handlers, radio controllers, etc.
- Computers available as test servers, know what needs to be on-prem vs. in a rack in the lab.
- Investigating selection of tooling and services, such as containerization & virtualization softwares.
Goals:
- Develop a strong background in the required tools and services, such as messaging & database engines, to ensure that we can more accurately proceed with selection and implementation.
- Develop local models of ground station functionality, serving as a proof-of-concept for the approach and to identify issues sooner.
Tasks:
Databases Investigation
Why: Data storage will be necessary for several aspects of uplink and downlink, such as queuing up tasks, streaming data for real time observation, in-depth data analysis, fault analysis, and more. Different databases have different latencies, fault redundancies, document types, and we need to find options which fit our needs.
Known Options: TimescaleDB, Cassandra, MongoDB (More!)
Deliverable:
- Document working with this database and it’s capabilities. Some example points of interest are:
- What query language does it use?
- What redundancies does it have?
- What latencies do we expect?
- What are some common usages of it?
- Develop a reproducible test of this database, using Docker and Python. We should be able to initialize and configure the DB, and also query it: adding and retrieving data and schemas.
- If the database is duplicated and supports replication, we need to test this and determine how to get this working reliably.
Messaging Investigation
Why: Many services will be running and performing their own responsibilities. We need to setup messaging tools between these services, so that data and commands can be seamlessly and quickly passed back and forth, rather than relying on slow or brittle REST APIs or WebSockets.
Known Options: Redis, RabbitMQ, Kafka
Deliverable: