Gestion du Serveur CAS dans SAS Viya4

Cet article en deux mots :

Le serveur CAS est le moteur de calcul de SAS Viya, mais son administration sous Kubernetes change la donne. > De la gestion de l’opérateur CAS à la transition critique entre le mode SMP et MPP, cet article décortique tout ce que vous devez savoir pour maintenir un environnement performant. Apprenez à manipuler les fichiers patchTransformer, à gérer le cycle de vie de vos pods avec kubectl et à configurer vos instances via Consul ou la CLI. Un guide indispensable pour passer de l’administration classique à la puissance du Cloud Native.

Le serveur SAS Cloud Analytic Services (CAS) est un composant essentiel de la plateforme SAS Viya, responsable de l'exécution du traitement des données et des analyses.

Une gestion efficace du serveur CAS est cruciale pour maintenir un environnement SAS Viya sain et performant.

Cet article fournit une vue d'ensemble de la gestion du serveur CAS dans SAS Viya, couvrant divers aspects tels que la configuration, la gestion de la topologie, le cycle de vie du serveur et la surveillance des sessions.

Aperçu du Serveur CAS

Dans SAS Viya, un serveur CAS est représenté par un casdeployment dans Kubernetes. Chaque casdeployment correspond à une instance de serveur CAS spécifique. Les serveurs CAS dans Viya peuvent être déployés en mode Symmetric Multi-Processing (SMPLe Symmetric Multi-Processing (SMP) est une architecture informatique où plusieurs processeurs (CPU) partagent une mémoire centrale unique et un seul système d'exploitation pour exécuter des tâches. Contrairement au mode MPP, toutes les opérations se déroulent au sein d'une seule machine ou d'un seul nœud de calcul.

Dans l'écosystème SAS Viya 4, le mode SMP est idéal pour les jeux de données de taille petite à moyenne ou pour les phases de préparation de code. Le moteur CAS (Cloud Analytic Services) utilise alors la puissance multi-cœurs d'un nœud unique pour traiter les données avec une latence minimale.
) ou Massively Parallel Processing (MPPLe Massively Parallel Processing (MPP) est une architecture informatique où plusieurs processeurs (ou nœuds de calcul) travaillent simultanément sur différentes parties d'une même tâche complexe. Contrairement au traitement séquentiel, le MPP divise les données en fragments gérés en parallèle, réduisant drastiquement le temps d'exécution.

Dans l'écosystème SAS Viya 4, l'architecture MPP est incarnée par le moteur CAS (Cloud Analytic Services). Elle permet de distribuer les calculs analytiques et d'IA sur l'ensemble d'un cluster Kubernetes ou OpenShift, offrant une puissance de traitement quasi illimitée pour les Big Data.
). Les principales différences entre le serveur CAS dans Viya et Viya 3.x comprennent :  

  • Dans Viya, plusieurs pods CAS peuvent s'exécuter sur un seul nœud Kubernetes (sans AUTORESOURCES), et plusieurs serveurs CAS peuvent coexister sur les mêmes nœuds Kubernetes. Avec AUTORESOURCES, chaque pod CAS nécessite son propre nœud Kubernetes, et plusieurs serveurs CAS ne peuvent pas coexister sur les mêmes machines.  
  • La configuration du serveur CAS dans Viya est gérée via SAS Environment Manager, la CLI sas-viya ou les fichiers patchTransformer (Declarative Management of Kubernetes Objects Using Kustomize) , contrairement à Viya 3.x, où la configuration était principalement effectuée via sitedefault.yml et les fichiers de configuration du serveur CAS.  
  • Viya utilise un pod opérateur CAS pour gérer les contrôleurs secondaires/de sauvegarde, en utilisant des volumes persistants partagés entre les pods CAS.  

Documentations

Composants du Serveur CAS dans Kubernetes

La compréhension des composants Kubernetes sous-jacents est cruciale pour une gestion efficace du serveur CAS. Les composants clés comprennent :

Documentations

Gestion de la Topologie du Serveur CAS

La topologie du serveur CAS peut être modifiée pour ajuster les capacités de traitement du serveur. Les changements de topologie peuvent impliquer le passage de SMPLe Symmetric Multi-Processing (SMP) est une architecture informatique où plusieurs processeurs (CPU) partagent une mémoire centrale unique et un seul système d'exploitation pour exécuter des tâches. Contrairement au mode MPP, toutes les opérations se déroulent au sein d'une seule machine ou d'un seul nœud de calcul.

Dans l'écosystème SAS Viya 4, le mode SMP est idéal pour les jeux de données de taille petite à moyenne ou pour les phases de préparation de code. Le moteur CAS (Cloud Analytic Services) utilise alors la puissance multi-cœurs d'un nœud unique pour traiter les données avec une latence minimale.
à MPPLe Massively Parallel Processing (MPP) est une architecture informatique où plusieurs processeurs (ou nœuds de calcul) travaillent simultanément sur différentes parties d'une même tâche complexe. Contrairement au traitement séquentiel, le MPP divise les données en fragments gérés en parallèle, réduisant drastiquement le temps d'exécution.

