Docker container platforms are being used to support mission-critical efforts all over the world. The Planetary Defense Coordination Office out of NASA is using Docker’s platform to support a critical mission that could potentially affect everyone on the planet! The office is responsible for tracking near-earth asteroids, characterizing them and determining how to deflect them if one were to find its way to earth.
DART, led by the Johns Hopkins Applied Physics Laboratory by way of NASA, is the Double Asteroid Redirection Test. The team has chosen a potentially hazardous asteroid to hit in order to measure the impact and determine how effective this type of mission would be.
Developing the software for this mission is no easy feat, because space is hard! The team has one shot to make this mission work, there’s no rebooting in space. Space physics constraints lead to very low bandwidth, and low density memory due to the turbulent effects of radiation. So what did the software team want to solve for using Docker? Hardware scarcity. The development systems used in this project are very expensive ($300K), so not every developer is going to get their own system. This led to a time constraint, with a team of 30 developers sharing 5 systems, slowing down the rate of production.
In order to achieve hardware emulation, so that developers could work on their own laptops but test on the real hardware- the team developed a cool hack. Utilizing an X-11 server and VNC server inside a container, the team was able to access the GUI from any outside container that they wanted, while adhering to their security constraints.
The team deployed a four-service stack development environment consisting of individual components for flight software, testbed software, COSMOS open-source GUI ground system written in Ruby, and the Docker environment. Utilizing the container networking model, the flight software container connects to the testbed container. The testbed container connects to the COSMOS container and acts as the radio, finally the COSMOS container is connected to the VNC container and provides the GUI by way of Openbox. This completes the hardware emulation and allows the developers to work on their own machines, saving months of development time and resources.
Check out the keynote below to learn more about NASA’s three step plan:
- Build the spacecraft
- Hit the target
- Save the world
Stay connected with Docker view videos from DockerCon San Francisco 2018: