As your team invests significant time and resources developing models, it is imperative that processes are put into place to protect and maximize the return on that investment. To that end, in this installment of the ModelOps Blog Series we’ll discuss leveraging functionality provided by continuous integration/continuous deployment (CI/CD) frameworks such as Jenkins, CircleCI, and GitHub Actions to automate the push of model container images to production container registries. As your team develops and containerizes models, it’s important that they don’t just live on your R&D servers or model developers’ laptops where events like hardware failures or accidental reformats could wipe away capabilities in the blink of an eye. In addition, using a CI/CD pipeline to deploy your models to container registries allows you to do the following in an automated fashion every time you want to release a new version of a model:

  • Test the model’s functionality and scan for security issues
  • Store and control access to the model image in a persistent, secure, organized, and scalable fashion
  • Trace the model image back to its original source code

If configured correctly, this type of automation minimizes the amount of labor required and mitigates the risk of human error through the model deployment process. The starting point for the image push process is a model container image successfully built by a CI/CD server. Make sure you are up to speed on what it takes to produce a model by responsibly sourcing data, following best practices for model training and versioning, and automating model container builds using CI/CD frameworks by checking out the previous posts in this series.

Leveraging container registries

Containerization is important to ensuring models function properly once they are deployed into production. Containerizing models ensures that they will execute in the same way regardless of infrastructure.

  • A container is a running software application comprised of the minimum requirements necessary to run the application. This includes an operating system, application source code, system dependencies, programming language libraries, and runtime.
  • A container repository is a collection of container images with the same name, but with different tags.
  • A container registry is a collection of container repositories.

When working with containerized model images, the container registry might be a collection of numerous container repositories, with each…

Continue reading: