12.2 Technologies de déploiement d'applications infonuagiques et infonuagiques natives
Objectifs d'apprentissage
À la fin de cette section, vous serez en mesure de :
- Comprendre la technologie de déploiement infonuagique
- Connaître les options de technologie de déploiement infonuagique
- Expliquer les cas d'utilisation et l'implémentation de la technologie de déploiement infonuagique
- Sélectionner les technologies de déploiement infonuagique
- Connaître l'avenir des technologies de déploiement infonuagique
Diverses technologies infonuagiques peuvent être utilisées pour déployer des applications infonuagiques et infonuagiques natives. Ces technologies diffèrent dans leur implémentation et leur utilisation. Bien que ces technologies couvrent les services de stockage, de réseau et de calcul, l'accent sera mis sur les options de calcul. De nombreuses options de déploiement sont disponibles, et il n'y a pas de bon ou de mauvais choix. Seul un sous-ensemble de ces options est applicable au déploiement d'applications infonuagiques natives. Cependant, toutes les options seront couvertes car les solutions d'entreprise sont généralement des solutions hybrides qui peuvent combiner des composants sur site, infonuagiques et infonuagiques natifs. De nombreuses organisations devront implémenter plus d'une option. En conséquence, sélectionner la meilleure option pour prendre en charge les charges de travail tout en contrôlant la complexité peut être une tâche ardue.
Introduction aux technologies de déploiement infonuagique
La livraison de services informatiques, tels que des bases de données, des logiciels, des analyses et du stockage via Internet, est appelée informatique en nuage (cloud computing). Le modèle d'informatique en nuage est composé de trois modèles de service — infrastructure en tant que service (Infrastructure as a Service) (IaaS), plateforme en tant que service (Platform as a Service) (PaaS) et logiciel en tant que service (Software as a Service) (SaaS) — et de quatre modèles de déploiement — nuage privé (private cloud), infonuage communautaire (community cloud), nuage public (public cloud) et nuage hybride (hybrid cloud). La Figure 12.20 décrit la relation entre les modèles de déploiement infonuagique, les modèles de service et les technologies de déploiement infonuagique.
Lors de l'examen des déploiements de charges de travail et de services, trois considérations architecturales clés sont à prendre en compte. Premièrement, les modèles de déploiement dans le nuage sont évalués, offrant des choix quant à l'endroit où les modèles de service sont déployés, tels que les environnements de nuage public, hybride, communautaire ou privé. Deuxièmement, les options de modèle de service sont évaluées pour déterminer le niveau et le type de services, y compris l'infrastructure en tant que service (IaaS) et la plateforme en tant que service (PaaS). Chacun de ces modèles de service infonuagique sera discuté plus en détail. Enfin, les charges de travail et les services sont concrétisés dans le nuage à l'aide de diverses technologies de déploiement, allant du serveur physique (c'est-à-dire des serveurs physiques haute performance dédiés à un seul client où la charge de provisionnement, de maintenance ou de mise à l'échelle des applications sur ces serveurs incombe au client) à l'informatique sans serveur (serverless computing) (c'est-à-dire où les clients déploient des applications sans la charge de provisionner, de maintenir ou de mettre à l'échelle ces applications, car elles sont fournies par le fournisseur de services infonuagiques). Ces technologies servent de fondement à l'exécution d'applications infonuagiques et infonuagiques natives, permettant aux organisations de tirer parti des avantages de l'informatique en nuage. Comprendre ces options permet aux entreprises de sélectionner l'approche la plus appropriée, garantissant que les performances, la vitesse de déploiement, l'extensibilité, la portabilité et la sécurité s'alignent sur les exigences commerciales tout en gérant efficacement les coûts. Les entreprises doivent prendre en compte différents facteurs lors du déploiement de diverses charges de travail et services dans un environnement infonuagique. Par exemple, le calcul haute performance (high-performance computing (HPC)) exige des ressources de calcul et de mémoire importantes, tandis que les applications héritées peuvent avoir des exigences de ressources moindres.
Modèles de service infonuagique
Les trois modèles de service infonuagique — IaaS (IaaS), PaaS et SaaS — définissent une combinaison de ressources de technologie de l'information (par exemple, serveurs de calcul, stockage, mémoire, intergiciels) offertes par un fournisseur de services infonuagiques et ne sont pas mutuellement exclusifs. Ces modèles de service modifient la façon dont les ressources de technologie de l'information (TI) sont consommées. Traditionnellement, les ressources TI étaient achetées, gérées et maintenues dans le centre de données sur site d'une entreprise. Les modèles de service d'informatique en nuage (cloud computing), en revanche, offrent une solution plus économique où ces ressources TI sont accessibles et mises à l'échelle à la demande auprès d'un fournisseur de services infonuagiques à un coût prévisible. Ces modèles de service sont classés comme infrastructure en tant que service (Infrastructure as a Service) (IaaS), plateforme en tant que service (PaaS) et logiciel en tant que service (Software as a Service) (SaaS). Les sections suivantes détaillent ces trois modèles de service infonuagique.
Infrastructure en tant que service (IaaS)
L'infrastructure en tant que service (Infrastructure as a Service (IaaS)) est un accès à la demande à une infrastructure de calcul hébergée dans le nuage qui comprend des serveurs, du stockage et des ressources réseau. Ces ressources peuvent être provisionnées, configurées et utilisées par le client comme le sont les ressources sur site. La différence est que le fournisseur de services infonuagiques héberge, gère et maintient ces ressources dans ses propres centres de données, comme le montre la Figure 12.21.
Les clients IaaS accèdent à ces ressources via Internet et paient pour ces services sur la base d'un abonnement ou d'un modèle de paiement à l'utilisation. L'infrastructure se compose de trois composants principaux : le calcul pour les tâches de traitement, le stockage et le réseau. Le composant (component) de calcul pourrait, par exemple, inclure une capacité de traitement à usage général ou des capacités de traitement plus spécifiques telles qu'un processeur graphique haute vitesse (GPU) ou le calcul haute performance (HPC). Le composant de stockage pourrait prendre en charge différents besoins de stockage tels que le stockage d'objets, le stockage par blocs ou le stockage de fichiers. Enfin, le composant réseau permet aux composants de calcul et de stockage de communiquer.
Les ressources IaaS sont mutualisées et mises à la disposition de plusieurs clients différents simultanément. Le coût des services varie en fonction des technologies choisies. Les clients IaaS (IaaS) utilisent ces services à la demande, où les ressources demandées sont provisionnées et livrées au client en quelques minutes ou heures, par opposition à des jours, des semaines ou des mois comme c'est le cas avec les ressources informatiques traditionnelles sur site. L'IaaS offre également aux clients la flexibilité de faire évoluer les ressources à la hausse ou à la baisse en fonction de leurs besoins.
Plateforme en tant que service (PaaS)
Comme discuté précédemment, l'IaaS est un ensemble de ressources de calcul, de stockage et de réseau qui ont été virtualisées par un fournisseur de services infonuagiques et configurées par le client pour répondre à ses besoins. Le PaaS tire parti de toutes les ressources virtualisées de l'IaaS et y ajoute. La plateforme en tant que service (Platform as a Service (PaaS)) est un accès à la demande à une plateforme hébergée dans le nuage pour développer, exécuter et gérer des applications en pré-emballant des intergiciels, des environnements d'exécution de langage et des outils sous forme de conteneurs. Le fournisseur de services infonuagiques héberge, gère et maintient tous les logiciels inclus dans la plateforme. Cela inclut les serveurs, le stockage et les services réseau. Cela inclut également le système d'exploitation, l'intergiciel et l'environnement d'exécution. La Figure 12.22 illustre comment les clients PaaS peuvent déployer leur application et leurs données.
Le PaaS facilite généralement le démarrage rapide d'une application. Le PaaS est rentable car les clients n'ont pas à supporter le coût de la gestion de l'environnement d'exécution de leurs applications. Les fournisseurs de services infonuagiques PaaS fournissent généralement des outils tels que DevOps (DevOps) et des outils de collaboration, ainsi que des places de marché API (API) en tant que services qui peuvent être facilement intégrés aux applications. Le PaaS offre également aux clients la flexibilité de faire évoluer les ressources à la hausse ou à la baisse en fonction de leurs besoins.
Logiciel en tant que service (SaaS)
Le logiciel en tant que service (Software as a Service (SaaS)) est un logiciel ou une application hébergée dans le nuage, prête à l'emploi, à laquelle les utilisateurs finaux accèdent avec un client (par exemple, un navigateur web, un client de bureau, une application mobile) via un modèle d'abonnement. Le SaaS tire parti de toutes les ressources du PaaS, mais inclut également l'application et les données, comme le montre la Figure 12.23.
Contrairement à l'IaaS (IaaS) et au PaaS, le SaaS présente le plus haut niveau d'abstraction où le fournisseur de services infonuagiques héberge, gère et maintient toutes les couches de la pile, y compris l'application ainsi que toute l'infrastructure requise pour fournir le service d'application. Cela permet à l'application SaaS d'être toujours mise à niveau vers la dernière version. Les applications SaaS sont extensibles à n'importe quel niveau de la pile. Des ressources d'infrastructure supplémentaires telles que la puissance de calcul et des ressources de plateforme, telles que des bases de données, peuvent être ajoutées au besoin.
Les ressources SaaS sont également mutualisées, plusieurs utilisateurs accédant au même pool de ressources. Les locataires auraient accès au même environnement hébergé ; cependant, ils auraient leur propre espace dédié pour stocker leurs données en toute sécurité. Les applications SaaS sont rentables par rapport aux autres modèles de service infonuagique car le fournisseur de services infonuagiques maintient et gère l'ensemble de la pile. Les applications SaaS sont également rentables par rapport aux applications traditionnelles hébergées sur site où les entreprises devraient supporter le coût du matériel en plus du coût continu du support informatique.
L'un des avantages importants de l'informatique en nuage (cloud computing) est l'automatisation. Selon le modèle de service choisi, les organisations peuvent réduire les couches de gestion du matériel, de l'infrastructure et des applications. Cela réduit les coûts et les efforts d'investissement dans ces ressources et permet aux organisations de se concentrer davantage sur l'innovation. Pour qu'une organisation choisisse entre les modèles de service infonuagique et les solutions sur site, elle doit équilibrer le niveau de complexité et l'effort d'investissement dans chaque solution. Ces solutions présentent un spectre allant de la complexité élevée et de l'effort d'investissement important à la simplicité et à l'effort d'investissement faible, comme le montre la Figure 12.24.
Les solutions sur site et IaaS offrent le plus grand niveau de flexibilité mais sont les plus complexes et nécessitent plus d'efforts d'investissement. Ces solutions augmentent également les coûts car elles nécessitent l'embauche de personnel système, car ces solutions exigent un niveau de connaissance et de gestion des ressources d'infrastructure plus élevé. En allant de gauche à droite, les solutions PaaS (PaaS) sont moins complexes avec moins d'efforts d'investissement et sont généralement gérées par les développeurs d'applications. Enfin, le SaaS (SaaS) est le moins flexible, mais aussi le moins complexe, et nécessite le moins d'efforts d'investissement. Les solutions SaaS sont des applications ou des logiciels qui ne nécessitent aucune installation ou mise à niveau manuelle, et l'utilisateur final peut donc être n'importe qui. De nombreuses organisations utilisent une combinaison de ces solutions avec la flexibilité de modifier les modèles de service utilisés en fonction de l'évolution de leurs besoins.
Modèles de déploiement infonuagique
Les modèles de déploiement infonuagique dictent la manière dont les services infonuagiques sont implémentés, hébergés et accessibles par les utilisateurs finaux. Ils reposent sur le principe de la virtualisation de la puissance de calcul des serveurs en applications segmentées et logicielles offrant des capacités de traitement, de stockage et de réseau. Les sections suivantes détaillent les différents modèles de déploiement infonuagique, y compris les nuages privés, communautaires, publics et hybrides.
Modèle de nuage public
Un nuage public (public cloud) est un modèle de déploiement infonuagique où les ressources sont accessibles à distance par n'importe qui, offertes via des abonnements ou des plans tarifaires à la demande. Un modèle de déploiement de nuage public est présenté dans la Figure 12.25. Cette approche permet la flexibilité de provisionner des ressources à la demande et de ne payer que ce qui est consommé. Les ressources du nuage public sont détenues et gérées par le fournisseur de services infonuagiques. Ce type d'hébergement infonuagique permet aux fournisseurs de services infonuagiques de fournir divers services à une variété de clients. Les ressources d'un fournisseur de services infonuagiques sont provisionnées pour tout type de client, des utilisateurs individuels aux grands groupes industriels.
Modèle de nuage privé
Un nuage privé (private cloud) est un modèle de déploiement infonuagique où les ressources sont dédiées à un seul client, tel qu'une seule organisation pour un usage interne, où les ressources infonuagiques sont accédées et gérées par une organisation. Un modèle de déploiement de nuage privé est présenté dans la Figure 12.26. Il n'est pas ouvert au public. Les nuages privés sont isolés et contiennent la sécurité appropriée pour en restreindre l'accès. Ils sont protégés par des pare-feu robustes et un environnement sécurisé supervisé. Les nuages privés peuvent fonctionner sur site mais peuvent également fonctionner sur des centres de données appartenant à des fournisseurs à distance. Les ressources du nuage privé sont gérées soit en interne par l'organisation, soit par un tiers. La Figure 12.26 montre deux nuages privés. Les ressources sécurisées d'un fournisseur de services infonuagiques sont provisionnées et dédiées à une organisation.
Modèle d'infonuage communautaire
Un infonuage communautaire (community cloud) est un modèle de déploiement infonuagique où les ressources ne sont accessibles que par un groupe sélectionné d'organisations. Les ressources d'un infonuage communautaire sont mutuellement partagées entre les organisations qui appartiennent à une communauté ou une industrie particulière. Des exemples d'infonuages communautaires sont les nuages pour les banques ou les gouvernements. Les membres de la communauté ou de l'industrie partagent généralement des préoccupations similaires en matière de confidentialité, de performance et de sécurité. Un infonuage communautaire se compose d'une infrastructure qui intègre les services de différents nuages pour répondre aux besoins spécifiques de la communauté ou de l'industrie. Les ressources de l'infonuage communautaire sont gérées soit par les membres de la communauté ou de l'industrie, soit par un tiers. La Figure 12.27 présente un modèle de déploiement d'infonuage communautaire et montre deux infonuages communautaires. Les ressources d'un fournisseur de services infonuagiques sont provisionnées et dédiées à une communauté d'organisations ou d'entités gouvernementales.
Modèle de nuage hybride
Un nuage hybride est une architecture de calcul distribué avec deux environnements ou plus composés de nuages privés et publics (public cloud) et d'une infrastructure sur site. Un modèle de déploiement de nuage hybride est présenté dans la Figure 12.28. Ce modèle offre une plus grande flexibilité par rapport aux autres modèles de déploiement infonuagique car il assure l'orchestration et la gestion de tous les environnements, ce qui permet aux clients d'exécuter des charges de travail là où ils en ont besoin, augmentant ainsi la portabilité de la charge de travail (workload) sur tous les environnements infonuagiques.
Options de technologies de déploiement infonuagique
Les technologies de déploiement infonuagique offertes par les fournisseurs de services infonuagiques incluent les serveurs physiques, les machines virtuelles (VM) et les conteneurs. Les sections suivantes détaillent chacune de ces technologies de déploiement. Une autre technologie de déploiement disponible, mais peu utilisée, sont les unikernels. Les unikernels sont également discutés en détail dans les sections suivantes. L'IaaS (IaaS) et le PaaS (PaaS) sont deux modèles de service par lesquels ces technologies de déploiement sont fournies. Il existe des modèles de service supplémentaires par lesquels les technologies de déploiement sont fournies : les conteneurs en tant que service (Containers as a Service) (CaaS) (c'est-à-dire une version de l'IaaS où les applications sont déployées, gérées et mises à l'échelle à l'aide d'une virtualisation basée sur des conteneurs) ; et l'informatique sans serveur (serverless computing), également connue sous le nom de fonction en tant que service (Function as a Service) (FaaS). La Figure 12.29 montre comment le PaaS et le FaaS peuvent tirer parti du CaaS ou de l'IaaS pour le déploiement. Le CaaS est positionné entre l'IaaS et le PaaS dans la pile de l'informatique en nuage (cloud computing). Le CaaS tire parti de la virtualisation des ressources de calcul, de stockage et de réseau de l'infrastructure IaaS sous-jacente. Le PaaS permet aux utilisateurs de se concentrer sur les dépendances des applications et les environnements d'exécution tout en ayant moins de contrôle sur le système d'exploitation et une portabilité limitée. Le CaaS, en revanche, restitue ce contrôle car il offre une portabilité accrue en facilitant la virtualisation et la personnalisation du système d'exploitation dans les déploiements conteneurisés.
Options de déploiement IaaS
Les serveurs physiques, les machines virtuelles, les unikernels et les conteneurs sont mis à disposition dans un modèle de service infonuagique IaaS. Ces options de déploiement offrent un niveau de contrôle de l'infrastructure pour répondre à des exigences de performance spécifiques, des considérations de conformité et des dépendances héritées. Les serveurs physiques offrent le plus de contrôle et de flexibilité, mais avec plus de frais généraux pour les maintenir. En passant des serveurs physiques aux conteneurs, les options de déploiement nécessitent moins de frais généraux car il y a un niveau d'automatisation accru qui rend ces options plus rapides et plus faciles à provisionner ou à démarrer. Elles sont également plus portables. Ces quatre options de déploiement, par ordre de plus de contrôle versus plus de portabilité, sont illustrées dans la Figure 12.30.
Serveur physique
Un serveur physique (bare metal server) est un serveur infonuagique haute performance composé d'un serveur physique non virtualisé à locataire unique. Les clients ont un contrôle total sur les composants physiques du serveur (matériel, calcul et ressources de stockage) pour les optimiser afin de s'adapter à des charges de travail spécifiques. Ces serveurs peuvent exécuter n'importe quelle quantité de travail pour le client, ou peuvent avoir plusieurs utilisateurs simultanés, mais ils sont entièrement dédiés au client.
Machines virtuelles
Une machine virtuelle (virtual machine (VM)) est une virtualisation d'un système informatique. Le processus de création de versions "virtuelles" logicielles de quelque chose comme le calcul, le stockage, la mise en réseau ou les applications est appelé virtualisation. La virtualisation est réalisable grâce à un hyperviseur, le logiciel qui s'exécute au-dessus d'un serveur physique ou d'un hôte de calcul qui le virtualise.
Les hyperviseurs virtualisent les ressources, telles que les CPU, la RAM, le réseau et, dans certains cas, le stockage, du serveur physique. L'hyperviseur divise ces ressources tout en allouant ce qui est nécessaire pour chaque système d'exploitation d'une instance de serveur virtuel (VSI). L'hyperviseur, également appelé moniteur de machine virtuelle (VMM), est une couche logicielle qui se situe entre le matériel physique et les VSI qui s'exécutent au-dessus. L'hyperviseur permet l'ordonnancement de plusieurs VSI avec ces ressources divisées. Ainsi, plusieurs serveurs virtuels peuvent fonctionner sur un seul serveur physique. Les hyperviseurs offrent également un niveau de sécurité entre les VSI afin que les données d'un VSI ne soient pas accessibles depuis un autre, maintenant l'isolation entre eux, comme indiqué par les lignes pointillées entre les VSI dans la Figure 12.31.
La virtualisation via des hyperviseurs rend possible la mutualisation des VSI. Cela réduit le coût du calcul. Les serveurs physiques peuvent être assez coûteux individuellement. La virtualisation est un moyen rentable d'exécuter plusieurs serveurs virtuels sur un seul ordinateur physique, maximisant ainsi l'utilisation des ressources et réduisant les coûts.
Comme le montre la Figure 12.32, les machines virtuelles fonctionnent comme un serveur physique qui s'exécute sur un hyperviseur. Elles peuvent exécuter leurs propres systèmes d'exploitation différents et sont complètement indépendantes les unes des autres. L'exécution de plusieurs machines virtuelles à partir d'un seul serveur physique réduit également considérablement l'empreinte physique de l'infrastructure d'un client. Les machines virtuelles augmentent l'agilité et la vitesse car elles peuvent être provisionnées rapidement et plus facilement, avec l'automatisation, par rapport au provisionnement d'un tout nouveau serveur physique et environnement. Cela réduit également les temps d'arrêt en cas de défaillance inattendue d'une machine virtuelle car elles sont portables et peuvent être déplacées rapidement d'un hyperviseur à un autre sur un serveur physique complètement différent.
Unikernels
Introduit à l'origine sous le nom de MirageOS, un unikernel (unikernel) est une image machine à usage unique qui est spécialisée au moment de la compilation en un noyau autonome dédié avec uniquement les bibliothèques nécessaires pour exécuter l'application. Une fois déployés sur une plateforme infonuagique, les unikernels sont protégés contre toute modification. Les unikernels sont construits en compilant le code source de l'application directement dans un système d'exploitation personnalisé qui n'inclut que les fonctionnalités requises par la logique de l'application, comme le montre la Figure 12.33. Ce sont des images machine spécialisées qui s'exécutent directement sur l'hyperviseur (hypervisor) d'un serveur ou sur un serveur physique. Les unikernels sont considérés comme plus sécurisés, par rapport aux autres options de technologie de déploiement infonuagique, en raison de leur surface d'attaque plus petite.
Les unikernels offrent tous les avantages des machines virtuelles et des conteneurs tout en réduisant l'empreinte serveur nécessaire pour déployer des applications, car les unikernels offrent une réduction significative de la taille des images, ont une empreinte mémoire réduite et réduisent considérablement le besoin d'espace disque. L'architecture des unikernels augmente l'agilité et la vitesse. Ils ont un minimum de frais généraux, et parce qu'ils ont des temps de chargement plus rapides avec des latences plus faibles, ils peuvent démarrer très rapidement, ce qui les rend plus rapides que les conteneurs et les machines virtuelles. Les unikernels sont également très portables. Leur petite taille facilite et rend plus rentable leur déplacement d'un hyperviseur à un autre.
L'adoption des unikernels reste faible en raison d'une combinaison de manque de sensibilisation et de faible disponibilité d'orchestrateurs. Ils deviennent plus répandus dans les dispositifs à usage unique tels que les appliances de virtualisation (virtualization) des fonctions réseau (NFV), mais leur adoption dans les centres de données reste faible.
Conteneurs
Les conteneurs sont une forme de « virtualisation du système d'exploitation » qui est plus efficace que la virtualisation matérielle car ils utilisent une virtualisation matérielle complète du système. En revanche, les conteneurs tirent parti et s'exécutent sur une seule instance d'un système d'exploitation où la virtualisation est gérée par le système d'exploitation hôte, comme le montre la Figure 12.34.
Alors que les machines virtuelles s'exécutent comme des serveurs isolés sur un hyperviseur, les conteneurs partagent le même système d'exploitation et le même noyau du serveur hôte. Il semble que chaque conteneur s'exécute sur son propre système d'exploitation et contienne tous les binaires, bibliothèques et code d'application requis pour exécuter l'application qui y est déployée. Cela est possible car les conteneurs s'exécutent en tant que processus isolés, ce qui permet d'exécuter de nombreux conteneurs sur un seul serveur physique (bare metal server) ou machine virtuelle sans aucune interférence entre eux. Les conteneurs accèdent aux ressources partagées du système d'exploitation, mais restent également des processus isolés car le noyau partagé gère l'isolation des processus. Les espaces de noms et les groupes de contrôle (cgroups) contribuent également à donner l'illusion d'une isolation des processus. Les espaces de noms permettent la personnalisation et l'apparence que chaque instance de conteneur a son propre système d'exploitation. Les groupes de contrôle, quant à eux, surveillent et gèrent les ressources partagées contrôlées par les conteneurs, ce qui contribue à réduire considérablement le nombre d'instances de calcul nécessaires pour exécuter des applications.
Les options de déploiement de conteneurs incluent la création de votre propre service de conteneurs, l'utilisation de plateformes conteneurs en tant que service (Containers as a Service) prêtes à l'emploi, ou le choix de services de conteneurs gérés, tels que Kubernetes (Kubernetes) gérés, fournis par de grands fournisseurs de services infonuagiques (FSI). Un conteneur en tant que service (Container as a Service (CaaS)) est un type d'IaaS (IaaS) spécifiquement conçu pour déployer, exécuter, mettre à l'échelle et gérer efficacement une seule application à l'aide d'une virtualisation basée sur des conteneurs. Le déploiement de conteneurs à l'aide de l'option de service "construisez votre propre service" exige que le client gère la technologie de conteneurs, l'ordonnancement et l'orchestration des conteneurs, ainsi que la gestion de la grappe (cluster). Les clients déploient les conteneurs sur l'IaaS, soit sur un serveur physique, soit sur une machine virtuelle. Le FSI, cependant, gère l'infrastructure sous-jacente.
Le déploiement de conteneurs à l'aide d'une plateforme CaaS prête à l'emploi exige que le client conteneurise les intergiciels, les bibliothèques et les applications ou microservices. Les clients déploient les conteneurs sur site ou dans un environnement de nuage public (ou privé hors site). Cette option a des frais généraux plus élevés pour le client par rapport au PaaS (PaaS) car le client est responsable de la création et de la mise à jour des images de conteneur (container image) pour chacun de ces composants. Le déploiement de conteneurs à l'aide de l'option de services de conteneurs gérés exige que le client gère la charge de travail (workload). Le FSI gère l'environnement de conteneur (container) ainsi que l'infrastructure sous-jacente.
Options de déploiement PaaS
Les technologies de déploiement infonuagique qui sont fournies via les options de déploiement IaaS sont également fournies via les options de déploiement PaaS. En plus de l'infrastructure fournie, les options de déploiement PaaS fournissent également le système d'exploitation, l'intergiciel, l'environnement d'exécution et d'autres composants d'infrastructure qui doivent également être gérés avec l'IaaS. Le PaaS offre ainsi une solution entièrement gérée permettant aux développeurs de déployer et de lancer rapidement leurs applications, réduisant considérablement les frais généraux d'infrastructure et d'intergiciels pour les développeurs. Cela permet aux développeurs de se concentrer sur le développement et le déploiement de leurs applications tandis que la charge de la gestion de l'infrastructure, des services dorsaux et de tout autre service d'administration système incombe au fournisseur de services infonuagiques.
Options de déploiement FaaS
La fonction en tant que service (Function as a Service) (FaaS) et l'informatique sans serveur (serverless computing) sont principalement synonymes. Dans le modèle de développement infonuagique natif de l'informatique sans serveur (serverless computing), les développeurs peuvent créer et exécuter des applications mais ne sont pas responsables du provisionnement, de la maintenance et de la mise à l'échelle de l'infrastructure serveur, car cela est externalisé vers le FSI. Le client se concentre ainsi exclusivement sur la logique métier de l'application. Comme le montre la Figure 12.35, en naviguant vers le haut de l'axe y vers l'informatique sans serveur, les clients se concentrent davantage sur la logique métier et l'écriture du code de l'application en s'abstraisant de l'infrastructure sous-jacente. En naviguant sur l'axe x vers l'informatique sans serveur, l'implémentation de la pile diminue et les clients ont moins de contrôle sur la façon dont l'application est déployée.
Les offres d'informatique sans serveur se répartissent généralement en deux groupes : Backend as a Service (BaaS) et Function as a Service (FaaS). Le Backend as a Service (BaaS) est tout service tiers qui peut être intégré à une application où le code BaaS n'a pas besoin d'être géré, et il n'y a pas de serveurs. Le BaaS donne aux développeurs accès à une variété de services et d'applications tiers. Par exemple, un fournisseur de services infonuagiques peut offrir des services d'authentification, un chiffrement supplémentaire, des bases de données accessibles dans le nuage et des données d'utilisation de haute fidélité. Avec le BaaS, les fonctions sans serveur sont généralement appelées via des API.
Plus communément, lorsque les développeurs se réfèrent au sans serveur, ils parlent d'un modèle de service FaaS. La fonction en tant que service (Function as a Service (FaaS)) est une plateforme de calcul pour le sans serveur où les développeurs peuvent exécuter des fonctions qui sont des unités de déploiement uniques du code, lesquelles sont exécutées par des événements. Elles sont généralement invoquées via une passerelle d'API (API gateway). Une passerelle d'API traduit les requêtes vers un point de terminaison unique, puis les achemine vers une FaaS (FaaS) fonction. Les fonctions FaaS/sans serveur ont les caractéristiques de base suivantes :
- Une architecture événementielle (event-driven architecture), fournie par le fournisseur de services infonuagiques, est une architecture où les fonctions sont invoquées par un événement. La fonction peut initier d'autres événements, qui pourraient invoquer d'autres fonctions.
- Les fonctions qui sont une unité de déploiement unique du code et de la configuration s'exécutent dans un environnement géré.
- Les fonctions sont exécutées dans le nuage et s'exécutent dans des conteneurs éphémères sans état.
Lien vers l'apprentissage
Lisez cet article sur les architectures sans serveur pour plus d'informations.
Avec le FaaS/l'informatique sans serveur, le fournisseur de services infonuagiques gère l'infrastructure dans son intégralité. L'infrastructure sous-jacente FaaS/sans serveur est automatiquement mise à l'échelle à mesure que la demande augmente. Les solutions FaaS/sans serveur ont un délai de mise sur le marché plus rapide. Les clients ne sont pas responsables de la gestion de l'infrastructure sous-jacente, ce qui facilite la création et le déploiement plus rapides des solutions FaaS et leur mise sur le marché. Le FaaS/sans serveur est un environnement polyglotte. Les fonctions FaaS peuvent être écrites dans n'importe quel langage si celui-ci est pris en charge par les fournisseurs de services infonuagiques. Les solutions FaaS/sans serveur sont intrinsèquement hautement disponibles. Les solutions FaaS/sans serveur peuvent être déployées sur plusieurs zones de disponibilité dans différentes régions géographiques. Les fournisseurs de services infonuagiques gèrent la tolérance aux pannes et le déploiement dans les régions disponibles, rendant la solution FaaS/sans serveur hautement disponible.
Les offres sans serveur sont généralement mesurées à la demande via un modèle d'exécution événementiel. Les clients ne paient que pour l'exécution. Lorsqu'une fonction sans serveur est inactive, il n'y a aucun coût. Les clients doivent cependant être conscients que les fournisseurs imposent des limites aux ressources disponibles pour les fonctions, au temps de traitement et à la concurrence du traitement des événements. Ces contraintes doivent être évaluées pour s'assurer que l'expérience utilisateur n'est pas dégradée.
Lien vers l'apprentissage
En savoir plus sur les cas d'utilisation d'une architecture sans serveur dans trois domaines d'application spécifiques.
Comparaison PaaS et FaaS
Le PaaS fournit une plateforme qui permet aux clients de provisionner et de mettre à l'échelle l'infrastructure nécessaire, ainsi que de développer, d'exécuter et de gérer des applications sans la complexité de la gestion de l'infrastructure sous-jacente requise pour exécuter l'application. Le FaaS va plus loin en fournissant un environnement où les développeurs peuvent se concentrer sur l'exécution et la gestion du code sans avoir à provisionner des ressources ou à mettre à l'échelle l'infrastructure sous-jacente. En résumé, le FaaS et le PaaS fournissent tous deux une infrastructure gérée par le fournisseur de services infonuagiques. Tous deux offrent des options d'extensibilité. Tous deux offrent une haute disponibilité (high availability) à partir d'une infrastructure distante gérée automatiquement par le fournisseur de services infonuagiques à grande échelle. Le FaaS/sans serveur et le PaaS, en apparence, semblent très similaires dans leur implémentation et leur utilisation du point de vue du développement. En réalité, ces deux services de déploiement infonuagique sont assez différents. L'extensibilité, la tarification, le temps de démarrage, les outils et la capacité de déploiement diffèrent entre les deux plateformes.
Les applications sans serveur offrent de véritables capacités d'auto-mise à l'échelle aux clients sans aucune configuration supplémentaire. Le PaaS offre des options d'extensibilité plus avantageuses par rapport aux déploiements sur des serveurs physiques. Cependant, les développeurs doivent toujours réfléchir à la manière de construire et de mettre à l'échelle une plateforme PaaS. Ils doivent prévoir la capacité des ressources et configurer les applications hébergées sur PaaS pour qu'elles s'adaptent à la demande. La structure de coûts du sans serveur est basée sur l'utilisation, et il n'y a pas de frais mensuels fixes pour les services. Avec le FaaS, les clients ne paient que par invocation de fonction basée sur un événement. Avec le PaaS, les modèles de tarification diffèrent selon le fournisseur PaaS et sont généralement associés aux coûts d'utilisation des ressources de calcul, de stockage et de réseau. Cela signifie que, pour le PaaS, les coûts s'accumulent pendant les périodes d'inactivité. Dans certains cas, le sans serveur peut être une option plus rentable pour les déploiements de logiciels.
Les fonctions FaaS s'exécutent en réponse à des événements, offrant des temps de démarrage rapides cruciaux pour le traitement événementiel. Inversement, les applications PaaS n'ont pas de capacités de démarrage déclenchées par des événements et tolèrent des temps de démarrage plus lents en raison de leur nature à longue durée de vie. Le FaaS abstrait la couche application, permettant aux développeurs de se concentrer uniquement sur le code de la fonction tandis que les fournisseurs de services infonuagiques gèrent les autres aspects. Cette abstraction réduit cependant la flexibilité, car les développeurs doivent adhérer aux cadres et aux limitations linguistiques spécifiques au fournisseur. Le PaaS, en revanche, offre aux développeurs un plus grand contrôle sur l'environnement de développement, y compris le choix des langages de programmation et des cadres.
Il existe au moins trois domaines d'application où il est judicieux de passer au sans serveur :
- Charges de travail fluctuantes de manière imprévisible ou faible utilisation fréquente, idéales pour le modèle de tarification des solutions FaaS/sans serveur.
- Traitement de grandes sources de données distribuées en raison de la faisabilité de l'auto-mise à l'échelle des environnements FaaS/sans serveur où les performances de calcul peuvent être considérablement améliorées.
- Construction de solutions hautement modulaires intégrant potentiellement des services externes qui peuvent également exploiter le modèle de tarification des solutions FaaS/sans serveur.
Plus généralement, l'architecture sans serveur est idéale pour les applications asynchrones et sans état qui peuvent être démarrées instantanément. De même, le sans serveur convient bien aux cas d'utilisation qui connaissent des pics de demande peu fréquents et imprévisibles, qui sont à volume élevé et avec des charges de travail parallèles. Un exemple de tâche peu demandée serait un traitement par lots de fichiers image entrants. Cette tâche peut être à volume élevé si un grand lot d'images à traiter arrive en une seule fois. Le sans serveur convient également bien aux cas d'utilisation impliquant le traitement de flux de données entrants pour l'implémentation d'applications telles que les chatbots, les tâches planifiées ou la logique métier. D'autres cas d'utilisation courants du sans serveur sont les API dorsales et les applications web, l'automatisation des processus métier, les sites web sans serveur et l'intégration entre plusieurs systèmes.
Les FSI proposent plusieurs services sans serveur. Comprendre les différences minimes entre ces services peut être accablant, ce qui rend difficile la sélection de l'ensemble de services pour développer une architecture sans serveur optimale. Il est prévu d'investir du temps en amont pour se familiariser avec ces services afin de comprendre les attentes d'exécution et la consommation de ressources associées à une solution sans serveur prospective. Il est également difficile de maintenir une architecture sans serveur dans une procédure de déploiement continu.
De nombreuses options de technologies de déploiement infonuagique sont disponibles pour les clients, et ces options continueront d'évoluer. Les vastes possibilités disponibles offrent un support pour une large gamme de services. Les sections qui suivent donnent un aperçu des cas d'utilisation courants associés à l'utilisation de ces options de technologie de déploiement.
Lumière sur l'industrie
CaaS, PaaS ou FaaS ?
Les technologies de déploiement sont largement utilisées dans l'industrie aujourd'hui pour déployer des applications infonuagiques natives. Les technologies de déploiement Conteneurs/CaaS, PaaS et FaaS/sans serveur sont utilisées par Netflix, Uber et WeChat pour déployer des systèmes infonuagiques natifs qui se composent de nombreux services indépendants. Connaissant ces systèmes, pouvez-vous élaborer sur la pertinence des Conteneurs/CaaS par rapport au PaaS ou au FaaS/sans serveur pour ces systèmes particuliers ?
Cas d'utilisation et implémentation des technologies de déploiement infonuagique
Il existe différents types de situations qui incitent à l'utilisation des technologies de déploiement infonuagique. Les cas d'utilisation correspondants et leur implémentation sont traités dans les sections suivantes.
Cas d'utilisation des technologies de déploiement infonuagique
Les types de déploiements les plus courants sont ceux des centres de données d'entreprise, qui seront au centre de ces cas d'utilisation. Généralement, plusieurs technologies de déploiement infonuagique sont utilisées ensemble pour fournir les services et les exigences de déploiement afin de satisfaire les besoins des clients. Alors que les clients cherchent à déployer des applications d'entreprise à grande échelle, ils doivent évaluer l'infrastructure requise, les intergiciels, les dépendances d'exécution et les contraintes pour choisir les technologies de déploiement infonuagique les plus appropriées. Pour les applications infonuagiques natives, les technologies de déploiement infonuagique telles que CaaS, PaaS et FaaS sont les plus populaires.
Technologie de déploiement de serveurs physiques
Avec les serveurs physiques (bare metal server), il n'y a pas de virtualisation (virtualization) et pas de frais généraux d'hyperviseur (hypervisor), ainsi leurs ressources (CPU, mémoire et E/S) sont dédiées à l'application qui y est déployée. Ces ressources, ainsi que le matériel, sont hautement personnalisables et peuvent être optimisées pour des performances maximales, faisant des serveurs physiques une option viable pour prendre en charge des charges de travail gourmandes en ressources telles que le HPC (HPC). Cela aide également avec les applications sensibles à la latence (par exemple, les services de streaming) et les grandes bases de données qui consomment des ressources importantes. Une combinaison de technologies de déploiement infonuagique peut être utilisée pour satisfaire les diverses exigences d'une architecture de solution. Les serveurs physiques peuvent être utilisés pour les composants gourmands en ressources, tandis que les machines virtuelles, les conteneurs et d'autres technologies de déploiement infonuagique fournissent des services d'application. Les serveurs physiques sont également une option pour les applications héritées qui peuvent ne pas être virtualisées ou ne pas être bien adaptées à un environnement virtualisé.
Les serveurs physiques conviennent également aux applications axées sur la sécurité car des mesures de sécurité supplémentaires peuvent être facilement intégrées. Les serveurs physiques sont le meilleur choix pour les solutions qui doivent se conformer à des réglementations ou des accords contractuels exigeant un hébergement à locataire unique.
Technologie de déploiement de machines virtuelles
Les applications héritées qui peuvent être virtualisées mais qui présentent des problèmes de comportement connus et gérables sont bien adaptées au déploiement infonuagique à l'aide de machines virtuelles. Cela s'applique également aux applications héritées qui ne sont pas bien documentées mais dont on a une connaissance de base de leur fonctionnement. Les machines virtuelles sont une option viable pour les applications monolithiques et à plusieurs niveaux qui ne sont pas suffisamment matures pour être migrées vers une architecture de microservices. De telles applications pourraient être migrées vers le nuage en tant que monolithes infonuagiques.
Les machines virtuelles peuvent également être utilisées pour fournir une sécurité améliorée des conteneurs (container), bien qu'avec des frais généraux supplémentaires. L'utilisation d'une machine virtuelle peut fournir une couche d'isolation supplémentaire lors du déploiement de conteneurs, éliminant l'utilisation d'un modèle de noyau partagé.
Technologie de déploiement de conteneurs/CaaS
Les conteneurs permettent la mise à l'échelle, la réplication et l'orchestration des services dans une architecture de microservices. Les conteneurs sont également légers, portables et indépendants de la plateforme. La capacité de démarrer des conteneurs en une fraction du temps des machines virtuelles est essentielle. Grâce à ces avantages, les clients du nuage ont développé une pléthore de microservices allant des frontaux d'interface utilisateur (UI) aux microservices dorsaux. Une architecture de microservices est un bon cas d'utilisation pour l'utilisation de conteneurs.
Les applications héritées qui dépendent de systèmes d'exploitation ou d'autres dépendances hors support sont des candidats pour les conteneurs. Les dépendances d'application peuvent être conteneurisées pour permettre l'exécution. Cependant, cette approche a des limites et il peut être très difficile de faire fonctionner de telles applications dans un conteneur. Les dépendances de l'application doivent être évaluées pour s'assurer que la conteneurisation (containerization) est une option viable. Les applications héritées qui peuvent être modernisées et migrées vers le nuage sont également de bons candidats pour les conteneurs.
La flexibilité de la plateforme est le principal cas d'utilisation du CaaS. Les conteneurs peuvent s'exécuter de manière cohérente n'importe où sans les limitations des intergiciels et des outils de plateforme offerts par les plateformes PaaS (PaaS). Le CaaS offre aux clients un environnement basé sur des conteneurs qu'ils peuvent contrôler (sécurité, extensibilité et disponibilité) sans effort significatif.
Technologie de déploiement d'unikernels
Le besoin d'optimiser les machines virtuelles est le cas d'utilisation le plus courant pour les unikernels à l'heure actuelle. Les unikernels ont une empreinte plus petite, en partie, parce qu'ils sont construits sans binaires et bibliothèques inutiles. Parce qu'ils ont moins de frais généraux, les unikernels peuvent démarrer très rapidement, plus vite que les machines virtuelles et les conteneurs. Avec l'empreinte plus petite et la vitesse vient une sécurité améliorée en ce qui concerne les unikernels. Parce que les unikernels sont construits pour n'inclure que les bibliothèques nécessaires pour exécuter l'application, cela réduit la surface d'attaque de la cybersécurité, les rendant ainsi plus sécurisés par rapport aux autres technologies de déploiement infonuagique.
Les infrastructures de serveurs mutables sont celles où les serveurs sont continuellement mis à jour et modifiés sur place même après leur déploiement. Les infrastructures immuables sont celles où les serveurs ne sont jamais modifiés après leur déploiement. La principale différence entre les infrastructures mutables et immuables est la politique utilisée qui détermine si les composants de l'environnement sont conçus pour être modifiés après le déploiement. Les clients peuvent avoir besoin ou s'attendre à une infrastructure immuable pour préserver l'intégrité d'un environnement. Bien que les machines virtuelles ne soient pas autorisées dans un environnement immuable, les unikernels, par conception, protègent contre de telles modifications car toute mise à jour ou modification de tout composant est construite à partir d'une image et provisionnée pour remplacer les anciennes. Les unikernels sont donc un bon choix pour le besoin d'une infrastructure immuable.
Technologie de déploiement PaaS
Le PaaS est utilisé pour déployer des architectures d'applications modernes, infonuagiques natives (cloud-native application). Le PaaS fournit une plateforme infonuagique complète qui comprend le matériel, l'infrastructure, les intergiciels et l'environnement d'exécution. Il est le plus souvent livré à l'aide d'une infrastructure basée sur des conteneurs, et prend donc en charge les mêmes cas d'utilisation que les conteneurs.
Le cas d'utilisation le plus répandu pour le PaaS est la rapidité de mise sur le marché. Le PaaS réduit ou élimine la charge de déploiement et de gestion de l'infrastructure, permettant aux clients du nuage de se concentrer plutôt sur les besoins des clients et le développement des applications. Le PaaS peut être plus abordable, en particulier pour les éditeurs de logiciels, qui n'ont souvent pas le budget pour embaucher du personnel pour construire et gérer l'infrastructure, car il offre un accès à un plus large éventail de services à tous les niveaux de la pile d'applications. Le PaaS offre également un moyen rentable pour les clients de faire évoluer les ressources à la hausse et à la baisse selon les besoins. Le PaaS (PaaS) fournit également un environnement de développement et de CI/CD pour développer, intégrer, construire et déployer rapidement des applications.
Technologie de déploiement FaaS
Le cas d'utilisation du FaaS/sans serveur est limité aux applications basées sur des microservices, plus spécifiquement aux applications à courte durée de vie et basées sur des événements. Des exemples de services incluent le traitement de données/flux et d'images, la gestion des réservations et le traitement des données IoT. D'autres cas d'utilisation incluent les charges de travail à volume élevé et parallèles et les tâches d'agrégation de données.
Le FaaS/sans serveur est utilisé pour réduire la responsabilité du client en matière de gestion des dépendances des intergiciels, des considérations d'exécution et de l'infrastructure sous-jacente. La plateforme FaaS/sans serveur s'en charge, laissant au client la responsabilité d'écrire le code de la fonction. Le résultat est une vélocité accrue dans la fourniture de capacités technologiques hautement disponibles et la satisfaction de la demande commerciale.
Implémentation des technologies de déploiement infonuagique
Il existe plusieurs outils que les clients du nuage doivent prendre en compte lors de l'implémentation de services à l'aide des technologies de déploiement infonuagique discutées précédemment. Les clients du nuage qui adoptent l'automatisation augmenteront les vitesses de déploiement tout en réduisant les coûts. Avec la croissance des environnements infonuagiques, les clients doivent gérer des environnements de plus en plus complexes. Il existe plusieurs outils qui peuvent être utilisés pour automatiser des tâches, telles que le provisionnement de serveurs et la gestion de la configuration. L'automatisation de ces tâches améliore l'efficacité des équipes DevOps (DevOps) et accélère le déploiement des services car elle réduit le volume de tâches manuelles requises pour gérer les ressources et l'infrastructure du nuage. Les tâches qui doivent être automatisées dans le cas de chaque technologie de déploiement infonuagique incluent les tâches IaaS (IaaS) d'orchestration et de provisionnement, les tâches PaaS incluent la gestion du code source et les pipelines CI/CD, et les tâches FaaS/sans serveur incluent l'orchestration du déploiement des fonctions et de leurs dépendances.
Les outils d'automatisation aident les clients à réduire les coûts opérationnels et à minimiser les erreurs. Les outils d'automatisation peuvent être utilisés pour configurer et installer des conteneurs, des machines virtuelles ou d'autres systèmes ; provisionner et déprovisionner des ressources pour l'auto-mise à l'échelle ; et allouer des ressources pour optimiser les performances de la charge de travail (workload). Plusieurs outils sont disponibles pour aider à l'automatisation du développement, de la livraison et de la gestion des applications, des charges de travail et de l'infrastructure. Des outils tels qu'Ansible, Pulumi ou Terraform (Terraform) peuvent aider à automatiser l'orchestration. Des outils tels qu'Ansible, Chef, Puppet ou Salt peuvent aider à automatiser la gestion de la configuration. Des outils tels que BitBucket, GitHub (GitHub) ou GitLab (GitLab) peuvent aider à automatiser la gestion du contrôle de source. Des outils tels que Broccoli, CircleCI, Codeship ou Maven peuvent aider à automatiser les constructions. Des outils tels que Bamboo, CircleCI, Codeship et Jenkins peuvent aider à automatiser l'intégration continue (continuous integration). Pour automatiser le déploiement continu, des options supplémentaires incluent Go, Julu ou Octopus Deploy.
Enjeux mondiaux de la technologie
DevOps à travers le monde
Alors que les applications infonuagiques natives (cloud-native application) sont déployées partout dans le monde, elles impliquent l'utilisation de méthodes et d'outils DevOps qui sont principalement développés aux États-Unis ou en Europe. Par exemple, DevOps fait référence à des termes comme CI/CD, qui sont liés à des termes (c'est-à-dire intégration continue/déploiement continu) et des outils (par exemple, Jenkins, GitLab, Docker) qui sont respectivement utilisés et implémentés par des entreprises aux États-Unis. Par conséquent, il n'est pas certain dans quelle mesure ces méthodes et outils fonctionnent bien dans d'autres contextes culturels. Quelle est votre opinion concernant ces préoccupations ?
Implémentation du déploiement infonuagique IaaS
Lors de l'adoption de l'IaaS, l'IaC peut être utilisée pour automatiser le provisionnement de la gestion de l'infrastructure en utilisant du code au lieu de le faire manuellement. Cela inclut la gestion des serveurs, la gestion des installations et des mises à jour du système d'exploitation, les modifications du noyau et la gestion du stockage et d'autres composants d'infrastructure nécessaires au développement et au déploiement d'applications.
Les outils d'orchestration (par exemple, Kubernetes (Kubernetes)) peuvent être utilisés sur n'importe quelle des technologies de déploiement infonuagique discutées pour automatiser des services tels que l'allocation de ressources et la mise à l'échelle des applications selon les besoins. Les outils de gestion de configuration (par exemple, Ansible) peuvent également être utilisés sur n'importe quelle des technologies de déploiement infonuagique pour automatiser le processus de configuration et de gestion des modifications de ces ressources. Les outils d'orchestration et de gestion de configuration prennent en charge l'intégration avec les services IaaS (IaaS) fournis par les principaux fournisseurs de services infonuagiques (par exemple, Amazon Web Services (Amazon Web Services), Google Cloud Platform, IBM Cloud et Microsoft Azure (Azure)).
Lien vers l'apprentissage
En savoir plus sur l'infrastructure en tant que code ainsi que sur les principes de conception pour l'IaC et les patrons de conception pour les piles de déploiement d'infrastructure.
Implémentation du déploiement infonuagique PaaS
Comme mentionné, le PaaS fournit également des services pour la gestion du système d'exploitation, des intergiciels et des environnements d'exécution pour les applications. À ce titre, les outils PaaS disponibles sont utilisés pour automatiser des tâches, telles que la rationalisation de l'intégration du code entre les systèmes ainsi que la gestion des processus de construction et de déploiement des applications.
Un outil discuté précédemment, Tanzu (Tanzu), apporte une amélioration majeure par rapport aux options de déploiement PaaS traditionnelles en permettant le déploiement sur n'importe quel nuage qui fournit un mécanisme d'orchestration de conteneurs (container). Il est l'équivalent d'un serveur d'applications pour le nuage qui peut déployer des charges de travail d'applications infonuagiques et infonuagiques natives sur n'importe quel nuage.
Implémentation des technologies de déploiement FaaS
Lors de l'adoption du FaaS, les applications sont déployées sur l'infrastructure serveur en réponse à des événements sans que les clients n'aient à gérer l'infrastructure sous-jacente. Bien que la gestion de l'infrastructure ne soit pas la préoccupation du client, il existe des exigences de configuration que les clients doivent gérer, notamment la configuration de l'environnement d'exécution sans serveur, le déploiement des fonctions sans serveur, les dépendances des services infonuagiques (par exemple, le stockage) et la quantité de mémoire requise. Des outils (par exemple, Ansible) sont disponibles pour aider à déployer ces services infonuagiques.
Les plateformes de gestion du nuage (CMP) sont utilisées pour simplifier le déploiement et la gestion des services infonuagiques chez divers fournisseurs de services infonuagiques. Les clients gèrent plusieurs applications à grande échelle dans des environnements très complexes en utilisant les services de plusieurs fournisseurs de services infonuagiques. Les CMP peuvent être utiles pour simplifier le déploiement et la gestion de tous ces services. Comprendre les cas d'utilisation courants ainsi que les technologies de déploiement infonuagique disponibles aide les clients à sélectionner les solutions appropriées pour répondre à leurs besoins.
Sélection des technologies de déploiement infonuagique
Lors de la sélection des technologies de déploiement infonuagique les plus appropriées, les clients doivent considérer ces choix de manière stratégique et tactique. Stratégiquement, les clients doivent prendre en compte leurs besoins commerciaux et sélectionner les technologies de déploiement infonuagique pertinentes pour répondre à ces besoins. Tactiquement, les clients doivent prendre en compte les exigences de l'application et les services infonuagiques pertinents nécessaires pour prendre en charge ces applications. En résumé, les étapes pour sélectionner les technologies de déploiement infonuagique appropriées incluent :
- Évaluer dans quelle mesure les options de technologie de déploiement infonuagique répondent aux besoins de l'entreprise.
- Comprendre les exigences d'infrastructure et de charge de travail/service.
- Sélectionner les technologies de déploiement infonuagique qui satisfont aux exigences de l'application et fournissent les services nécessaires.
Adéquation aux besoins de l'entreprise
Avec autant d'options de technologies de déploiement infonuagique, les clients devraient régulièrement évaluer ces options en gardant à l'esprit les considérations suivantes :
- Coût : Comprendre les différents modèles de coûts associés aux diverses technologies de déploiement infonuagique.
- Adéquation architecturale : Comprendre les besoins de déploiement des applications et la manière dont les différentes technologies de déploiement infonuagique répondent à ces besoins.
- Performance : Comprendre les exigences de performance des applications (par exemple, les exigences de performance des charges de travail, les exigences de bande passante, les exigences de latence) et la manière dont les différentes technologies de déploiement infonuagique satisfont à ces exigences.
- Conformité : Identifier toute exigence réglementaire ou contractuelle spécifique qui impose des limitations pouvant avoir un impact sur les choix des technologies de déploiement infonuagique.
- Exigences d'élasticité : Identifier le niveau d'élasticité nécessaire pour satisfaire le besoin éventuel de faire croître ou de réduire dynamiquement les ressources d'infrastructure selon les besoins.
- Exigences de contrôle : Déterminer le niveau de contrôle requis pour gérer les diverses technologies de déploiement infonuagique et à quelles couches de l'infrastructure.
- Verrouillage du fournisseur de services infonuagiques : Pour les clients qui gèrent des environnements divers et complexes chez plusieurs fournisseurs de services infonuagiques, déterminer le niveau de portabilité nécessaire pour permettre la flexibilité de changer de fournisseur afin d'optimiser les services utilisés.
Bien que, généralement, il n'existe pas de processus formel pour la sélection des technologies de déploiement infonuagique, les clients peuvent bénéficier d'un processus plus formalisé car il leur permet d'implémenter les outils d'orchestration et de gestion appropriés et d'établir les processus nécessaires pour fournir des services efficaces et efficients.
Comprendre les exigences de charge de travail/service
Lors de la sélection des technologies de déploiement infonuagique, les exigences (par exemple, les limitations de latence, les contrôles de protection des données spécifiques à l'industrie) liées aux types de charges de travail ou de services doivent également être prises en compte.
Sélection de la technologie de déploiement infonuagique d'application/service
Une fois les exigences stratégiques et les contraintes de charge de travail/service discutées précédemment définies, les clients peuvent alors évaluer les technologies de déploiement infonuagique les plus appropriées pour répondre à leurs besoins commerciaux. Les technologies de déploiement infonuagique sélectionnées doivent respecter les niveaux de service requis pour satisfaire les besoins de l'entreprise. Ces options peuvent changer au fil du temps à mesure que l'éventail des options de technologie de déploiement infonuagique continue d'évoluer. Les clients prudents devraient évaluer périodiquement ces technologies de déploiement infonuagique de manière proactive afin de répondre continuellement aux besoins de l'entreprise.
Applications composées de plusieurs services infonuagiques
Une application composite infonuagique (cloud mashup) est une technique permettant de combiner de manière transparente plusieurs applications infonuagiques provenant de plusieurs sources en une seule solution intégrée. Les applications composites infonuagiques peuvent être réalisées de nombreuses manières, couvrant différentes portées selon l'objectif de l'application composite. Par exemple, les services PaaS (PaaS) sur les nuages publics peuvent être utilisés pour créer des applications infonuagiques et infonuagiques natives (cloud-native application) innovantes sous forme d'applications composites infonuagiques, ce qui permet aux entreprises d'entreprendre des transformations numériques pour fournir des solutions compétitives tout en se différenciant. Un exemple d'application composite infonuagique qui fournit un service de recommandation d'itinéraire de conduite est l'application composite de AWS (AWS) EC2 (EC2), des services d'authentification et d'autorisation de Facebook, et des services MapReduce de Google.
La sélection des technologies de déploiement infonuagique est un facteur important dans la qualité globale des applications composites infonuagiques, mesurée par les assurances de qualité de service et de qualité d'expérience, car ces métriques spécifient les exigences de performance souhaitées de l'application composite infonuagique. Concernant l'exemple d'itinéraire de conduite mentionné précédemment, l'itinéraire de conduite recommandé et la vitesse à laquelle l'itinéraire est calculé sont des facteurs importants pour déterminer la qualité de ce service. De plus, la découverte des meilleurs services web et la rationalisation des services en une application composite sont également impactées par la sélection des technologies de déploiement infonuagique. La demande croissante de services infonuagiques innovants a conduit les fournisseurs de services infonuagiques à se concurrencer pour fournir la découverte de services composites, des techniques de composition automatisées et des API de composants infonuagiques réutilisables en tant que services qui prennent en charge la capacité d'assembler rapidement des applications composites.
La technologie au quotidien
Vie quotidienne et technologie
Comment l'utilisation des technologies de déploiement infonuagique aide-t-elle les gens dans la vie quotidienne ? Comme mentionné, les technologies de déploiement infonuagique peuvent être utilisées pour créer des applications composites infonuagiques. Un exemple discuté est un service de recommandation d'itinéraire de conduite (l'application composite d'AWS EC2, des services d'authentification et d'autorisation de Facebook, et des services MapReduce de Google). De nombreuses personnes dépendent aujourd'hui d'un service de recommandation d'itinéraire de conduite dans les systèmes GPS. Il a également été mentionné que la sélection des technologies de déploiement infonuagique a un impact direct sur la qualité globale de l'application composite infonuagique, car la précision des itinéraires recommandés et la vitesse à laquelle les itinéraires sont calculés sont des caractéristiques importantes d'un tel service. Pouvez-vous penser à d'autres façons dont les technologies de déploiement infonuagique aident les gens dans la vie quotidienne ? Fournissez quelques scénarios illustratifs pour expliquer votre opinion.
Résumé des clés du succès
Il existe de nombreuses options pour choisir les technologies de déploiement infonuagique les plus appropriées, et ces options continueront de croître. Les clients doivent comprendre les options disponibles et comment ces technologies de déploiement infonuagique peuvent le mieux répondre aux exigences de déploiement de leurs applications dans le nuage. Pour aider à sélectionner les options les plus appropriées, les clients doivent considérer : (1) comprendre comment les technologies et services de déploiement infonuagique actuellement disponibles fonctionnent et s'intègrent dans la prestation de services infonuagiques, (2) identifier les outils disponibles pour automatiser et prendre en charge la prestation de ces services infonuagiques, et (3) évaluer les facteurs techniques (par exemple, l'architecture des applications, les implications des données, les dépendances d'exécution) de ces technologies de déploiement infonuagique et sélectionner les technologies qui offrent la « meilleure adéquation » à leurs besoins commerciaux. Ces étapes doivent être répétées périodiquement pour réévaluer les technologies de déploiement infonuagique disponibles à mesure que ces technologies évoluent et que de nouvelles sont ajoutées. Les clients doivent garder à l'esprit que les avantages de la recherche préalable de la sélection la plus appropriée de technologies de déploiement infonuagique pour répondre aux besoins commerciaux peuvent l'emporter considérablement sur les coûts d'une approche ad hoc combinant des technologies qui pourraient finir par offrir une expérience utilisateur sous-optimale.
Questions de réflexion
Quelle solution choisir ?
Compte tenu du fait que de nombreuses technologies de déploiement sont disponibles aujourd'hui, existe-t-il un processus qui facilite la sélection de ces technologies pour déployer des applications infonuagiques natives ?