Best practices in software development include continuous integration and deployment. We saw this as a great opportunity to make the Solano CI platform build and test Predix applications, then use AWS to test them in the cloud and deploy the apps to CloudFoundry.
What it does
We built two reference applications in the "Digital Twin" space and tested them with Solano CI. • The first application is based on the RMD reference application, and uses various services including time series, UAA/ACS for access control, and assets; and automatically generates random data consistent with both the reference application compressor and the digital twin data provided for the hackathon. • The second application uses time-series, UAA, and assets for the engine data provided.
Moreover, Solano CI runs all the Predix unit tests. If they pass, it deploys the app to a staging environment on CloudFoundry and runs the integration tests. If those all pass, then it deploys the app to production. It can run many of the tests in parallel to save time, and displays the JUnit outcomes and Selenium browser sessions in a nice UI.
What to try
• Fork the Node.js starter at https://github.com/solanolabs/predix-nodejs-starter • Follow the instructions on http://docs.solanolabs.com/Setup/predix/ and other docs to install Solano CI • Run the tests in Solano • Also take a look at the full Predix reference app at https://github.com/semipermeable/predix-rmd-ref-app , including public sessions showing how the Solano CI automatically tests and deploys the application. For example, see https://ci.solanolabs.com/reports/3198008#tab=session , https://ci.solanolabs.com/reports/3197364#tab=session
How we built it
• We started with the Solano CI platform and customized it to work with the Predix toolchain. Then we made sure to thread all the Predix/CF authorization tokens throughout the application.
Challenges we ran into
• Getting all of the authorization tokens correct was challenging • Limitations in CF made it hard to deploy more than 10 services at a time • Some of the Predix reference apps changed over the course of the past few days
Accomplishments that we're proud of
• We have a complete devops pipeline with GitHub, Solano CI, Predix and CloudFoundry. • We have Selenium browser testing working on the reference app, to ensure that UI/UX works • We can automatically detect regression errors in the applications before they get deployed
What we learned
• We learned a TON about Predix and CloudFoundry • We learned how to manage authorization
What's next for Predix + Solano Continuous Integration
• Solano Labs is going to officially support Predix applications on its cloud CI platform • Documentation here: