Migrating from SAS Viya to Azure - sankalpa61/Technical-writing GitHub Wiki
About SAS Viya
With SAS Viya, you get quick, accurate, and reliable insights into data through a cloud-enabled, in-memory analytics engine. Its features such as scalability, elasticity, and fault-tolerant processing focus on the complex analytical challenges of today, while effortlessly scaling for the future. With the recent changes in architecture with the introduction of SAS Viya, codes are executed either in the CAS session or the SAS programming Runtime Environment (SPRE using SAS studio). There are certain SAS Viya procedures that are only executable in CAS. Although DATA step codes, PROC FEDSQL code and a few SAS foundation procedures are executable in CAS, the majority of language elements tend to be downloaded to SPRE for processing.
Primary requirements for Azure integration
The things that you will need for migrating your SAS (codes/data/containers) to Azure include:
- Prior familiarity with Azure and Azure QuickStart documents
- Azure user account with admin and contributor role
- Access to Azure Blob storage
- Viya software from SAS and SSH key pair
- Own IP address
How to migrate SAS to the Cloud using Azure?
You can run SAS on Azure architecture directly, either on self-managed virtual machines or by deploying container-based versions using Azure Kubernetes Service (AKS). Alternative to container-based migration, SAS Azure deployments can also be used for using Azure for SAS applications. With the introduction of SAS Viya, the compatibility with the Microsoft Azure systems has increased significantly. A well-defined and easy-to-use set of Microsoft migration tools are available that can transition the application footprint from an on-premises environment to a cloud environment.
To minimise time consumption in large-scale data analytics, we can run SAS within containers in Azure as it has the capability to take the SAS instance and push it up to a more scalable environment. Figure 1 describes how we can take a SAS container and move it up to the cloud (for example, 2-core to an 8-core Azure instance in the cloud in this case). Doing this is useful since the overall time consumed in the data analytics process can be substantially minimised by around 80%. By containers, we primarily mean docker containers which act as virtual systems packed with all the necessary software required to run the application.
Using SAS in containers (containers with SAS images) enables different beneficial outcomes such as scalability, portability, fewer machine restrictions, efficient resource usage, etc. The most efficient way of running containers in SAS is to first push up the container into the Docker registry (this is called Docker push). This Docker registry can be Azure, Docker hosted, AWS, public or private registry. Once the container push is done, we can then move on to the new Azure instance and Docker pull can be performed from the registry.
Then we can easily run it after moving the container to the Azure cloud and the whole process can be done in a matter of seconds, as compared to much more amount of time taken without the Azure cloud instance.
Figure 1: container-based migration approach
Viya QuickStart deployment
Using the Viya QuickStart template for Azure, connectivity and integration with Azure can be achieved as well. The steps in this process include:
- Azure preparation
a. Log in to Azure
b. Create a resource group
c. Create blob storage
d. Generate blob SAS token
e. Note blob SAS URL
- Execution of Viya QuickStart
a. Access Azure QuickStart template
b. Fill all parameters
c. Launch deployment
-
Monitor deployment
-
Validation
Figure 2: QuickStart template-based migration approach
Figure 2 shows the flow between different steps while integrating SAS Viya with MS azure using the QuickStart template.
References:
https://azure.microsoft.com/enin/resources/templates/sas9-4-viya/
https://docs.aws.amazon.com/prescriptiveguidance/latest/migration-sas-viya/steps.html
https://www.zencos.com/blog/migrate-sas-azurecloud/