Speeding Multi-Platform Releases For Industrial IoT with Conan and Artifactory
Real-Time Innovations (RTI) provides software frameworks for autonomous systems, and is the leading vendor of products compliant with the Object Management Group® (OMG®) Data Distribution Service™ (DDS) standard. RTI Connext® enables direct data sharing, connecting AI algorithms to real-time networks of devices to build intelligent distributed systems.
With over 1,500 designs, RTI software runs over 250 autonomous vehicle programs, controls the largest power plants in North America, coordinates combat management on U.S. Navy ships, drives a new generation of medical robotics, enables flying cars, and provides 24/7 intelligence for hospital and emergency medicine.
RTI is privately held and headquartered in Sunnyvale, California with regional offices in Colorado, Spain, and Singapore.
Javier Povedano Molina leads a team of RTI engineers to develop the RTI Connext framework and tools, consisting of more than 30 different products and libraries, and is written in C/C++, C#, Java, and Python.
RTI Connext is used in a wide variety of smart machines and supports over 70 different architectures and embedded systems. The RTI development team, therefore, needs to create a different binary for each of the many architectures, with every release. Although all are produced from the same baseline code, each binary must be independently tested and validated. The code’s large number of dependencies further complicate the build process.
The RTI Engineering Team sought to modernize their build system to improve time-to-market performance and help ensure the quality of all binaries in the release. The team did not want to limit themselves to a narrow set of tools and sought a solution that would empower them to connect to what they choose now as well as in the future.
RTI developers chose CMake for build automation and Conan for their C/C++ package management. Javier Povedano and his team maintain unique Conan configuration profiles for each set of build requirements, and use those to automate production of the many products needed to be built for a new release. Up to 30 different Conan package recipes help RTI developers organize and speed up dependency management across many target environments and sustain reproducible builds.
Artifactory’s universal package support for Conan, Python, Java, and Docker empowers RTI developers with a single source of shared artifacts. Through Artifactory’s remote repositories, Povedano Molina’s team shares standard libraries in Conan, along with custom and legacy libraries in secure local repositories. Caching frequently referenced dependencies in these central repositories helps their builds execute quickly.
Prior to this modernization, a typical full release build and test cycle from something as small as a version bump for a dependency could take up to 2 days. Povedano Molina reports that now the same complex results can be generated in less than 1 day.
“Conan and Artifactory are the keystone of our build system. Our devs were able to build from a pristine repo following the few steps on the first try. It’s amazingly efficient in onboarding new developers – especially in a polyglot environment. Things just work on the first go.”
– Javier Povedano Molina, RTI Principal Software Engineer