Infrastructure as Code | Exigo

Infrastructure as Code : Qu'est-ce que c'est et pourquoi faut-il s'en préoccuper ?

Infrastructure as code for top mlm saas provider image

La nécessité est la mère de l'invention, certes, mais on peut tout aussi bien affirmer que l'invention est la mère de la nécessité, en particulier à une époque marquée par les technologies de l'information. Prenons l'exemple d'Internet. Son invention a donné naissance à des idées inimaginables qui sont rapidement devenues des nécessités. À ce stade avancé de l'ère de l'information, la connectivité à l'internet et l'accès omniprésent via le web sont des nécessités fondamentales. 

Pour que votre entreprise reste pertinente et compétitive, il vous faut non seulement une présence sur le web, mais aussi des outils qui vous permettent d'exploiter la puissance de l'internet pour simplifier la création, la gestion et la distribution des ressources qui hébergent la solution logicielle adaptée à votre secteur d'activité. L'infrastructure en tant que code est l'un des résultats technologiques de cette nécessité commerciale.

Qu'est-ce que l'infrastructure en tant que code ?

L'infrastructure en tant que code est un code qui comprend des définitions lisibles par une machine et qui peut automatiser le processus d'approvisionnement et de configuration des ressources qui accueilleront une solution logicielle. 

Infrastructure as code for top mlm saas provider image

L'infrastructure en tant que code peut fonctionner dans un centre de données sur site afin de simplifier la gestion des ressources de ce centre. Elle peut également contenir un codage propriétaire qui s'exécute dans un centre de données privé et qui est ensuite migré vers le nuage. Ces types de solutions constituent des améliorations par rapport à la gestion manuelle constante de serveurs nus dans les centres de données.

Toutefois, ces types de solutions n'exploitent pas un autre avantage potentiel de l'exécution de l'infrastructure en tant que code. Lorsque l'infrastructure codée est conçue pour communiquer directement avec un nuage à l'aide des interfaces de programmation d'applications (API) du nuage, elle et la plateforme pour laquelle elle est configurée profitent pleinement des avantages du nuage, notamment l'accès illimité à des ressources qui utilisent toujours les technologies les plus récentes. 

Microsoft Azure est l'une des principales plateformes de cloud public et a été le premier à développer les API et les modèles de ressources qui permettent l'Infrastructure as Code. Chez Exigo, notre Infrastructure as Code communique avec la plateforme Azure en s'appuyant sur ces API pour allouer et configurer les ressources. Lorsque nous avons développé notre infrastructure et notre plateforme codée, nous avons largement utilisé .NET, un langage de programmation développé par Microsoft qui, sans surprise, est un citoyen de première classe dans Azure. (Quand je dis "citoyen de première classe", je veux dire qu'Azure reconnaît et accueille .net et que .net, à son tour, joue agréablement et confortablement dans le bac à sable d'Azure).

Notre utilisation de l'information en tant que code automatise le processus de gestion de nos centres de données en nuage, en créant et en approvisionnant automatiquement de nouvelles ressources (telles que des bases de données et des machines virtuelles) en fonction des besoins.

Pourquoi s'en préoccuper ?

L'infrastructure en tant que code, et plus particulièrement notre mise en œuvre, offre plusieurs avantages. (Certains d'entre eux recoupent les "avantages de l'informatique en nuage").

  • Provisionnement instantané
  • Évolutivité
  • Tests avant le lancement
  • Fiabilité 

Instant Provisioning :
De l'achat à la productivité en un clin d'œil

Lorsque vous choisissez une solution SaaS (Software as a Service) pour rationaliser vos processus commerciaux de vente directe, le temps nécessaire pour passer de l'achat à la productivité peut prendre des mois, des semaines ou des minutes.

La façon dont nous avons conçu et mis en œuvre notre infrastructure en tant que code permet cette dernière, un avantage connu sous le nom de "provisionnement instantané". Lorsque nous décidons de créer une ressource, telle qu'une base de données ou une machine virtuelle, nous utilisons un modèle Azure Resource Manager (ARM) pour définir non seulement la ressource souhaitée, mais aussi toutes les propriétés associées à cette ressource, puis nous enregistrons ce code dans un référentiel. 

Cela nous permet de créer une infrastructure pour de nouveaux clients en exécutant simplement le code sauvegardé, qui à son tour fournit automatiquement les ressources nécessaires, ce qui nous permet de rendre un client opérationnel dans les minutes qui suivent la signature du contrat.

Lorsque vos nouvelles ressources sont allouées dans le nuage, vous recevez automatiquement vos identifiants de connexion afin que vous puissiez commencer à personnaliser notre solution et éventuellement prendre votre première commande dans les heures qui suivent.

Évolutivité :
Le ciel est la limite

L'évolutivité est la capacité d'un système à allouer des ressources et donc à améliorer les performances en fonction des besoins. Il existe deux méthodes de mise à l'échelle : la mise à l'échelle verticale et la mise à l'échelle horizontale.

La mise à l'échelle verticale implique l'ajout ou la mise à niveau du matériel existant. Ce processus nécessite une gestion pratique qui est coûteuse et ne permet pas nécessairement une expansion transparente. 

La mise à l'échelle horizontale implique le provisionnement automatique des ressources en fonction des besoins, une petite fonctionnalité pratique rendue possible lorsque l'infrastructure est mise en œuvre sous forme de code. 

Notre infrastructure codée contient des mesures qui dictent les exigences de performance, de sorte que si la charge d'un client devient soudainement trop lourde pour les ressources qu'il utilise actuellement, notre solution fournit automatiquement l'accès à davantage de ressources. 

Notre solution est comme un élastique qui s'étend et se contracte pour s'adapter rapidement à vos besoins d'augmentation ou de réduction des charges à la demande. Le processus est transparent, ce qui signifie que vous ne saurez pas ce qui se passe, vous récolterez simplement la récompense de toujours obtenir la performance pour laquelle vous payez et de ne pas payer pour des ressources que vous n'utilisez pas.

Comme notre solution a été conçue pour communiquer directement avec Azure, nos clients bénéficient des avantages de la mise à l'échelle verticale et de la mise à l'échelle horizontale sans les inconvénients de l'une ou de l'autre. Notre solution garantit une mise à l'échelle horizontale automatique et transparente, tandis qu'Azure gère les coûts et les inconvénients de la mise à l'échelle verticale. 

En résumé : lorsque votre site web a besoin de plus de puissance, notre solution évolue à la volée pour gérer la charge accrue. Et comme nous sommes dans Azure, la charge que nous pouvons gérer est illimitée.

Tester avant de lancer :
Smooth Computing Insurance 

Lorsque vous mettez en œuvre l'infrastructure en tant que code, votre infrastructure reçoit le même traitement que n'importe quel autre code, ce qui présente l'avantage de faciliter les mises à niveau qui peuvent être testées avant d'être mises en production. 

Avec l'infrastructure en tant que code, toutes les modifications apportées à l'infrastructure peuvent être effectuées en un seul endroit, puis testées pour s'assurer qu'elles ne posent pas de problèmes de compatibilité et d'intégration (entre autres) avant d'être mises en production. 

Par exemple, lorsque cela est nécessaire, Exigo apporte des modifications à son infrastructure codée, teste les changements, puis les applique à tous les éléments de l'infrastructure en production directement via les API d'Azure au moyen de leurs modèles en ligne. Ce processus élimine le risque d'erreur humaine : effectuer et tester le changement une seule fois et l'appliquer à l'ensemble de l'infrastructure. 

Fiabilité :
Remettre les points sur les i et les croix sur les t 

Un autre avantage de l'exécution de notre infrastructure en tant que code dans Azure est que nous pouvons approvisionner notre plateforme partout dans le monde en cliquant sur un bouton. 

