Launch of the JCSDA Real-Time Marine Data Assimilation CI/CD Testbed

Article by Dr. Travis Sluka, JCSDA SOCA and Dr. Guillaume Vernieres, JCSDA SOCA Lead.

As you may already have noticed, the first real-time prototype application from the Sea-ice Ocean Coupled Assimilation (SOCA) project was launched on the JCSDA website this past January. It can be viewed here or through the “products” tab on the website. The SOCA team has been actively partnering with  NOAA and NASA to develop improved marine data assimilation methods for the next generation of prediction systems. This real-time system on the JCSDA website acts as a testbed for SOCA software development, and helps give the public an inside window as to how our development is proceeding.

The SOCA project is closely intertwined with that of the Joint Effort for Data assimilation Integration (JEDI), an effort to standardize and generalize data assimilation among the JCSDA partner agencies. A paramount goal of the real-time SOCA system is to employ Agile and DevOps development strategies to ensure that 1) SOCA can keep up with the extremely fast paced development of JEDI and 2) the latest versions of the SOCA code always work as intended. Manually testing every change to the code from the nearly dozen upstream projects is not feasible, so an automated continuous integration and delivery (CI/CD) pipeline has been created.

 
Figure 1. Continuous Delivery (CD): code changes are automatically prepared and tested in a production-like environment every night.

Figure 1. Continuous Delivery (CD): code changes are automatically prepared and tested in a production-like environment every night.

 

Every night, the latest code from all the JCSDA GitHub repositories is compiled, tested, and run in a retrospective 14 day data assimilation cycle using current satellite observations of ocean temperature, salinity, and height. The results are pushed to the website, and various diagnostics are visible under the “release/nightly” tab for evaluation by the SOCA team. This run can be compared to the most recently vetted “known good” version visible under the “master” tab of the website. It’s exciting to see code from many developers automatically be merged into the nightly production run, assuming all tests pass.

Figure 2. Diagnostics from the real-time SOCA are available at http://soca.jcsda.org.

Figure 2. Diagnostics from the real-time SOCA are available at http://soca.jcsda.org.

The JCSDA realtime ocean data assimilation system is not intended to be comparable to the operational systems currently employed by NOAA and NASA. Instead, it serves as a software engineering testbed  to ensure the code we are developing is of the best quality, and always ready to work, before being used by our partners. New features that are shown to work here can then be incorporated by operational projects such as NOAA/EMC’s Global Ocean Data Assimilation System (GODAS). By performing such testing in a realtime “production-like” setting, unforeseen bugs are often quickly uncovered. Development at JCSDA is fast paced, and the website is constantly being updated, so be sure to check back frequently as the system continues to mature!