Qu'est-ce que l'architecture cloud ?
Le Cloud Computing a connu une croissance rapide au cours des deux dernières décennies et continue de se développer à un rythme impressionnant. Ce qui a commencé avec des offres de base de logiciel en tant que service (SaaS) et d'infrastructure en tant que service (IaaS) est devenu un vaste écosystème de solutions natives du cloud pour tout, des serveurs aux clusters Kubernetes.
Dans cet article, nous allons donner un cours accéléré sur l'architecture cloud (également appelée « architecture du Cloud Computing »), notamment sur ses composants, sur les différents modèles de Cloud Computing, sur les avantages du cloud et sur la manière dont vous pouvez prendre une décision éclairée concernant la migration d'une application sur site vers le cloud.
Qu'est-ce que l'architecture cloud ?
Alors, qu'est-ce que l'architecture cloud? Et qu'est-ce que l'architecture du Cloud Computing? L'architecture cloud et l'architecture du Cloud Computing sont deux notions identiques. Les deux termes font référence au « modèle » qui définit la conception des composants d'infrastructure d'un environnement de Cloud Computing.
Il existe plusieurs façons de conceptualiser l'architecture cloud. Par exemple, du point de vue d'un fournisseur de services cloud, l'architecture cloud se compose des éléments suivants :
- Une couche matérielle qui inclut les serveurs dédiés physiques (bare metal), les équipements de réseau et les terminaux de stockage
- Une couche de virtualisation qui inclut les hyperviseurs et les composants SDN (réseau défini par logiciel) pour virtualiser les ressources physiques
- Une couche de services qui inclut les ressources cloud que le fournisseur fournit aux utilisateurs
Dans l'esprit des utilisateurs tels que les développeurs et les ingénieurs DevOps, les composants de l'architecture cloud sont les suivants :
- Une partie front-end,comme une console Web, une interface de programmation d'applications (API), une interface de ligne de commande (CLI), une application pour mobile ou tout autre client, qui permet d'accéder au service cloud
- Une partie back-end qui fournit les ressources informatiques, de stockage et logicielles permettant le service
- Un réseau qui garantit la connectivité entre les ressources cloud et les services (résolution DNS, par exemple)
Le rôle de l'architecture d'un environnement cloud consiste à spécifier comment tous les composants s'adaptent les uns aux autres et communiquent. La Figure 1 illustre l'architecture d'un système de gestion de documents basé sur le cloud.
Le processus exact de conception, de mise en œuvre, de présentation aux utilisateurs (ou d'abstraction) de ces composants varie en fonction du modèle de prestation du cloud et du type de Cloud Computing. Par exemple, l'architecture d'une application Web exécutée sur une machine virtuelle dans un cloud privé est différente de celle d'une application distribuée basée sur Kubernetes.
Le seul point commun à toutes les mises en œuvre dans le cloud est que le cloud est une plateforme qui permet à un utilisateur de faire abstraction de certaines complexités. Par exemple, les offres IaaS, telles que les instances EC2 d'Amazon Web Services (AWS), éliminent la complexité matérielle. Avec les applications SaaS (Google Docs, par exemple), tout est encore plus simple car les utilisateurs n'ont à gérer ni les systèmes d'exploitation, ni le middleware, ni la maintenance des applications.
Principaux composants physiques de l'infrastructure cloud
Sous les couches d'abstraction, le Cloud Computing compte les trois mêmes couches principales qu'une infrastructure informatique sur site.
- Ressources informatiques : processeur, mémoire vive (RAM) et processeur graphique
- Ressources réseau : interfaces réseau
- Ressources de stockage : disques SSD et disques durs (HDD)
Avec des modèles comme IaaS, la facturation est souvent basée sur la consommation des ressources de ces catégories.
Remarque: ne confondez pas l'architecture cloud avec l'architecture réseau. L'architecture cloud inclut l'architecture réseau, le cas échéant. Par exemple, les services SD-WAN, SDN et DNS peuvent tous être inclus dans l'architecture cloud d'un environnement d'entreprise.
Modèles de base de déploiement dans le cloud : cloud public et cloud privé
Les deux modèles de base de services cloud que vous pouvez utiliser sont un cloud public et un cloud privé (Tableau 1). Les plateformes de cloud public sont accessibles au grand public et l'infrastructure est gérée par un fournisseur de services cloud. Les plateformes de cloud privé sont dédiées à une seule entreprise.
Les deux présentent un avantage : la simplicité pour le cloud public et le contrôle pour le cloud privé. Les utilisateurs d'un cloud public consomment simplement des services, le fournisseur de services se chargeant de la maintenance et de la mise à disposition de l'infrastructure. Cependant, cela signifie également que ces utilisateurs sont intrinsèquement limités aux capacités offertes par le fournisseur de services. En outre, les données dans le cloud public résident dans les centres de données des fournisseurs de services, ce qui a des implications en matière de conformité et de souveraineté des données.
Au contraire, les utilisateurs d'un cloud privé contrôlent totalement leur infrastructure et leurs capacités. L'inconvénient est que l'utilisateur (ou tout tiers agissant en son nom) doit gérer les complexités inhérentes à la maintenance de l'infrastructure, à sa configuration et à l'application de correctifs.
Un cloud privé est-il plus sécurisé qu'un cloud public ?
En général, les clouds privés offrent deux avantages en matière de sécurité par rapport aux clouds publics.
- Les clouds privés sont dédiés à une seule entreprise.
- Les clouds privés ne sont généralement pas directement accessibles sur l'Internet public.
C'est pourquoi vous entendrez souvent dire que les clouds privés sont plus sécurisés que les clouds publics. En théorie, et lorsque les entreprises gérant le cloud privé appliquent les meilleures pratiques de sécurité pour la configuration et la maintenance, il est raisonnable de le croire. Toutes choses égales par ailleurs, l'isolement d'un cloud privé est un avantage en matière de sécurité.
Cependant, de nombreuses entreprises ne disposent pas de l'expertise et des ressources internes nécessaires en matière de sécurité pour renforcer, corriger, analyser et gérer l'infrastructure avec la même rigueur que les fournisseurs de services cloud à très grande échelle. Un cloud privé non corrigé ou mal configuré peut donc être moins sécurisé qu'un cloud public. Les entreprises doivent en tenir compte lors de l'évaluation des risques.
Modèles avancés de déploiement dans le cloud : cloud hybride et cloud privé
Outre le cloud public et le cloud privé, il existe plusieurs autres modèles de déploiement dans le cloud. Par exemple, le National Institute of Standards and Technology (Institut national des normes et des technologies) définit le cloud communautaire comme une infrastructure cloud « mise en place à des fins d'utilisation exclusive par une communauté spécifique d'utilisateurs issus d'entreprises ayant des préoccupations communes. » Cependant, les deux modèles avancés de déploiement d'architecture cloud les plus courants sont les suivants :
Cloud hybride: combinaison de plusieurs modèles de déploiement dans le cloud au sein d'une entreprise. Par exemple, une équipe qui réplique une base de données dans un cloud public et un cloud privé utilise un modèle de cloud hybride.
Multicloud: utilisation de plusieurs fournisseurs de cloud public au sein d'une entreprise. Par exemple, une entreprise qui exécute des clusters dans Azure Kubernetes Service (AKS) et Amazon Elastic Kubernetes Service (EKS) utilise un modèle multicloud.
XaaS : types de Cloud Computing
En plus des différents modèles de déploiement, il existe une grande variété de modèles de services de Cloud Computing. Collectivement, ces modèles sont appelés « anything as a service » ou XaaS. Avec le modèle XaaS, un fournisseur offre aux utilisateurs des services de Cloud Computing moyennant souvent un abonnement.
Les trois modèles de services XaaS les plus courants sont les suivants : SaaS, PaaS (plateforme en tant que service) et IaaS (Figure 2).
La distinction entre ces trois modèles de services de Cloud Computing est ce dont le fournisseur de services et l'utilisateur sont responsables. Le Tableau 2 indique qui contrôle les différents aspects de l'infrastructure cloud en fonction des différents modèles.
Les plateformes IaaS offrent aux utilisateurs un contrôle optimal. Leur gestion et leur maintenance sont les plus complexes. Les utilisateurs sont responsables de tout, de la sélection d'un système d'exploitation à l'application des correctifs. À l'opposé, les plateformes SaaS, telles que Google Docs et Slack, s'occupent de tout, sauf de la couche applicative.
Les plateformes PaaS proposent une solution intermédiaire, l'utilisateur contrôlant la couche applicative et la couche de données. Par exemple, avec une plateforme PaaS, vous pouvez accéder directement à une base de données MySQL, mais ce ne sera pas à vous d'appliquer les correctifs pour la version MySQL ou le système d'exploitation sous-jacent(e).
Au-delà des solutions IaaS, PaaS et SaaS
Les solutions IaaS, PaaS et SaaS ne sont que le début en matière de modèles de services cloud. Au cours de la dernière décennie, de nombreuses nouvelles offres de services cloud couvrant une grande variété de cas d'utilisation ont fait leur apparition.
Voici un aperçu des autres modèles de services cloud que vous devez connaître.
- Les plateformes d'authentification en tant que service (AaaS), comme Okta et Duo, fournissent des services tels que l'authentification multifactorielle (MFA) et l'authentification unique (SSO).
- Les plateformes de bureau en tant que service (DaaS), comme Amazon Workspaces et Azure Virtual Desktop, fournissent des bureaux virtuels gérés dans le cloud.
- Les offres de conteneurs en tant que service (CaaS), comme Google Cloud Run et Microsoft Azure Container Instances (ACI), rationalisent le processus de déploiement et de gestion des applications conteneurisées sur une plateforme cloud.
- Les plateformes Kubernetes gérées, comme AKS et EKS, fournissent des services Kubernetes hébergés pour assurer l'orchestration automatisée des clusters Kubernetes dans le cloud.
- L'informatique sans serveur permet une approche « à la demande » des ressources informatiques grâce à laquelle les utilisateurs peuvent exécuter des fonctions sans gérer aucune infrastructure sous-jacente.
Les avantages du Cloud Computing
Le Cloud Computing est bénéfique tant pour les utilisateurs que pour les entreprises. Les principaux avantages du Cloud Computing par rapport à l'informatique sur site classique sont les suivants :
- Infrastructure gérée: les processus d'installation, de configuration et de maintenance des serveurs, des commutateurs, des racks, ainsi que des équipements d'alimentation et de refroidissement, sont coûteux et chronophages. Les services cloud vous offrent les avantages professionnels d'une solution, sans la complexité de gestion de l'infrastructure.
- Ressources élastiques: adapter votre utilisation du cloud est facile dans un cloud public. Cette élasticité permet aux entreprises d'éviter les goulots d'étranglement pour pouvoir se développer rapidement sans risquer de surinvestir dans du matériel.
- Observabilité complète: dans les plateformes cloud, des outils d'observabilité et des tableaux de bord sont souvent inclus.
- Meilleures pratiques intégrées: les fournisseurs de services sont incités à trouver le juste équilibre entre performances, sécurité et convivialité. Ils peuvent aussi fournir aux clients des avantages d'économies d'échelle. Par conséquent, les utilisateurs peuvent bénéficier des meilleures pratiques en matière d'infrastructure simplement en utilisant la plateforme cloud appropriée.
Migration vers une architecture cloud
Lancer de nouveaux projets dans le cloud est une chose, mais migrer des charges de travail existantes vers le cloud en est une autre. Il n'y a pas d'approche unique qui fonctionne pour chaque cas d'utilisation, mais il existe un ensemble général de principes et de meilleures pratiques à suivre pour bien faire les choses.
- Assurez-vous que la migration vers le cloud est judicieuse: toutes les charges de travail ne doivent pas nécessairement être dans le cloud. Créez une analyse comparant les coûts de la migration vers le cloud aux coûts de mise hors service de la charge de travail ou de son maintien sur site.
- Choisissez judicieusement votre fournisseur de cloud: les fonctionnalités et le coût sont importants, mais ce ne sont pas les seuls éléments de l'équation. Tenez compte des exigences non fonctionnelles, de l'assistance,des accords de niveau de service et de la réputation du fournisseur lors de votre prise de décision.
- Sélectionnez un modèle de service et de déploiement qui vous convient: cloud public ou privé, et plateforme IaaS, PaaS ou SaaS, chaque option compte des spécificités en termes de contrôle, de fonctionnalité et de dépendance vis-à-vis d'un fournisseur. Évaluez les avantages et les inconvénients avant de vous enfermer dans un modèle. Par exemple, bien qu'il puisse sembler logique de migrer votre serveur Exchange sur site vers une machine virtuelle comparable sur une plateforme IaaS, la messagerie Office 365 (SaaS) pourrait être une meilleure solution.
- Maîtrisez vos budgets: les coûts du cloud peuvent vite s'accumuler. La plupart des grands fournisseurs de cloud proposent des calculateurs de coûts de cloud que vous pouvez utiliser pour obtenir des estimations raisonnables et éviter toute mauvaise surprise. De plus, assurez-vous de configurer des alertes budgétaires chaque fois que cela est possible et de surveiller de près vos relevés. Mettez en œuvre une approche systématique pour le suivi des coûts afin de veiller à respecter votre budget.
- Ayez toujours un plan d'urgence: des sauvegardes, des plans de restauration et des tests de pré-production peuvent vous aider à réduire le risque de perte de données et d'indisponibilité lorsque vous migrez vers le cloud. Assurez-vous de bien réfléchir et de procéder à plusieurs vérifications pour les migrations de charges de travail critiques.
- Envisagez le modèle dit du « figuier étrangleur » pour les applications monolithiques complexes: le « lift-and-shift » ne fonctionne pas pour tout. Si votre équipe a besoin de transférer des applications monolithiques complexes vers le cloud, envisagez d'utiliser le modèle dit du « figuier étrangleur » pour effectuer une migration progressive vers des microservices natifs du cloud.
Conclusion
L'architecture cloud est un sujet complexe dont il reste beaucoup de choses à découvrir. Avec ce que nous avons abordé ici, vous devriez cependant avoir une solide compréhension des principes de base (quoi, pourquoiet comment) du cloud computing.