We’re smarter together. Learn from this collection of community knowledge and add your expertise.

SAS Viya 3.3 Architecture: let’s Launch a Compute

by SAS Employee EdoardoRiva on ‎03-12-2018 11:40 AM - edited a month ago by Community Manager (1,769 Views)

SAS Viya 3.3 has seen the official release of new servers and services that further help providing capabilities to the SAS Platform. In this post we will introduce the SAS Launcher Server and SAS Compute Server. Together they are used by other Viya services to submit and run SAS programs in the form of jobs.

 

The Launcher

The launcher is composed by a server and a service: The SAS Launcher Server is used to start processes in a SAS Viya environment. The SAS Launcher Service is a SAS Viya microservice that exposes a REST interface to

  • start processes using a launcher server
  • define launcher contexts

In the picture below we can see the launcher service process (above) and the two processes that constitute the launcher server (below)

 

20180216_04Launcher1.png

 

 

With a good approximation we can say that the SAS Launcher server is to Viya what the Object Spawner is to SAS 9. We do not interact with a launcher server directly; we use REST interfaces exposed by the microservice, the SAS Launcher service. In Viya 3.3 there are 2 consumers of the Launcher service:

  1. Compute Service, which uses the Launcher service to start Compute servers.
  2. Scheduling Service, which uses the Launcher service to launch arbitrary processes.

Now that we have introduced the launcher, what is the compute?

 

The Compute

Just like with the launcher, there are a Compute server and a Compute service. In a few words, the SAS Compute Server is a back-end server process that provides access to SAS Foundation in a SAS Viya environment The SAS Compute Service is a SAS Viya microservice that exposes a REST interface to

  • talk to a compute server
  • define compute contexts

In the picture below we can see the compute service process (below) and the two processes that constitute the compute server (above)

 

20180216_05Compute2.png

 

If we want to make a quick and easy comparison, we could say that a compute server is like a workspace server, with the big difference that a workspace server is accessed using the proprietary IOM protocol, while a compute server is accessed through the compute service via a standard REST API. A compute server instance uses the SAS Foundation executable provided by SPRE (/opt/sas/spre/home/SASFoundation). Just as with the workspace server, we can use the compute server to

  • Submit SAS code as jobs
  • Query data
  • Access files via filerefs

Both Launcher and Compute are not available in a programming-only deployment.

 

Server Contexts

In the descriptions above I mentioned that Launcher/Compute services manage Launcher/Compute contexts. What are these?

20180216_01Contexts3.png

 

 

A Launcher Context provides the environment under which a launcher server should start an OS process

  • Environment Variables
  • Port Ranges

 

A Compute Context provides information to run a compute server

  • Launcher context to use to start the SAS process
  • Authorized Identities
  • SAS options
  • Additional Autoexec statements

Again, an easy analogy with SAS 9 could be to consider compute contexts analogous to SAS Application Server definitions in metadata . It is recommended to have a compute context per client application, but this should not be a concern since contexts are usually created during the deployment by each solution that uses them.

20180216_02ComputeContexts4.png

 

Only administrators are allowed to create new contexts, either using the SAS Environment Manager or the REST API.

 

Comparing Viya to SAS 9

 

The following picture summarizes how the Launcher and Compute Server, Service, Context relate to familiar concepts in SAS 9.

20180216_03Viya_SAS95.png

 

 

Conclusion

 

Some of the pictures and content for this post come from the official documentation. Special thanks to Jason Spruill and Scott Parrish in platform R&D for the additional information they provided. 

Comments
by Contributor SDV
on ‎06-10-2018 05:25 PM

In the SAS Viya 3.3 we are working with I see a sas-viya-launcher-default, is that the launcher service?  There is another service listed as:  sas-viya-runlauncher-default

 

What is the purpose of the run launcher? 

 

 

 

Your turn
Sign In!

Want to write an article? Sign in with your profile.


Looking for the Ask the Expert series? Find it in its new home: communities.sas.com/askexpert.