NASA can put Rovers on Mars, but a complex legacy software system proved a bit of a challenge. Speaking at GitLab Commit in Brooklyn, Marshall Cottrell of MRI Technologies explained how the company teamed up with NASA to launch the space agency into the era of modern application development using Kubernetes and GitLab.
In September 2018 MRI began work on a new software development platform called APPDAT. "It's the only platform taking a totally 'fresh approach' to application development and data science activities within the Agency," Marshall said. The team's challenge was to update an Oracle-based legacy SCM solution using open source technologies and APIs. At the time NASA had no toolchains to support CI/CD during development and lots of silos of information. "There was no mechanism for us to disseminate innovations, best practices, or what we learned," Marshall said. NASA needed a unified toolchain and platform for software delivery. "GitLab was chosen as the platform source control management solution because it is the only product in this space that integrates all stages of the DevSecOps lifecycle."
A laser focus helps
Perhaps not surprisingly MRI had ambitious goals for APPDAT, Marshall explained. The overarching hope was to build an automated DevOps platform that served as the single source of truth. Until MRI got involved, NASA had no way to actually "own" the software development process; teams operated in a piecemeal fashion, choosing contractors and solutions based on situational needs rather than looking at the big picture. Those decisions left NASA subject to potentially "abusive behavior," Marshall explained.
So MRI laid out a number of goals:
- Empower teams to fully manage the resources they support
- Demonstrate and promote fully open project management and collaboration
- Create a sandbox for protoyping with no barriers to entry
- Assemble an API and data economy that would eliminate silos and promote reusability
- Establish platform-level security controls with a goal of "compliant by fault"
To get there, MRI emphasized collaboration and tried to reach out to the "forward-leaning" customers and individual civil servant developers, engineers and researchers who were eager to contribute. The team adhered strictly to cloud native, Zero Trust and open source approaches and, in the end, came up with a Kubernetes platform that met the space agency's needs for today and in the future. The technology choices were important, but so was the time spent laying the groundwork for a culture change. "Many modernization proposals try to meet everyone where they're at," Marshall explained. "A more opinionated approach allows us to provide a succinct and unified toolchain that all parties can contribute to, evolve, and improve over time."
Today the 61-year old space agency has a modern platform where developers can easily collaborate with non-developers, no complex tooling is required, and context switching is a thing of the past, Marshall said. APPDAT syncs from the agency's existing SCM solutions so everyone was able to continue to use the same tools.
Perhaps most exciting, NASA's plans to have astronauts established on the moon by 2024 as part of the Artemis program. That will include a data center, and Marshall is confident Kubernetes will be part of the launch.
"We’ve already begun to change minds at NASA and you can do it at your enterprise too," Marshall said. His last best advice: Play the long game, only innovate when it makes things easier, and a bottom-up approach is an easy way to make friends.
Watch Marshall's entire presentation here:
Don't miss out on the chance to network with others on the same DevOps journey. Get your tickets to Commit London on October 9.
Cover image by David Torres on Unsplash