Azure Container Instance (ACI)

Posté le : 22/03/2021

Partager

Conteneurs et machines virtuelles

Azure Container Instance (ACI)

ACI container

 

Quand on parle de virtualisation, on pense souvent aux machines virtuelles. En réalité, la virtualisation peut prendre de nombreuses formes et les conteneurs en sont un exemple. Quelle est la différence entre un conteneur et une machine virtuelle (VM) ?

  • Les performances du système : la virtualisation traditionnelle veut que chaque VM dispose de son propre système d’exploitation. Elles doivent simuler un serveur physique avec tous ses composants. Elles consomment donc une bonne partie des ressources, juste pour fonctionner. Les conteneurs quant à eux permettent d’isoler une application sans avoir besoin d’un système d’exploitation dédié et d’un logiciel lourd pour simuler les composants physiques du serveur.
  • La portabilité : un conteneur est un environnement virtuel qui permet d’instancier une application avec tous les éléments dont elle a besoin pour fonctionner : fichiers sources, environnement d’exécution, librairies, outils et fichiers. Ceci permet donc la portabilité des applications ; avantage que n’offre pas les machines virtuelles.

Azure offre différents services de conteneurs mais nous allons, à travers cet article, présenter l’Azure Container Instance (ACI) et traiter un cas pratique d’utilisation des ACI pour monter un système de partage de fichiers en SFTP.

Présentation de Azure Container Instance (ACI)

Les ACI sont des « Container as a Service (CaaS) » de Microsoft. Vous demandez la création d’une instance de conteneur basée sur une image et le conteneur est créé pour vous. Vous ne voyez pas d’orchestrateur, vous ne voyez pas de VM, vous ne voyez rien d’autre que votre instance de conteneur. L’ACI permet, sans aucune surcharge et avec un ensemble de commandes facilement scriptables, de créer et de lancer rapidement des applications conteneurisées.

Les fonctionnalités des ACI

Les ACI disposent de nombreuses fonctionnalités parmi lesquelles on peut citer :

  • L’exécution des images de conteneur : les ACI offrent la possibilité d’exécuter vos charges de travail
  • Il est aussi possible de déployer un groupe de plusieurs conteneurs dans un ACI. Ainsi vos conteneurs qui partagent un même cycle de vie, un même réseau local ainsi que les mêmes volumes de stockage pourront être installés sur un seul hôte.
  • L’intégration avec les autres services Azure : vous pouvez par exemple développer une fonction Azure qui, à travers une requête HTPP va déclencher le déploiement d’un groupe de conteneurs.

La facturation des ACI

ACI propose un dimensionnement sur mesure, permettant de sélectionner la quantité exacte de mémoire de sorte que votre demande corresponde parfaitement à l’infrastructure. Vos conteneurs seront facturés à la seconde et pas plus, et n’utiliseront pas un Go de plus que nécessaire. Aussi, il faut noter qu’aucun frais initial n’est nécessaire et aucun frais de résiliation ne sera appliqué.

 

système exploitation linux

système d'exploitation windows

Déploiement d’un ACI

Il existe plusieurs possibilités quant au déploiement d’un ACI. Le déploiement peut se faire en utilisant les différentes méthodes suivantes :

  • Azure command-line (Azure CLI) :

aci déploiement

aci déploiement 2

  • PowerShell :

powershell

powershell déploiement

Création d’un service SFTP dans Azure

De manière générale, le partage de fichiers fait référence à l’envoi de fichiers à d’autres personnes. Le processus d’échanges de fichiers par courriel entraîne la création de nombreuses versions d’un même document, ce qui rend difficile l’identification de la version la plus récente.

De ce fait, de nombreuses entreprises, pour les échanges de documents à l’intérieur et/ou en dehors de leur entreprise, utilisent à ce jour le protocole SFTP.

Nous allons voir ensemble comment nous pouvons utiliser les ACI pour monter un serveur SFTP qui sera connecté à un compte de stockage dans Azure. Cette solution a pour avantage de ne nécessiter que les deux ressources concernées tout en nous dispensant de toute gestion d’une infrastructure supplémentaire.

·       Création d’un partage de fichier via le portail azure :

 

partage fichier azure

portail azure partage fichier

portail partage fichier azure

 

  • Création d’un ACI via ARM

Pour le provisionnement de l’ACI , la présente analyse partira du template azure ressource manager que l’on peut retrouver sur le site de Microsoft . Il est à rappeler que le provisionnement d’un ACI nécessite de définir le type d’image de conteneur. Pour le présent article, l’image open source  « atmoz/sftp :latest » sera utilisée. Cette image dispose de tous les éléments pour déployer un serveur SFTP. Deux principaux éléments sont nécessaires pour configurer et utiliser cette image :

  • Les informations d’identification nécessaires à la connexion au serveur SFTP. Dans notre cas nous utiliserons le type d’authentification en « environnement variables ».
  • Monter les volumes : il s’agit ici de définir le répertoire dans lequel sera monté les volumes. Nous utiliserons dans notre cas le répertoire « sftp » de « File shares » du compte de stockage comme volume persistant du conteneur.

 

Template azure ressource manager (Source : Microsoft) :

 

template azure 1

template azure 2

template azure 3

 

Nous allons procéder au remplacement du code précédent par le code suivant .

Dans le code suivant, il s’agit d’une part, de préciser le groupe de ressources ainsi que le compte de stockage dans lequel se trouve le « File shares » existant, et de l’autre part, de définir les éléments de connexion qui seront utilisés pour se connecter au serveur SFTP.

azure 4 template

azure template 5

Nous allons maintenant rajouter un bloc de code en dessous du bloc du « parameters » pour initialiser les variables . Ici il s’agira de définir les noms des différents éléments de l’ACI et comme évoqué en introduction du provisionnement de l’ACI, nous utiliserons l’image « atmoz/sftp :latest ».

azure template 6

Une fois que cette étape est terminée,  on peut configurer les propriétés de notre ressource pour la conteneurisation. On utilisera le  « File shares » en tant que volume persistant pour le conteneur :

azure template 7

azure template 8

azure template 9

Enfin, arrive la dernière partie de l’azure ressource manager, partie dans laquelle on peut définir  le nom du DNS pour notre ACI :

azure template 10

Le paramétrage de l’ARM étant terminé, nous allons, dans le portail Azure, utiliser la brique « Custom deployment » pour le provisionnement de mon ACI.

 

custom deployment

custom deployment azure

custom deployment 3

 

Le serveur SFTP est ainsi connecté au « file shares » crée lors du provisionnement du compte de stockage.

Les identifiants renseignés lors du déploiement de l’ACI seront ceux utilisés par vos métiers pour se connecter au SFTP pour partager les fichiers dans votre organisation. Vous pourrez donc, directement depuis votre compte de stockage, retrouver tous les documents déposés par vos collègues sur le serveur SFTP.

Ecrit par Donald TOUGOUMA

Contactez-nous Postuler Nos offres d'emploi