Viya 3.4 includes two releases of SAS Studio:
The official documentation explains the functional differences; the focus of this post is the architectural changes, which have significant implications.
Let's learn more!
The new release of SAS Studio fully integrates with other Viya components (microservices architecture, SAS Drive, SAS Launcher Server/Service and SAS Compute Server/Service, etc). This architectural change has multiple implications:
SAS Studio 5 is itself a microservice and leverages other Viya services to perform its activities. This includes other microservices, as well as full services such as the SAS Configuration Server, SAS Message Broker, SAS Infrastructure Data Server, and so on. All of these components are only available in full deployments.
SAS Studio 4 is still used in programming-only deployments because it's an embedded application that does not rely on these external services - it just needs an object spawner, a workspace server, and little more.
|SAS Studio 5 configuration using SAS Environment Manager|
SAS Studio 5 authentication fully integrates with the features provided by SAS Logon Manager; this opens all possibilities on par with the rest of the Viya applications, such as:
You can find all the details on each of these authentication mechanisms in the SAS Viya 3.4 Administration Guide.
Microservices are stateless and do not directly consume resources exposed by the underlying OS, including the file system. They are designed to be possibly running in a cloud or containerized environment that may not even have a file system! SAS Studio 5 follows the same pattern; when you open or save a file, you do not have any access to the backend file system. So how can you access your programs? There are at least two ways.
|SAS Studio Explorer pane|
SAS Content is shared across all Viya applications; it can be managed by the new SAS Drive web application.
|Drag and drop to SAS Drive|
Please be aware of a limitation with data stored in SAS Content. While any file can be written to or uploaded to folders in SAS Content, you can’t access data (ex. .sas7bdat) from SAS Content via libraries (since libraries cannot be assigned to SAS Content folders). Only data that can be read via a fileref (ex. .csv, .txt, .xlsx, etc), can be read from SAS Content (since filerefs can be assigned to files in SAS Content). See working with data in SAS Studio 5 for more information.
Previous releases of SAS Studio can be clustered for scalability and High Availability, providing multiple instances of the web application. Yet, until SAS Studio 5, end-user sessions are bound to a specific instance (so called sticky sessions). Why is this an issue? Suppose that you have two SAS Studio 4 instances running on server1 and server2 and that, when you log in the web application, the frontend load balancer directs you to server2. Well your session, until you log out, is stuck there. If server2 dies, the session is lost; it does not matter that server1 is still available for other users. You are forced to log out - possibly losing your work - and re-login: the load balancer will then redirect you to the available server1.
There is also another issue, more subtle. Each instance of SAS Studio 4 can only access an object spawner and workspace servers running locally on the same host. Suppose that all SAS Studio instances are running fine, but the object spawner on server2 goes down. Even if your web session is still there, you are unable to perform any work, so you try to log out and re-login. The load balancer still sees SAS Studio 4 running on server2 and may redirect you there again; with no object spawner available, you cannot work.
The good news is, SAS Studio 5 solves all these possible issues at once.
It is a stateless microservice, which means that, in case of clustering, end-user sessions are not bound to any specific instance. If one instance dies, you may not even notice; it simply keeps working using another one.
Also, to run SAS code, it does not use an object spawner and workspace server anymore; SAS Studio 5 talks to the compute service that submits code to a compute server started by a launcher server (see this previous article for more information). This means that there are no dependencies to a specific backend; any host where a launcher and compute server have been deployed is as good as any other one.
To submit code to CAS, you now have SAS Studio 5 and SAS Studio 4. Wait, if you also have a properly configured SAS 9.4M5 environment, you may also use SAS Studio 3 deployed in that environment! Each one has its own features and capabilities (see this comparison), so a single environment may have all three releases running at once.
To understand their architectures at a glance, you can have a look at the following diagrams:
Thanks to Amy Peters and SAS Studio R&D for their support in gathering the information that led to this post.
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.
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.