Par exemple, supposons qu'un centre de données Azure situé dans l'est des États-Unis tombe en panne et qu'il se trouve que votre base de données et d'autres ressources fonctionnaient dans ce centre de données défaillant. Grâce à la manière dont nous avons conçu notre solution, nous pouvons tout provisionner très rapidement ailleurs (en Australie, à l'ouest des États-Unis, en Europe - partout) de sorte que le temps d'arrêt associé à ce sinistre soit minimal, un avantage connu sous le nom de "failover" (basculement). 

En fait, nous promettons à nos clients non seulement un temps d'arrêt minimal en cas de panne, mais aussi une copie exacte de ce qu'ils ont payé - tous les points sur les i, toutes les barres sur les t - tout comme c'était. Toutes les données d'Exigo, y compris celles de nos clients, sont répliquées en temps réel dans plusieurs centres de données. De plus, toutes nos bases de données sont restaurables pendant 35 jours, ce qui signifie que nos clients peuvent choisir n'importe quelle minute, y compris celle-ci, et restaurer la base de données telle qu'elle était à ce moment précis.

Les solutions SaaS qui sont limitées à des centres de données sur site ou privés et qui continuent d'exploiter leurs bases de données à partir de leurs propres centres de données doivent prendre en charge les dépenses liées à la mise en place et à la gestion de sites redondants pour assurer la sauvegarde en cas de défaillance. Ces dépenses sont directement répercutées sur leurs clients. Là où Exigo s'appuie sur la puissance du cloud Azure pour garantir la protection de vos données à moindre coût et tirer pleinement parti de l'envergure mondiale de la plateforme Azure.

L'infrastructure en tant que code :
Invention et nécessité

Ainsi, lorsque vous recherchez une solution basée sur le web pour répondre aux besoins de votre entreprise, gardez à l'esprit que les solutions les plus rapides et les plus efficaces sont basées sur une infrastructure en tant que code qui s'interface directement avec un nuage public. Pensez à poser des questions de ce type à vos fournisseurs de services potentiels :

  • Votre solution fonctionne-t-elle sur site ou dans le nuage ?
  • Quelle technologie utilisez-vous pour gérer les ressources informatiques et cette technologie permet-elle une infrastructure en tant que code ?
  • Votre solution permet-elle de définir une infrastructure codée par le biais d'une API ou d'un modèle ?
  • Votre solution automatise-t-elle le processus de création et d'approvisionnement des ressources ?
  • Votre solution garantit-elle que lorsque vous créez de nouvelles ressources, vous obtenez toujours ce que vous voulez ?

Glossaire

  • API : Une interface de programmation d'application (API) est l'intermédiaire qui permet à différents systèmes informatiques de communiquer efficacement sans que l'un ou l'autre n'ait à partager des informations exclusives. (Imaginez que vous deviez communiquer la même demande à quatre personnes parlant des langues différentes. Une API est comme un traducteur qui communique votre message et renvoie quatre réponses dans la langue que vous comprenez). 
  • Modèle Azure Resource Manager (ARM) : Utilisé pour mettre en œuvre l'infrastructure en tant que code pour les solutions Azure. Le modèle est un fichier JSON (Javascript Object Notation) qui définit l'infrastructure et la configuration de votre solution. Le modèle vous permet de définir une ressource sans avoir à écrire une séquence de commandes de programmation pour la créer. Dans ces modèles, vous spécifiez les ressources que vous souhaitez créer et leurs propriétés respectives. 
  • Base de données : Un ensemble structuré de données qui fonctionne sur un ordinateur et qui est accessible électroniquement.
  • Centre de données : Un ensemble d'ordinateurs (éventuellement hébergés dans un seul bâtiment ou connectés en réseau) qui stockent, traitent et distribuent de grandes quantités de données.
  • Basculement : La capacité de fournir rapidement un jumeau identique d'un programme informatique ou d'une plate-forme logicielle afin de minimiser les temps d'arrêt en cas de panne due à une catastrophe naturelle, par exemple. 
  • Haute disponibilité : Le processus consistant à exécuter plusieurs instances d'un programme logiciel, d'une application ou d'une plate-forme sur différents serveurs, éventuellement situés dans différentes parties du monde, afin de garantir l'absence de temps d'arrêt. Ce processus est efficace mais très coûteux. Avec la haute disponibilité, vous payez pour des ressources "juste au cas où" que vous n'utilisez pas. 
  • Nuage public : Détenus et exploités par des fournisseurs tiers, les nuages publics fournissent des ressources informatiques (comme des serveurs et des espaces de stockage) sur l'internet. Les consommateurs accèdent à ces services à l'aide d'un navigateur web.
  • SaaS : Le logiciel en tant que service ou SaaS (prononcé "sass") est une méthode de fourniture de logiciels par le biais d'un abonnement en ligne auquel un client accède généralement via le web. Le SaaS s'éloigne du paradigme traditionnel qui consiste à créer un programme, puis à l'installer et à l'exécuter sur un ordinateur physique.  
  • Mise à l'échelle verticale : processus consistant à ajouter des ressources à un système informatique existant afin d'augmenter ou d'améliorer les performances. Par exemple, la mise à l'échelle verticale peut impliquer l'ajout de serveurs nus plus performants dans un centre de données ou l'augmentation de la mémoire sur les serveurs existants.  
  • Mise à l'échelle horizontale : processus consistant à augmenter le nombre d'instances d'une solution logicielle pour faire face à une augmentation de la charge (et donc améliorer les performances) ou à réduire les instances pour s'assurer qu'un client ne paie que pour ce qu'il utilise.
  • Provisionnement : Le processus de démarrage ou d'arrêt d'une instance d'une plateforme fonctionnant dans le nuage. Avec une plateforme logicielle fonctionnant sur une infrastructure en tant que code conçue pour s'interfacer directement avec le nuage, l'ensemble de la plateforme peut être lancé d'un simple clic.
  • Machine virtuelle : Une machine virtuelle est une émulation d'un système d'exploitation complet qui s'exécute dans la mémoire d'un autre système d'exploitation, donnant essentiellement à un seul ordinateur hôte la fonctionnalité de deux ordinateurs.
Haut de page