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

SAS 9 Architects, please meet Viya and enter in the new world

by SAS Employee RPoumarede 3 weeks ago - edited 3 weeks ago by Community Manager (1,614 Views)

If you're looking for a high level mapping between the SAS Viya 3.3 and the SAS 9.4 architecture tiers and components, you've come to right place.

 

The goal of this post is to introduce  seasoned SAS 9 Architects to the new world of Viya. If you are very skilled with SAS 9 architecture but were too busy to start looking at Viya, this post should help you to grasp the key concepts of the Viya architecture.

 

I'll start with a very high level mapping then dive into a little bit more detail along the way. As you will see, almost all SAS 9 architecture components have one or multiple corresponding components in Viya.

 

On top of that, Viya and CAS also bring capabilities that were not existing in the SAS 9 world.

 

2planets.png

 

 

Note: this post is not exhaustive and only covers the key, core components of SAS 9 and SAS Viya. It is based on my experience and knowledge of both architectures and reflects my own interpretation of the architecture changes. It might sometimes be subjective and subject to exciting architecture discussions. So please feel free to challenge me and to open the discussion with comments!

 

Main components diagrams

The diagrams below show the main components in SAS 9 and SAS Viya.

 

 

hlmapping.png

 

 

On the left we recognize the good old SAS 9 tiers (metadata server, compute and middle tier) and on the right a lot of blue boxes with new things.

 

It is the starting point of a first high level "mapping".

 

High level mapping

 

 

hlmapping2.png

 

As you can see the architecture in SAS Viya is more modular than in SAS 9.

 

One of the idea behind the new "Microservices based" architecture is really to move from the SAS 9 Monolithic Metadata Server, metadata-centric Web Infrastructure Platform towards modular, independent, and specialized Microservices.

 

These Microservices can easily be upgraded, scaled, clustered, operated without any dependencies from other components.

 

Metadata Server Tiers

Now, with the table below, let's zoom in on the SAS 9 Metadata Server Tier to see its core components, and their equivalents in SAS Viya.

 

SAS 9 Tiers Role/Content SAS Viya
Metadata Server
  • Holds server definitions, components and solutions configurations
  • SAS users and groups repository
  • Authentication entry point for SAS Clients and applications
  • Authorization metadata layer for SAS artifacts (libnames, reports, etc...)
  • Backup management, job scheduling,...
  • Metadata layer for the external data (including credentials)
  • SAS Configuration Server (Consul)
  • LDAP
  • Microservices(saslogon, sas-authorizations, backup, job)
  • CAS Views (semantic layer), permstore

 

The SAS Metadata server was holding the SAS users and groups. The Viya platform now relies on a LDAP repository and simply associates domain users to custom groups in Viya.

 

Most of the Metadata Server functions are now covered by specialized dedicated Microservices (such as: authorization, folders, identities, importvaspk, backup, configuration, job, etc...) that can be easily be scaled out, clustered, and restarted independently without impacting the rest of the platform (can be handy when applying hotfixes).

 

The SAS Management Console is the SAS 9 Metadata Server management tool and his equivalent in SAS Viya is Environment Manager (or command line interfaces).

 

Compute Server Tier

With SAS Viya, the computing part should be performed by CAS, because it is our new generation Analytics High-Performance engine for analytics. CAS is the fastest and most efficient way to run advanced analytics today (it works in memory and can very efficiently distribute advanced analytics processing against Big Data across multiple machines).3rdgen.png

 

 

 

 

In the SAS 9 world, LASR was not always in the picture, but with Viya, CAS is intended to be the preferred choice to run analytics processing.

 

Although, as my colleague, Rob Collum pointed out rightfully, today specific solutions are using other computing engine for the bulk of their processing, as MAS (Micro Analytics Service) for Decision manager or Elastic search for Visual Investigator, CAS will, almost always, be included (except for ESP stand-alone environments).

 

However certain procedures have not been made available in CAS yet, or they are not relevant for distributed processing in CAS. For example PROC PRINT does not really need to be able to run in memory and across multiple nodes. For the non-CAS processing in Viya we use "PRE".

 

