The power and potential of simplicity: SAS 9.4 and Containers

Recently I’ve been listening to the BBC Radio Series 50 Things That Made the Modern Economy, which was first broadcast in 2016. One of the episodes considers the impact of a simple box (the shipping container) and concludes its invention was a major contributor to the post-war boom in global trade. It’s worth a listen, if you can.

Notwithstanding the tenuous link, containerization is having perhaps an equally significant impact on Cloud Computing and I want to share a recent experience which highlights the convenience of containers. I’m not aiming to summarize all the multiple SAS initiatives in the Cloud (including SAS Viya and Cloud Foundry) here rather it’s to share a few observations about a specific offering for SAS 9.4.

Recently I attended a demonstration by SAS’ Doug Liming on SAS Analytics for Containers. While this product was launched in 2016, until now I confess I’d not appreciated its simplicity or potential. I’d like to use this blog post to share what I saw & learned because this session served as a bit of an epiphany for me.

As a reminder SAS Analytics for Containers consists of:

• Foundation SAS (Base, STAT & Graph) ready-packaged to be deployed in a Docker container.
• SAS Studio.
• Optional SAS/Access connectors & Accelerators.

In the space of 20 minutes, Doug took us through the steps to install SAS 9.4 into a .tar file image, performing basic customization (adding a username) and populating a Docker container. This was then deployed into an AWS machine (it can equally be deployed into Azure or Google Cloud platform) and a SAS Studio session established.

Containers offer some advantages over, say a VMware image, including:

• The nature of container means it’s independent of the underlying host machine. This means you can deploy the same container with a 4-core machine or 128-core machine.
• It’s very easy to automate the build & customization process, for example adding personalized authentication information for each user.
• Start-up of SAS inside a container takes a handful of seconds. Yes, you read this correctly!
• Orchestration can be performed using Kubernetes (but equally could be Amazon ECS, Docker Swarm or Azure Container Services).

Now at this point you may be forgiven for thinking that all we’ve accomplished is creation of a container with the equivalent of PC SAS. But wait – for some use cases this approach can deliver a cloud-based alternative to a traditional SAS server supporting hundreds of users. This is noteworthy.

• There are large US Financial Services clients who have done just this. Each user (and there are hundreds) runs in his/her own container.
• Batch processing is accomplished using the cloud provider’s own scheduling facilities.
• You’ll need to ensure you have shared disk storage available between users for collaboration.

As I cautioned earlier, the suitability of this approach will appeal to particular use cases. While LIBNAMEs etc. can be customized or defined in SAS Studio start-up scripts, you may miss some of the other benefits of the SAS metadata server such as data lineage. Again, this isn’t a SAS Grid in the Cloud, but for some organizations who want to leverage Cloud for their existing SAS 9.4 programmers, it’s an exciting & proven first step.

The power and potential of simplicity: SAS 9.4 and Containers was published on SAS Users.