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.
Great. 2 questions. The features that I have been looking for in SAS Studio are:
1. Capability to deploy as stored process
2. Code Folding
Are either achieved through this release ?
While this article focuses on SAS Studio 5 Architecture, you can find the new functionalities available in the official documentation @ http://documentation.sas.com/?activeCdc=webeditorcdc&cdcId=sasstudiocdc&cdcVersion=5.1&docsetId=webe...
@UdayGuntupalli, to answer your questions specifically:
Does the use of the micro services instead of SAS 9 workspace servers mean that the time to start a new session is improved?
@AmyP_sas,
Thank you for enabling code folding and ensuring that it is in the release notes. As for (1), yes I was indeed referring to the ability to author stored processes. Is there a road map on when that feature will be introduced into SAS Studio ?
@Tom,
in my experience, when a workspace server takes long to start is because of external issues, such as long time to resolve DNS entries or allocate many pre-allocated libraries. This is obviously not different with SAS Studio 5.
One point where things may be better is that SAS Studio 3.X on SAS 9 always starts at least 2 workspace servers, while SAS Studio 5 on SAS Viya needs only 1 compute server.
Hello
I installed SAS Viya 3.4 full deployment included VA 8.3 and VDMML but it seems that it's SAS Studio 4.* which is installed.
Is there something to do in order to deploy SAS Studio version 5?
Thanks
Fabrice
@FabriceP, how do you access SAS Studio? When both SAS Studio 5 and SAS Studio 4 are deployed, if you simply type the SASStudio URL you are directed to SAS Studio 4. The official documentation shows the two URLS:
http://hostname/SASStudio
http://hostname/SASStudioV
Another way to log to SAS Studio 5 is simply choosing the "Develop SAS Code" entry from the Applications menu in SAS Drive:
Hello @EdoardoRiva, @AmyP_sas,
first of all, thank you for the good news, great stuff.
I would be interested in knowing more about this bit:
- Some new features, some missing features
I suppose the link shared by @EdoardoRiva lists all the new features.
Thanks in advance!
Kind regards,
Juan
Thanks a lot for this great announcement !
- When will SAS Studio version 5 be available for SAS 9 deployment ?
SAS Studio version 3 is now completely outdated, as a result.
We're certainly planning on releasing Studio 5.x on SAS 9 but don't yet have a date to announce. What's happening in R&D right now is work to bring 5.x up to replacement value for 3.x. While there are spiffy new things in 5.x, it still doesn't have everything 3.x does. When I have more firm info, I'll certainly post it!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.