L’infrastructure en tant que code

De nombreuses organisations ont commencé à envisager ou ont déjà commencé à déployer une infrastructure informatique par le biais de définitions basées sur le code, souvent appelées infrastructure en tant que code (IaC). En principe, le processus comprend les étapes suivantes :

  1. Sélection d’un langage d’automatisation, tel que CloudFormation, Terraform, les modèles ARM, Bicep ou autres
  2. Définition de divers paramètres d’infrastructure, tels que la configuration du réseau virtuel, les spécifications d’une machine virtuelle et les équilibreurs de charge entrants ou les proxys inverses
  3. Exécution de la « construction » de cet environnement à partir d’un outil manuel initié par l’utilisateur ou d’un autre processus automatisé

Le résultat du déploiement de l’IaC est un ensemble de ressources qui peuvent parfaitement être déployées manuellement, en sélectionnant des configurations et des paramètres individuels, mais qui, grâce à l’IaC, peuvent être déployées avec une forte cohérence, redéployées automatiquement ou légèrement ajustées pour se conformer à de nouvelles spécifications.

ArcGIS est généralement compatible avec de nombreuses approches et systèmes IaC, qui sont souvent conçus pour fonctionner dans un environnement ou un système Cloud spécifique, tel qu’AWS CloudFormation, les modèles Azure ARM ou GCP Cloud Deployment Manager. Esri crée également des outils pour certains fournisseurs, en particulier des modèles AWS CloudFormation et des modèles Azure ARM, utilisables comme la base d’une configuration ultérieure ou étendue.

Une fois l’infrastructure déployée à l’aide d’un fournisseur ou d’un outil IaC, le logiciel ArcGIS peut être déployé manuellement ou automatiquement sur ces systèmes. Pour plus d’informations, reportez-vous à la section Automatiser le déploiement de logiciels ArcGIS.

Certains modèles IaC sont conçus pour un déploiement fréquent dans lesquelles les modifications sont fréquemment intégrées à l’infrastructure ou chaque fois que le code change. Ce modèle peut être difficile à harmoniser avec les systèmes ArcGIS, car ArcGIS Pro et ArcGIS Enterprise reposent tous deux sur un environnement de réseau et d’infrastructure relativement stable et cohérent. Par conséquent, si des modifications de l’IaC sont nécessaires, il est recommandé de procéder soigneusement à ces modifications comme pour toute modification d’un système informatique d’entreprise (planification, test, révision, ajustement) ou de combiner ces systèmes avec d’autres outils d’opérations de développement qui permettent l’automatisation du déploiement de logiciels, afin que l’ensemble du système puisse être reconstruit et déployé à une cadence régulière.

IaC et ArcGIS

Parmi les autres suggestions d’utilisation de l’infrastructure en tant que code avec ArcGIS, on compte les suivantes :

  • L’IaC est un excellent outil pour gérer l’infrastructure et les configurations de base, mais pas pour gérer l’état d’un système. L’« état » d’un système ArcGIS comprend les utilisateurs, les éléments, le contenu, les services et les données. L’IaC peut définir le « matériel » approprié et l’installation du logiciel, mais la restauration de l’état d’un système peut être complexe et prendre du temps.
  • Il est plus simple d’utiliser l’IaC pour déployer le matériel au début d’un projet (ou pour un nouvel environnement) que d’essayer de mettre à jour un environnement existant. Les mises à jour peuvent ajuster les configurations de réseau, le nommage des machines, les règles de stockage ou de pare-feu, ou d’autres conditions sur lesquelles le logiciel s’appuie. Si le logiciel n’a pas connaissance de ces changements ou n’y est pas préparé, ces changements au niveau de l’infrastructure peuvent entraîner une instabilité ou une interruption de service. Si on compare un système ArcGIS fonctionnel à une voiture qui passe dans la rue, vous ne vous attendriez pas à changer les pneus de la voiture en cours de route, ou à passer d’un moteur essence à un moteur diesel pendant que le moteur tourne.
  • D’autres langages ou fournisseurs IaC sont probablement compatibles avec ArcGIS. En général, lorsque vous examinez une approche IaC potentielle, tenez compte des étapes de configuration manuelle nécessaires pour le matériel et l’infrastructure, essayez de les automatiser de manière séquentielle et passez au déploiement et à la configuration du logiciel une fois qu’elles sont terminées.

DevOps, CI/CD et ArcGIS

Le terme DevOps fait généralement référence à un processus de déploiement piloté par code, où les validations ou les mises en production déploient automatiquement un élément, remplaçant ce qui existait auparavant. D’autres termes utilisés dans ce domaine incluent l’intégration continue (ou CI) et le déploiement continu (ou CD) souvent combinés en tant que CI/CD. Ces termes proviennent du monde de l’ingénierie logicielle et de la création de développement d’applications et d’applications logicielles personnalisées, où le déploiement et les tests continus contribuent à la publication de logiciels.

ArcGIS est un progiciel commercial prêt à l’emploi et, en tant que tel, il n’est pas parfaitement en phase avec l’utilisation actuelle des pratiques CI/CD ou DevOps par de nombreuses organisations dans le cadre du développement d’applications personnalisées. ArcGIS, une fois déployé, commence à créer l’état et les configurations dans ArcGIS Enterprise, le contenu du portail, les services, le contenu de l’utilisateur et les configurations. Le redéploiement d’ArcGIS Enterprise ou d’une nouvelle organisation ArcGIS Online détruit cet état existant, à moins qu’une sauvegarde ne soit restaurée, de sorte que vous ne pouvez plus afficher ce que vous avez créé.

Pour qu’une culture DevOps soit adoptée avec les systèmes ArcGIS, une organisation doit effectuer l’une ou l’autre des actions suivantes :

  • Gérer un déploiement assez rigide avec un ensemble fixe de contenus, ou un contenu soigneusement géré, dont vous pouvez automatiser le déploiement à partir d’un système « vierge ». Par exemple, une application de simple visualisation qui inclut un ensemble statique de données basées sur des fichiers peut être déployée toutes les nuits, publication ou mise à jour automatique des services Web incluses.
  • Identifier un moyen fiable d’extraire l’état, par exemple avec WebGISDR, redéployer les composants du système et la configuration de base, puis redéployer l’état.
Top