← Retourner à la liste des articles
Image blog
Auteur

Par Maxime Jumelle

CTO & Co-Founder

Publié le 1 avr. 2022

Catégorie Cloud / DevOps

Cloud Computing : tout savoir en 10 minutes

Pour toute entreprise qui souhaite proposer des services numériques, le Cloud (ou nuage en français, bien que très peu utilisé) est devenu absolument incontournable. Il permet non seulement de délocaliser les ressources informatiques, de déployer une application à l'échelle de la planète et utiliser un nombre impressionnant de services, le tout à moindres coûts. Toutes les entreprises numériques, de toutes les tailles, utilisent le Cloud pour exécuter l'intégralité ou une partie de leur infrastructure informatique.

Mais de quoi est constitué le Cloud ? Pourquoi est-il si populaire et comment est-il devenu aussi incontournable ? Dans cet article, nous allons détailler tous les grands principes du Cloud, ses avantages par rapport à une architecture traditionnelle, et quels en sont ses services.

Les grands principes du Cloud Computing

Qu'il s'agisse de Google, Amazon ou Microsoft, le Cloud Computing est aujourd'hui un énorme marché à plus de 100 milliards de dollars. Mais pourquoi le Cloud Computing est devenu si populaire ?

Le premier argument est sans doute le modèle économique. L'infrastructure informatique est coûteuse et nécessite beaucoup de maintenance, en plus d'avoir la capacité de mobiliser d'importants capitaux en amont. Avec le Cloud Computing, les entreprises ne payent que ce qu'elles consomment comme ressources : c'est le modèle économique du pay-as-you-go. Que ce soit pour des startups ou des grandes entreprises, ce modèle économique offre plein d'avantages que nous détaillerons très bientôt.

Le second argument est la multitude de services proposés : serveurs Web, systèmes de stockage, bases de données, technologies d'orchestration ou encore planificateurs. La possibilité de centraliser tous ces services et de les connecter très facilement entre eux permet aussi bien aux développeurs qu'aux architectes de collaborer efficacement.

Pourquoi le Cloud est-il si populaire ?

Traditionnellement, dans un Data Center que l’on possède, il faut tout gérer : l’espace physique, l’installation, la gestion de l’énergie, la sécurité physique, etc. Dans le Cloud, c’est le fournisseur qui est responsable de l’infrastructure physique : en tant qu’entreprise, il n’y a plus besoin de gérer cette lourde tâche. Et cela à beaucoup d’implications.

  • Il n’y a plus aucun investissement initial lorsque l’on souhaite lancer un projet/une application.
  • On dispose d’une bien plus grande flexibilité avec le Cloud par rapport à un Data Center que l’on possède.
  • On Bénéficiez de tous les services prêts à l’emploi dans le Cloud.

Avec le Cloud, on pense l’infrastructure non plus comme une entité physique mais comme un software. Pour autant, faut-il tout faire dans le Cloud ? Quid des données sensibles (santé, assurance) ?

Il existe plusieurs modèles de déploiement Cloud qui définissent la façon dont on utilise ce dernier.

  • On-Premise : toute l’infrastructure est gérée par l’entreprise dans un ou plusieurs Data Centers. C'était le cas avant l'arrivée du Cloud.
  • Public : toute l’infrastructure est située dans un ou plusieurs Cloud publics (AWS, Azure, Google, etc). Pour les entreprises qui n'ont pas de Data Center ou pas les moyens d'en avoir, cela permet de déployer des applications à moindres coûts.
  • Hybride : l’entreprise dispose d’une partie de l’infrastructure dans le Cloud, et de l'autre dans ses propres Data Centers. Ce cas de figure est idéal pour les grandes entreprises qui souhaitent profiter du Cloud tout en conservant des données sensibles dans ses propres Data Centers.

Les avantages du Cloud

Par rapport à une infrastructure que l'on possède physiquement (On-Premise), le Cloud dispose de nombreux avantages aussi bien financier que techniques.