PRE (Programming Runtime Environment) is what gets invoked when you submit SAS Code in Viya. It contains SASFoundation binaries and will allow to run SAS Base legacy code for processing that is not (or not yet) available in CAS. With Viya 3.3, new products such as VDMML, Data management, Model Manager, Visual Forecasting or Visual Text Analytics need to run a part of the processing in PRE.

 

As a result new Viya Microservices and servers have been introduced to run the SAS programming jobs in PRE for those products, following the Viya Architecture principles: Launcher service, Launcher server, Compute service, Compute server.

 

See Edoardo Riva's post for more details.

 

The diagram below shows the similarity between the SAS 9 servers.

 

 

computemapping.png

 

 

Finally the table below summarize the SAS 9 to Viya mapping:

 

SAS 9 Tiers Role/Content SAS Viya
Compute Server (Object spawner, workspace server, MVA - aka Base SAS)
  • Configure and orchestrate the users SAS sessions
  • Run the SAS code (Data access, Data steps, SAS procedures)
  • Programming Services - Object Spawner and Workspace Server (for SAS Studio), SAS Launcher server, SAS Compute server (for Visual interfaces)
  • Microservices (associated to SAS launcher and SAS Compute Server)
  • PRE (SAS Programming Runtime Environment)

 

Middle Tier

There are many components in the SAS 9 Middle-tiers (SAS Web Server, SAS Web Application server, Message broker, cache locator, etc…) and many of them are relying on third party components such as Apache Web server, Pivotal tcServer, ActiveMQ, etc...

 

Their equivalent in Viya are either Microservices or in the list of the so-called "Infrastructure servers."

 

Those Viya Infrastructure server components, often also rely on 3rd party industry standard web, databases or message bus technologies. They are less flexible than the Microservices because they maintain crucial state information (they are sometimes called "stateful services").

 

SAS 9 Tiers Role/Content SAS Viya
Middle Tier
  • SAS Web Server (Pivotal Web Server)
  • SAS Web application server hosting WIP and web applications (Pivotal tcServer)
  • JMS broker (activeMQ)
  • Cache locator (GemFire)
  • Environment Manager (VMWare Hyperic)
  • Single connection point for SAS web applications
  • Execution environment for the SAS web applications
  • Acts as a message broker for middle tier components
  • Distributed peer-to-peer data cache for distributed communications
  • A web application for enterprise administration
  • Apache HTTP server
  • Microservices and Web Applications (Spring Boot framework)
  • SAS Message broker (RabbitMQ)
  • SAS Cache server and cache locator (Apache Geocode)
  • SAS Environment Manager

 

Others

There are a few additional parallels that we can draw between SAS 9 and SAS Viya:

 

  • SAS 9 High-Performance Analytics products (HP PROCs) and LASR have been replaced and improved with CAS which is integrated by default in SAS Viya.
  • We still have our PostgreSQL Server (formerly known as the Infrastructure Data Store), hosting our good old "Shared Services" database and other things, called "SAS Infrastructure Data Server" in Viya but now it integrated with pgpool by default for ease PostgreSQL clustering.
  • REST API is progressively becoming the standard to communicate with the various components (CAS, Microservices, etc...), replacing the SAS 9 IOM proprietary protocol.

 

Conclusion

Of course, Viya and CAS also bring components that were not existing in SAS 9 like the Data connectors and Data Connect Accelerators to make data available more directly for our CAS engine, the CAS Service Monitor web application, Secret Manager (aka vault), etc ...

 

So even if you are a very experienced SAS 9 architect, you have to be prepared for a lot of architecture changes in the new World of Viya (again, I don't claim to be exhaustive in this post).

 

But just like with SAS 9, as a Technical Architect you will still have to build a "SHLCAO"and a D30 (Architecture Design) and you still need to consider architectures such as data integration, high availability, scalability, security (authentication, encryptions and authorizations), storage, performance and workload management, disaster recovery, etc.

Comments
by Moderator
3 weeks ago

Excellent overview.

 

As a follow-up (one of many), I'd really like to see a similar post of the the security uplift from SAS 9 to SAS Viya. (I've been receiving lots of questions about Viya's security model).

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.