The favoured method for avoiding being hit by an asteroid is called DART (Double Asteroid Redirection Test). The team leading this from Johns Hopkins Applied Physics Laboratory has selected a possible dangerous asteroid to try and hit in an attempt to calculate exactly how effective this method would be in the real world.
Creating the software for this mission critical application is incredibly difficult – this is because of the physics in space, which has very low bandwidth and extremely low density memory due to the impact of radiation. The team has only one chance to destroy the asteroid.
The team selected Docker because their main issue is the hardware deployed for this costs in excess of $300,000. Clearly, not everyone on the team can be given their own system, which led to a huge time constraint. The thirty strong development team had to share 5 systems, which clearly would have a negative impact on the time taken to release the product.
The team created a hack to be able to emulate the hardware so the team could work on their own laptops and test on the production hardware. They used both an X-11 and a VNC server inside a Docker container. This meant anyone on the team could access the GUI from any container they chose, whilst maintaining any constraints imposed by the NASA security policies.
The dev environment consisted of four components for flight software, COSMOS open-source GUI ground system, testbed software and the Docker environment. The flight software connects to the testbed container. The testbed connects to the COSMOS container and behaves as the radio. Then the COSMOS container is connected to the VNC container and utilises Openbox to provide the GUI. This provides full hardware emulation and lets the development team work on their own laptops – this saves months of dev time and resources. Allowing for cost saving and considerably increased deployment timescales.
The video explaining the hack is below.