Agrégation de clients

Si le modèle économique du Cloud est aussi efficace et que les prix sont aussi abordables, c'est parce qu'il y a une accumulation de clients. Ce n’est pas un client pour un Data Center, mais des centaines de milliers de clients pour un Data Center.

Au niveau individuel, les coûts liés au Data Center se révèlent extrêmement faibles. Plutôt que de payer les frais liés au Data Center, les clients payent les frais d’utilisation des ressources, englobant les frais de maintenance. C'est ce qui permet aux fournisseurs Cloud de proposer des prix toujours aussi bas.

Scalabilité

La scalabilité est la capacité de supporter des charges plus importantes que par le passé. On distingue deux types de scalabilité.

  • La scalabilité verticale (Scale Up), où l'on augmente les ressources d'un seul serveur pour pouvoir supporter de plus grandes charges.
  • La scalabilité horizontale (Scale Out), où l'on ajoute des serveurs pour supporter des charges sans limites.

Dans le cas d'une scalabilité horizontale, on utilisera également des techniques d'équilibrage de charge pour répartir le trafic parmi les serveurs.

Le concept de scalabilité est très lié à celui d'élasticité.

Élasticité

L’élasticité est la capacité de redimensionner à tout moment les ressources pour s’adapter efficacement à la charge. Là où la scalabilité ne permet que de monter en charge, l'élasticité va aussi nous permettre de réduire les ressources en cas de trafic moins important pour réaliser des économies.

Dans un Cloud physique, la scalabilité et l’élasticité sont très difficiles à mettre en place. À l'inverse, dans un Cloud public, le modèle économique pay-as-you-go permet d’avoir à portée de main de très grandes quantités de ressources, tout en optimisant les dépenses liées.

Échelle globale

Les fournisseurs Cloud disposent de Data Centers dans tous les continents. Il est là aussi très facile et économique de déployer son infrastructure dans n’importe quel région du monde. Cela réduit drastiquement les coûts de développement liés à l'internationalisation.

Pour résumer, tous les avantages du Cloud et son modèle économique est dû à plusieurs facteurs.

  • Échange des dépenses d’exploitations en dépenses variables
  • Réduction massive des coûts due à l'agrégation de milliers de clients
  • Plus besoin de prévoir les charges de ressources
  • Augmentation de la vitesse et de l’agilité
  • Aucune dépense directement liée aux coûts de maintenance physiques
  • Possibilité de passer à l’échelle globale en quelques minutes

Mais alors, que nous offre concrètement le Cloud ?

Les principaux services Cloud

Dans la plupart des fournisseurs Cloud, nous retrouvons des familles de services qui ont tous un thème. Pour bien savoir de quels services nous aurons besoin à l'avenir, il convient de les énumérer dans leur ensemble.

Services de calcul

Les services de calculs fournissent les couches d'abstraction les plus importantes dans un Cloud. En effet, les services de calculs vont nous permettre de provisionner des serveurs, ayant peu ou pas d'applications et/ou systèmes installés. À l'instar d'un ordinateur vierge, nous avons pleinement le contrôle sur un serveur dans le Cloud, où nous pouvons spécifier ses ressources, sa connectivité réseau, ses règles de réseau ou encore son système d'exploitation de base. C'est ensuite à la charge du développeur/architecte de configurer le serveur pour héberger les applications.

Parmi ces services de calcul nous retrouvons plusieurs catégories dont le cas d'usage dépend de plusieurs paramètres.

  • Les services de machines virtuelles permettant de provisionner des serveurs dans le Cloud avec seulement le système d'exploitation installé (Linux, Windows).
  • Les services serverless, qui ne nécessitent pas de configuration des serveurs mais nous permet de nous concentrer uniquement sur la partie application/le code.
  • Les services d'orchestration de conteneurs pour mettre à l'échelle des conteneurs applicatifs, dont Kubernetes est l'un des plus populaires.
  • Les services Bare Metal, pour des cas très particulier où seul une machine physique est allouée à un client, sans système d'exploitation installé. Dans ce cas, le client installera son propre hyperviseur sur-mesure (Proxmox, vSphere, etc).

