L‘une des propositions de valeur les plus attrayantes de SnapLogic plateforme est la possibilité d‘exécuter notre plateforme sur site dans un centre de données ou une cloud plateforme à l‘intérieur d‘un réseau virtuel privé. Cependant, le fait d‘être un fournisseur cloud nécessite que le travail de conception réel ait lieu dans notre environnement de studio de conception, ce qui entraîne une exigence de connectivité entre le nœud et le plan de contrôle où les pipelines s‘exécutent. L‘objectif de ce billet de blog est de présenter un jour dans la vie d‘un nœud JCC Groundplex, comment il est créé, quelles sont les exigences pour fonctionner, et surtout les exigences de configuration du réseau et les meilleures pratiques couvrant non seulement le comment mais aussi le pourquoi.
Qu‘est-ce que le nom ? Snaplex JCC Node ?
En d‘autres termes, un Snaplex est un runtime. JCC est l‘acronyme de Java Component Container (conteneur de composants Java). Comme son nom l‘indique, il contient le code qui exécute tous les pipelines et surveille la santé du nœud, l‘utilisation et tous les aspects permettant d‘assurer son bon fonctionnement. Essentiellement, il y a deux processus centraux qui s‘exécutent dans le JCC, Monitor et Process.
Acquisition du nœud Groundplex
SnapLogic Manager permet de configurer un nœud Snaplex pour servir de runtime aux pipelines de traitement sur site. Les options pour un nœud Snaplex sont les suivantes :
Que contient exactement le nœud ?
Le nœud est simplement un fichier WAR ou un paquetage Java compilé. L‘exigence la plus fondamentale pour exécuter le paquetage est un JDK. L‘image ci-dessus montre comment SnapLogic fournit quatre options qui peuvent être exécutées à l‘intérieur :
- Serveur Windows
- Distro Linux
- Paquet RPM
- Image Docker
Les formats disponibles sont conçus pour la portabilité ainsi que pour des exigences minimales en matière d‘infrastructure pour faire fonctionner le nœud. L‘image/le paquet est léger et peut utiliser un certain nombre de logiciels de gestion de paquets pour tirer parti de la mise à l‘échelle automatique et de l‘équilibrage de charge dans un environnement Kubernetes. La "configuration" est l‘instruction qui établit la connectivité entre le Groundplex (runtime) et le Control Plane (Design Surface) et est abordée ci-après.
La plate-forme SnapLogic est un iPaaS fonctionnant sur le site cloud et nécessite une connectivité permanente car elle récupère les dernières métadonnées d‘instruction nécessaires à l‘exécution.
Les exigences du réseau
Le nœud est un moteur d‘exécution. Il exécute les pipelines d‘intégration, les tâches programmées, les tâches déclenchées par l‘API qui sont stockées sous forme de métadonnées dans le plan de contrôle à l‘adresse cloud. Les données de connexion illustrées ci-dessus sont les instructions permettant au nœud de "rappeler son domicile" lorsqu‘il démarre. C‘est ici que les choses deviennent un peu plus techniques.
Le premier appel à la maison
Au démarrage, le nœud chargera les paramètres de connexion et établira une connexion avec le plan de contrôle. À l‘heure actuelle, le PC réside dans la région ouest des États-Unis, avec des plans d‘expansion possibles dans les régions EMEA et UE.
La première chose à faire pour le JCC est de s‘enregistrer avec le plan de contrôle en utilisant le fichier "slproz" téléchargé sur le JCC via la chaîne de configuration montrée ci-dessus. Le processus d‘enregistrement implique des échanges de clés, des paramètres de configuration de la machine, y compris le type de nœud Snaplex, ainsi que des certificats TLS. Une fois que le JCC est jugé conforme ou non, le statut est communiqué au tableau de bord afin que l‘utilisateur puisse en être informé.
Débit, coût de connexion et proxies
La connexion est établie à l‘aide d‘une bibliothèque HTTP et la configuration par défaut permet au nœud de vérifier toutes les 15 minutes s‘il y a des mises à jour du nœud. Cela se fait juste après l‘enregistrement où le panneau de contrôle signe le certificat TLS avec la clé spécifique à l‘organisation créée au moment de la création de l‘organisation. Les connexions TCP ont un coût car TCP peut être très "bavard" et bloquer des ressources sur le point final dans le plan de contrôle. C‘est pourquoi des valeurs de temporisation sont configurées pour fermer la connexion une fois la conversation terminée.
Dans la plupart des configurations, et à moins que la fonction SnapLogic APIM ne soit activée, le JCC Groundplex se trouve derrière un proxy. Les serveurs proxy remplissent de nombreuses fonctions, notamment celle de "cacher" le point d‘extrémité de l‘Internet public, d‘appliquer des politiques et d‘étrangler les connexions. SnapLogic vérifie périodiquement l‘état des connexions pour s‘assurer qu‘elles s‘ouvrent et se ferment correctement.
Websockets et communications bidirectionnelles
Comme le JCC ne permet pas les appels entrants et une fois que la connexion entre le nœud et le plan de contrôle est établie, une connexion WebSocket est établie à partir du plan de contrôle à l‘aide de la bibliothèque Python Async pour échanger des données de manière bidirectionnelle. L‘utilisation du protocole WebSocket est nécessaire car le nœud et le plan de contrôle doivent rester en communication constante car le nœud ne conserve pas d‘informations d‘état, c‘est-à-dire qu‘il n‘y a pas de mécanisme sur le nœud pour stocker des données d‘exécution ; par conséquent, le nœud n‘est pas au courant de l‘état général des pipelines ou des exécutions parallèles, etc. En outre, comme les utilisateurs peuvent mettre à jour les pipelines, les snaps ou tout autre actif dans SnapLogic plateforme, et que ces données sont mises en cache dans le nœud, une connexion de socket ouverte doit persister afin de garantir que les métadonnées des pipelines ne sont pas périmées et qu‘elles reflètent toutes les modifications les plus récentes.
Rester en vie et prendre des nouvelles des voisins
En plus de la "vérification" avec le plan de contrôle, une partie de la vie du réseau JCC est la connaissance de ses voisins. Il existe diverses séquences de "battements de cœur" qui transmettent au plan de contrôle diverses statistiques telles que l‘unité centrale, la mémoire et le disque. Les demandes de redémarrage, les nouvelles versions de WAR et les clés de cryptage pour le stockage font partie de l‘échange constant de données au cours de la vie du nœud. Tous ces éléments font partie d‘un service Monitor qui suit l‘état de santé du nœud et le redémarre pour éviter les blocages ou les gels. Il suit et conserve également une liste de voisins où il est vérifié que d‘autres nœuds participent à la distribution des exécutions de pipeline entre les nœuds.
Des mises à jour d‘état sont envoyées toutes les 20 secondes au plan de contrôle à partir de chaque nœud. Les données communiquent l‘état du nœud, les signaux télémétriques tels que l‘utilisation de l‘unité centrale, l‘utilisation de la mémoire et d‘autres données relatives aux performances et à l‘état du système, ainsi que la distribution de l‘exécution du pipeline en fonction de l‘utilisation globale du système.
Équilibrage de la charge
Le plan de contrôle contrôle la fonction d‘équilibrage de la charge pour l‘exécution des pipelines, mais pour réaliser l‘équilibrage de la charge entre les nœuds, il faut qu‘un équilibreur de charge dirige le trafic entre les nœuds afin d‘obtenir une haute disponibilité et un basculement.
Le processus de surveillance au sein du JCC vérifiera constamment l‘utilisation du CPU et de la mémoire pour un certain seuil (85 % pour le CPU, 95 % pour la mémoire avec un paramètre d‘indicateur de fonctionnalité). Cela permet de s‘assurer que la charge est répartie uniformément entre les nœuds.
En résumé, le nœud JCC de SnapLogic Groundplex est un moteur d‘exécution qui permet l‘exécution de pipelines et de tâches d‘intégration au sein de SnapLogic plateforme, qui peut être exécuté sur site dans un centre de données ou au sein d‘un réseau virtuel privé sur le site cloud. Le nœud est un paquet léger qui peut être exécuté sur divers systèmes d‘exploitation et peut être géré à l‘aide d‘un logiciel de gestion de paquet pour la mise à l‘échelle automatique et l‘équilibrage de la charge. Le nœud établit une connexion avec le plan de contrôle SnapLogic, où les instructions de pipeline sont stockées, par le biais d‘un processus de configuration qui comprend des échanges de clés et de certificats TLS. La connexion est maintenue par des vérifications régulières, dont la fréquence et la durée sont déterminées par des valeurs de temporisation. Le nœud peut se trouver derrière un serveur proxy dans la plupart des configurations, et l‘utilisation de la fonction SnapLogic APIM peut permettre au nœud de communiquer directement avec le plan de contrôle.