BookmarkSubscribeRSS Feed

Easily Promote and Use Containerized Model Deployments

Started ‎11-14-2022 by
Modified ‎11-14-2022 by
Views 860

Last year, SAS released SAS Container Runtime, the game-changing runtime engine that publishes SAS models and decisions into containers. SAS Container Runtime executes models and decisions outside of SAS Viya using standard technologies. It is lightweight, to save on-cloud costs, portable, to enable easy movement across environments, and scalable, to meet traffic needs. IT and ModelOps Engineering teams can use SAS Container Runtime to create repeatable Continuous Integration and Continuous Delivery (CI/CD) processes to efficiently test and promote new models and decision flows. To make this process even easier, SAS is providing an example template to validate and promote a SAS container through testing and production. After initial configuration of the template and environments, a SAS container can move through the CI/CD process with just a few button clicks.


SAS Container Runtime

SAS Container Runtime solves multiple problems. First, it allows modeling and decisioning code to move from the development environment to the production environment in an easy, cost-efficient, and trustworthy manner. It allows organizations to move scoring code from their development environment on SAS Viya, a data and analytics platform, to small, fast, scalable, and disposal systems on their production environment where applications can access modeling and decisioning scores over REST API.




SAS Container Runtime creates a runtime container for SAS code. A container is a standard unit of software that packages code and all its dependencies so that the application runs quickly and reliably on all environments. This means that the container can be executed in any cloud or on-premise. It also means that you container does not need SAS Viya for execution.




To summarize, there are several benefits to using containerized model and decision deployments.

  1. Containers are lightweight and have small footprint to save on-cloud and infrastructure costs.
  2. SAS Container Runtime uses standard technology to fit within preexisting CI/CD processes and DevOps skill sets.
  3. Containers are portable to make moving across environments easy.
  4. Containers can be leveraged on any cloud or on-premise.
  5. SAS Container Runtime uses non-proprietary technology and can be executed outside of SAS Viya.
  6. Containers can be scaled to better meet traffic needs and duplicated to be made highly available.

And finally, creating a CI/CD process around SAS Container Runtime has never been easier!


CI/CD Promotion Template


The CI/CD promotion template provided by SAS uses a GitOps process to move the container across environments automatically, saving your IT team time and resources. 


In this process, SAS Viya acts as the development environment. You will use a few resources on Azure, including Azure Container Registry, where a copy of the container is stored, and Azure Kubernetes Service, which acts as the testing and production environments. You will also use a few open-source orchestration tools, including GitHub, Flux CD, and Jenkins. GitHub will store a copy of the container files, including a deployment descriptor. This deployment descriptor provides instructions for the GitOps controller, including instructions on where to find the container within Azure Container Registry, how to communicate with the container, what namespace it should be deploying to within Azure Kubernetes Service, and how many processing nodes should be within the cluster. An open-source tool called Flux CD is used to act as the GitOps controller because it provides integration between the deployment descriptor in the GitHub repository and the Kubernetes cluster. And finally, Jenkins, a popular open-source automation tool is used.


The process starts after a model or decision has been developed on SAS Viya. Models and decisions can be published directly into Azure Container Registry just as the deployment descriptor is pushed into the GitHub repository. For model publishing, the CI/CD promotion assets include a SAS Workflow Manager definition. This workflow definition containerizes the champion model within a project, deploys the container into Azure Container Registry, pushes the deployment descriptor into the GitHub repository, and then starts the Jenkins pipeline. For users publishing decisions or non-champion models, the models and decisions can be published from SAS Viya and the Jenkins pipeline can be started manually using the published name as a parameter.  


The Jenkins pipeline passes the deployment description to Flux CD, where it makes the appropriate changes within the testing Kubernetes Cluster on Azure Kubernetes Service. After the testing cluster has been configured and the container is running, Jenkins runs the data through the container to validate that it is scoring as expected. Upon successfully validating the container in the testing environment, Flux CD repeats the process on the production environment. After the container is running, it is ready to score data.


Organizations can pass data to the container using the REST API. REST API is a standard for communication between applications, so this makes it easy to leverage container scoring within an application or process.


Ready to Get Started?

To start using the new CI/CD promotion pipeline template, you must first add a few configurations to each environment that the pipeline touches. After you have completed the configurations, the pipeline automates promotion and validation, which saves time and reduces future headaches. 

Click here to view specific instructions about configuring the environments and using the template that are available in the Model Management Resources repository on GitHub.


More information about using the promotion template and configuring each environment can be found in this recent webinar, Best Practices for Adopting Containers within your MLOps Process.


With the release of this CI/CD template, organizations can easily take advantage of containers and SAS Container Runtime. With a few button clicks, the containerized score code is moved from the container registry to the test environment. After passing validation checks, the container is moved to production where it is ready to score data. Creating a CI/CD process around model containerization has never been easier! What would you like to see next for SAS Container Runtime? Comment your thoughts below!



Want to Learn More about SAS Container Runtime? Check Out These Articles and Sessions! 

Version history
Last update:
‎11-14-2022 03:41 PM
Updated by:



Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

Free course: Data Literacy Essentials

Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning  and boost your career prospects.

Get Started

Article Tags