Dans l'écosystème SAS Viya 4, l'architecture MPP est incarnée par le moteur CAS (Cloud Analytic Services). Elle permet de distribuer les calculs analytiques et d'IA sur l'ensemble d'un cluster Kubernetes ou OpenShift, offrant une puissance de traitement quasi illimitée pour les Big Data.
, l'ajout/la suppression de nœuds de travail en mode MPPLe Massively Parallel Processing (MPP) est une architecture informatique où plusieurs processeurs (ou nœuds de calcul) travaillent simultanément sur différentes parties d'une même tâche complexe. Contrairement au traitement séquentiel, le MPP divise les données en fragments gérés en parallèle, réduisant drastiquement le temps d'exécution.

Dans l'écosystème SAS Viya 4, l'architecture MPP est incarnée par le moteur CAS (Cloud Analytic Services). Elle permet de distribuer les calculs analytiques et d'IA sur l'ensemble d'un cluster Kubernetes ou OpenShift, offrant une puissance de traitement quasi illimitée pour les Big Data.
, ou la gestion des contrôleurs secondaires/de sauvegarde.  

Les overlays du serveur CAS, situés dans sas-bases/overlays/cas-server/, définissent les configurations initiales des serveurs CAS. Ces overlays sont inclus dans le fichier kustomization.yaml.  

Documentations

Configuration du Serveur CAS

Les configurations du serveur CAS sont conservées dans Consul et chargées dans /cas/config lors de l'initialisation du serveur CAS. Ces configurations déterminent le comportement du serveur CAS et sont gérées par différentes méthodes :  

  • sitedefault.yaml : Utilisé avant le déploiement pour configurer Viya et le serveur CAS.  
  • Fichiers patchTransformers yaml : Utilisés après le déploiement pour ajuster le serveur CAS. Nécessite la construction et l'application du manifeste site.yaml.  
  • SAS Environment Manager et CLI sas-viya : Utilisés pour ajuster le serveur CAS sur un déploiement Viya déployé et en cours d'exécution. Ces outils sont utilisés pour modifier les fichiers usermods et logconfig.xml.  

Documentations

Modification de la Configuration du Serveur CAS

Les configurations du serveur CAS peuvent être modifiées à l'aide de SAS Environment Manager, de la CLI sas-viya ou des fichiers patchTransformer yaml.  

  • SAS Environment Manager : Fournit une interface graphique pour modifier les configurations du serveur CAS.  
  • CLI sas-viya : Permet la modification des configurations en ligne de commande. Cela implique de télécharger les configurations sous forme de fichier JSON, de modifier le fichier, puis de mettre à jour la configuration à l'aide du fichier modifié.  
  • Fichier patchTransformer yaml : Implique la création d'un fichier patchTransformer yaml dans le répertoire site-config et sa référenciation dans le fichier kustomization.yaml. Cette méthode est particulièrement utile pour les configurations telles que CAS_DISK_CACHE.  

Documentations:

Gestion du Cycle de Vie du Serveur CAS

Les serveurs CAS peuvent être gérés à l'aide de la CLI kubectl pour les démarrer, les arrêter ou les redémarrer. Cela nécessite des autorisations Kubernetes appropriées pour l'administrateur Viya.  

  • Démarrer : Utilisez kubectl patch avec le paramètre shutdown défini sur false.  
  • Arrêter : Utilisez kubectl patch avec le paramètre shutdown défini sur true.  
  • Redémarrer : Redémarrez tous les serveurs CAS en supprimant les pods gérés par l'opérateur CAS ou redémarrez un serveur CAS spécifique en supprimant les pods associés à cette instance.  

Documentations

Ajout et Suppression de Serveurs CAS

SAS fournit un script (create-cas-server.sh) pour simplifier le processus d'ajout de nouveaux serveurs CAS. La suppression d'un serveur CAS implique la suppression du casdeployment et la suppression de ses références du fichier kustomization.yaml.  

  • Ajout d'un Serveur CAS : Utilisez le script create-cas-server.sh pour générer les fichiers overlays nécessaires, référencez ces fichiers dans le kustomization.yaml, et appliquez le manifeste.  
  • Suppression d'un Serveur CAS : Supprimez le casdeployment à l'aide de kubectl delete casdeployments et supprimez les références overlays correspondantes du fichier kustomization.yaml.

Surveillance et Gestion des Sessions CAS

Les sessions du serveur CAS peuvent être surveillées et gérées à l'aide de la CLI kubectl, de la CLI sas-viya ou de SAS Environment Manager. Cependant, il est important de noter que le tableau de bord Grafana SAS CAS Overview ne fournit pas d'informations au niveau de la session.  

  • CLI kubectl : Permet de surveiller les sessions en examinant les processus à l'intérieur du conteneur CAS et de gérer les sessions en terminant des processus de session spécifiques.  
  • CLI sas-viya : Fournit des commandes pour lister, créer, afficher des informations sur et supprimer des sessions de serveur CAS.  
  • SAS Environment Manager : Offre une interface graphique pour afficher et terminer les sessions du serveur CAS.  

Meilleures Pratiques et Considérations

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.