Les services de calculs nous permettront d'installer des applications open-source sur-mesure et de déployer des modèles de Machine Learning.

Services de calcul

Services de stockage

Les services de stockage permettent de stocker des fichiers « plats » (tel que nous les avons sur notre ordinateur) dans des buckets (stockage par chemin d'accès) ou par l'intermédiaire de systèmes distribués (système NFS, par blocs avec HDFS, etc). Nous retrouvons là aussi plusieurs catégories.

  • Le stockage par objets, où chaque fichier est stocké directement dans un serveur type FTP. Les services proposés ajoutent de nombreuses fonctionnalités, dont la gestion des versions, des autorisations ou encore de l'archivage pour réduire les coûts.
  • Le stockage NFS, où les fichiers sont stockés dans des disques virtuels qui peuvent être partagés par plusieurs serveurs.
  • Le stockage par bloc, permettant de stocker un fichier sous forme de blocs répartis dans plusieurs volumes. C'est le cas des systèmes de stockage distribués avec HDFS).

Le stockage de fichiers nous sera utile pour garder une trace des différents jeux de données utilisés à chaque étape des projets.

Services de stockage

Attention à ne pas confondre système de stockage et bases de données, que nous allons voir tout de suite.

Services de bases de données

Les services de bases de données permettent de stocker et de retrouver des données plus ou moins agrégées en rapport avec un thème, une activité. Contrairement au système de stockage, les bases de données ont un intérêt métier derrière le stockage des données, notamment d'un point de vue analyse et interopérabilité avec les autres services du Cloud. Nous avons une multitude de services proposés en fonction des types de bases et de leur support garantis par le fournisseur.

  • Les bases de données relationnelles type SQL ou SQL-like. La plupart de ces bases supportent les moteurs MySQL, PostgreSQL, MariaDB ou encore Oracle.
  • Les bases de données non relationnelles managées tels que MongoDB, HBase ou encore Cassandra. Ces bases de données sont fournies au format open-source mais l'infrastructure physique est gérée par le fournisseur Cloud.
  • Les bases propriétaires dont BigQuery ou DynamoDB sont les plus connues. Ces bases propriétaires ne sont pas open-source mais sont très souvent à moindre coût car elles sont maintenues et gérées par le fournisseur Cloud propriétaire.

Les bases de données nous seront utiles afin d'historiser l'ensemble des données présentes dans le cas d'usage, facilitant ainsi les requêtes associées.

Services de bases de données

Services de connectivité

La connectivité regroupe tous les services qui s’articulent autour du réseau et de la diffusion de contenu. Les fournisseurs Cloud nous permettent de construire une infrastructure logicielle qui dispose des mêmes propriétés réseaux que dans un modèle On-Premise où l’on retrouverait des routeurs, des pare-feu, des switchs, etc.

  • Les services réseaux, qui permettent de créer des réseaux privées, des passerelles Internet.
  • Les services de réseaux privés, notamment pour autoriser les connexions VPN.
  • Les services de diffusion de contenus (ou CDN) pour optimiser la distribution de contenus statiques et dynamiques.
  • Les services de noms de domaines pour créer gérer des noms de domaines privés et publics.

Services de connectivité

Services de sécurité et gouvernance

La sécurité est un point essentiel, surtout lorsqu'une entreprise dépend principalement des produits en ligne qu’elle propose. Les services de sécurité et de gouvernance permettent de gérer les comptes utilisateurs, les outils de protection associés et d’imposer une gouvernance adaptée.

  • Les services IAM, pour gérer les utilisateurs, leurs rôles et leurs habilitations.
  • Les services de gestion de secrets pour stocker des informations sensibles comme des mots de passe.
  • Les services de clés et de certificats, pour générer des certificats SSL ou des clés de cryptage.
  • Les services de protection pour se protéger face à des attaques.

Services de sécurité et gouvernance

Services DevOps

Les services DevOps, aussi appelés outils pour développeurs, sont un ensemble de services permettant d'améliorer la productivité dans le Cloud. On y retrouve tous les services que les DevOps utilisent quotidiennement.

  • Les registres et dépôts, notamment pour stocker et historiser les codes sources, les conteneurs ou les artifacts.
  • Les tâches d'automatisation, dont les outils de planification, de déploiement continu ou de workflows.
  • Les outils de surveillance pour monitorer les ressources et journaliser les événements.

Ces services sont indispensables pour améliorer la productivité et connecter les services entre eux.

Modèle de service Cloud

Pour chacun des services présentés, il y a plusieurs modèles de service (à ne pas confondre avec modèle de déploiement). Un modèle de service défini la répartition des responsabilités entre le fournisseur Cloud et le client.

  • On-site : dans le cas On-Premise, tout est à la charge du client.
  • IaaS (Infrastructure-as-a-Service) : le fournisseur Cloud propose un service d'infrastructure, c'est-à-dire qu'il met à disposition des moyens physiques aux clients afin qu'ils puissent y avoir un degré de liberté maximal. Historiquement, les fournisseurs Cloud ont commencé par proposer un service en mode IaaS de puissance de calcul, où le client pouvait provisionner un serveur vierge et le configurer entièrement soi-même.
  • PaaS (Plateform-as-a-Service) : le fournisseur Cloud ne propose pas que l'infrastructure, mais également une plateforme permettant d'exécuter des applications sans configurations supplémentaires. Ces services ont le gros avantages d'utiliser des fonctionnalités déjà présentes comme les mises à jour ou les sauvegardes, sans que le client mobilise des ressources pour le faire.
  • SaaS (Software-as-a-Service) : le fournisseur propose une infrastructure avec une application ou un logiciel entièrement configuré qui s'exécute dessus. C'est le mode de service qui nécessite le moins de tâches administratives en amont pour le client, car tout est déjà en place. En contrepartie, ce genre de service donnera le moins de flexibilité au client.

Le choix du modèle de service est donc important : plus on souhaite de la flexibilité et de la personnalisation, plus on s'orientera vers des services types IaaS, qui demanderont plus de compétences techniques et de temps. À l'inverse, si on souhaite mobiliser le moins de ressources et de temps pour mettre en place et utiliser un service, on se dirigera plutôt vers les services types PaaS et SaaS. Ce dernier cas nécessite souvent d'utiliser un logiciel déjà choisi par le fournisseur Cloud.

Articles similaires

Blog

28 févr. 2024

Cloud / DevOps

Pour de nombreuses entreprises, innover chaque jour en proposant des applications à ses utilisateurs est un sujet primordial. Pour autant, cette course au déploiement continu de nouvelles applications nécessite des compétences bien particulières sur les architectures Cloud, l'automatisation de projets et la supervision. C'est à partir de ce moment qu'intervient le rôle de l'ingénieur DevOps dans les entreprises.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

23 févr. 2024

Cloud / DevOps

Dans le monde du DevOps, les conteneurs sont rapidement devenus des incontournables, aussi important que les machines virtuelles. Des plateformes de conteneurisation comme Docker ont permis de simplifier et d'accélérer la création d'image et l'exécution de conteneurs sur différents systèmes, à portée de tous.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

16 févr. 2024

Cloud / DevOps

Dans l'approche GitOps, il existe de nombreux outils permettant d'exécuter des pipelines CI/CD : certains se concentrent uniquement sur la partie intégration continue, d'autres avec le déploiement en plus. S'il y en a un qui est considéré comme l'un des plus matures et des plus robustes, c'est bien GitLab.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article