The idea of running software in a self-contained package took off with the launch of Docker in 2013 and has become a hot topic in the application development and DevOps community. In a recent survey by Red Hat, 57 percent of companies questioned said they use containers for some workloads and expect adoption to nearly double over the next two years
SAS recognised this trend and now offers SAS for Containers as a deployment option. It may not be a complete replacement for running SAS on virtual machines, but there are some significant benefits.
1. Self-service access to analytics
Some organisations have analysts who want to use SAS but can’t get their hands on it. Another business department might own the SAS Platform and the onboarding process involves approvals. A platform administrator might need to make changes to the file system or security model, so the process takes time.
With containers, it’s more a matter of self-service. IT prepares a standard container image for SAS and makes it available for anyone to use. Analysts can then select it, spin up their own instance and be working with SAS within minutes. Domino Data Lab and BlueData are examples of container-based data science platforms providing this capability.
2. The software tools and versions you need
A conventional SAS Platform implementation is shared by many users. You must use the configured software, which may not be the latest version. With containers, IT can offer data analysts a range of container images combining SAS and open source software. There could be a container image for SAS 9.4, SAS Studio and Jupyter Notebook Another image could offer SAS Viya machine learning capabilities accessible through SAS Studio, Jupyter Notebook and R Studio. IT could even offer trial versions of software. Developers would be able to create their own container images combining the software components and APIs they need for a particular project.
3. Easier software updates
Actually, the SAS software in a container never gets updated – you just create another container image with the new version and use it to build another container. That means you never have the problem of disrupting users while you upgrade the software. No working the weekend and panicking about how to roll the system back when it doesn’t go quite right. You can test the new container and roll it out to users when it’s ready. It’s possible to keep container images for different versions, allowing users time to test their code against each version or move to the new version when it suits them.
4. Scalable, flexible and isolated compute
Container orchestrators, such as Kubernetes, can allocate more computing resources as more containers spin up. That way, you won’t find your jobs slowing down as more users come on board. If you run a particularly intensive process, it’s not going to affect other users. Containers can be run on a range of machines. So if you need more power, just stop your container and launch it again on a bigger machine. When you’re done, the machines are free for other uses.
5. Integrate analytics into web apps
Analytics isn’t just for analysts. Organisations on a digital transformation journey are trying to get analytics behind the web and mobile apps that customers use when they interact through a digital channel. These could be AI applications involving image processing, recommendations or decisioning. Although these web apps could interface with a conventionally implemented SAS Platform, there are advantages in implementing just the required SAS software, analytical models and supporting code as a small execution engine bundled into a lightweight container. This gives the developer the freedom to change to SAS software configuration and APIs without affecting any other users. It is similar to the way an application might be implemented in Python or Java.
6. Automated model tuning
Some models need to be refreshed frequently as data changes or new feedback is received. With containers you can automate the process of retuning the model, packaging it in a container and deploying it to operations
7. Streamline deployment with DevOps and CI/CD
The typical SAS user may not be familiar with the world of DevOps, but it’s the way application development is conducted these days. If we want to integrate analytics with web apps, then we need to align with this process – and the easiest way to do that is with containers. With the SAS code and model encapsulated in a container, the app developer can connect the containers and test them before handing them on to Ops for deployment. With continuous integration, the changes in all branches of the app (including the SAS part) are regularly merged and subject to automatic testing to ensure they work together. Continuous delivery automates the release to live operations. This enables analytical applications to be developed and deployed in hours or days, not weeks.With the SAS code and model encapsulated in a container, the app developer can connect the containers and test them before handing them on to Ops for deployment. Click To Tweet
8. Deploy almost anywhere
Containers offer great potential for enabling imaginative uses for analytics. If you have a licence for SAS Viya, you will have access to the Docker image repository hosted by SAS, where you can download SAS Viya in a pre-prepared container image. For those wanting to customise and adapt the container, check out the Docker recipes on GitHub for deploying SAS Viya in containers. It’s now a matter of trying it out, adapting, sharing, improving and deploying into operations for real benefits.