SAS Compute Server et Compute Service
Dans cette article, je vous propose de faire un focus sur les deux services VIYA : Compute Server et Compute Service.
Si vous souhaitez approfondir le processus de lancement d'une session CAS, je vous invite à lire également mon article Comprendre le démarrage d’une session CAS
2) Le Compute Service localise un "compute contexte" pour l'utilisateur. Ce "compute contexte" est associé avec un launcher context" :
3) En utilisant ce contexte, le Compute Service appelle le Launcher Service qui, à sont tour, appelle le Launcher Server. C'est le Launcher Server qui démarre un Compute Server :
La log tklauncher (/var/log/sas/viya/tklauncher/default) trace ce démarrage du Compute Server :
Il est possible de vérifier la présence du processus linux pour l'utilisateur :
On retrouve le serverID 5fb7d801-a329-436e-b0ef-b558870b5766 indiqué dans la log du tklauncher
4) Le Compute Service va ensuite demander une session au Compute Server pour l'utilisateur :
La log du Compute Server (/var/log/sas/viya/compsrv/default) trace cette demande :
5) L'utilisateur peut enfin soumettre du code SAS. Le compute service redirige la demande vers la session Compute Server.
launchsvcs crée une session CAS sous l'identité de l'utilisateur qui a soumis la demande. Le processus identsvcs authentifie les utilisateurs lorsqu'ils tentent de se connecter à un serveur CAS avec un nom d'utilisateur et un mot de passe. Ainsi, les UID et GID doivent être cohérents sur toutes les machines du déploiement.
Il est possible de retrouver les actions associés à la session Compute Server dans les logs compsrv ( /var/log/sas/viya/compsrv/default) et plus précisement dans les fichiers ComputeServer_***.pgm.log :
Présentation
Le Compute Service permet aux clients de soumettre des programmes SAS et des procédures stockées sous forme de job. Le Compute Server implémente le Compute Service.SAS Compute Server
Pour chaque travail traité, le Compute Server écrit un message dans un journal SAS. Si le travail génère des résultats ODS, des ensembles de données de sortie, des fichiers, etc., la sortie est associée au job.Compute Service
Le Compute Service est un microservice SAS Viya qui fournit des points de terminaison API pour demander une session Compute Server. Le Compute Service fournit également des points de terminaison API pour créer et gérer des contextes de calcul, des spécifications qui contiennent toutes les informations nécessaires pour exécuter un Compute Server.Comment ça marche ?
Maintenant que les présentations sont faites, regardons d'un peu plus près ce qu'il se passe lorsqu'un utilisateur soumet du code au Compute Server. Dans l'explication ci-dessous je vous présente la "cinématique" qui se déroulé lorsque un utilisateur souhaite soumettre un job. L'exemple ci-dessous est simplifier. Si vous souhaitez en savoir plus, je vous invite à lire la documentation officielle disponible : SAS® Viya® 3.5 Administration: Programming Run-Time Servers 1) Par intermédiaire d'un client, l'utilisateur récupère un token OAuth (protocole permettant d’obtenir un accès à un service disponible via HTTP par le biais d’une autorisation préalable du détenteur des ressources). Le client utilise se token pour soumettre une requête au service Viya Compute Service :






Exécution de commandes X
SAS Compute Server ne prend pas en charge les commandes X, qui permettent l'exécution des commandes du système d'exploitation à partir de SAS.Exemple d'erreurs
com.sas.studio.exceptions.ServerOperationException: Impossible de créer une session du Compute Server. Le lancement du processus a échoué. Echec de lancement du processus : host=nicolas-housset.viya.local port=36530 ssl=true Erreur de serveur : status=0x80BFD100 messages=[ERROR: Access denied.]