2017.B.3.4. Microservices architecture for CubeSat mission control systems
Umesh Anilchandra Bhat (1)
Gregor Eesmaa (1)
Laura Ruusmann (1)
Tõnis Kasekamp (1)
Vadym Ponomarov (1)
- ESTCube, Estonia
ESTCube, mission control, microservices
ESTCube-2 (EC-2), the second Estonian Student Satellite is a 3U CubeSat in-orbit technology demonstration platform to be launch-ready by 2019. The lessons learned from ESTCube-1 have given us insight on how to design, operate and maintain the next iteration of the ESTCube mission control system (MCS).
The ESTCube MCS is powered by a microservices architecture where a collection of well-defined, lightweight and independent software applications (services) work together to support the entire mission.
The reasoning behind choosing microservices is to avoid the downfalls of a monolithic system that would potentially be outdated and hard to support in the upcoming future, not to mention the amount of documentation, training and support for a monolithic application would be long, tedious and expensive.
The services themselves have been designed to do “just one job and do it quite well”, akin to a specialized tool that performs its function perfectly without any external dependencies. For every service, there is a designated input and there is a designated output. This ensures that any service in the chain could be replaced, replicated and updated with ease with no effects on the functioning of the entire system. Another advantage is that a service would potentially never get outdated as long as it performs it’s desired functionality perfectly (part of our “If it ain’t broke, don’t fix it” philosophy). Which means you could potentially have code from decades ago running in a service in perfect symphony with its modern peers as they are completely independent and operate on a common platform. Microservices have also alleviated the evergreen question of “Which programming language to use?” (Hint: it does not matter anymore). Every service runs inside a container and may be powered by any language/platform, the developer wishes for. We can also run multiple versions of the same service side-by-side.
A few other innovations for the ESTCube MCS that we would like to present are:
– Command terminal – An online command line terminal for quick satellite command and control
– The implementation of time-series databases to store and retrieve mission data
– Contact automation – To reduce operator overload and automate periodic operations of satellite data uplink and downlink
– An integrated data processing platform – A distributed scientific computing platform that supports adding of new scientific libraries at a whim
– Ground station beacon – An independent ground station management software that supports scheduling of uplinks and downlinks
- Will be made available for download after the workshop