Vous êtes sur la page 1sur 41

Cloud Computing

Introduction à la
conteneurisation,
microservice et cloud native
Session : Novembre 2022

Cours proposé par Ing. YOUSSEU Jerry 1


Ce que vous allez apprendre

 Apprendre les concepts fondamentaux de la


conteneurisation
 Détailler les différents aspects de la technologie de
conteneurisation, son écosystème
 les avantages et inconvénients de la conteneurisation;

 Appréhender les architectures micro-services

 définition de la notion de cloud native

2
Qu’est qu’un conteneur ?

3
Qu’est qu’un conteneur ?

La virtualisation par isolation est une technique


permettant d'emprisonner l'exécution des applications
dans des contextes. Cette solution est très performante
(le surcoût d'une application isolée/virtualisée est minime
par rapport au temps d'exécution de la même application
installée sur un système d'exploitation).

4
Qu’est qu’un conteneur ?

L’isolation permet de séparer un système en plusieurs


contextes ou environnements. Chacun d'entre eux

est régi par l'OS hôte, mais les programmes de chaque


contexte ne sont capables de communiquer qu'avec les
processus et les ressources associées à leur propre
contexte.

5
Qu’est-ce que la conteneurisation en
informatique ?
La conteneurisation informatique permet de packager tous les
services, scripts, API, librairies dont une application a besoin.

L’objectif : en permettre l’exécution sur n’importe quel noyau


compatible.
 Elle évite de se soucier d’interactions ou d’incompatibilités
avec les conteneurs déjà présents ou à venir sur cette machine.

6
Qu’est-ce que la conteneurisation en
informatique ?
 Elle permet de ne pas occuper autant de ressources
que réclamerait une machine virtuelle (ou Virtual
machine, VM), qui emporte son propre système
d’exploitation et bloque des ressources à son lancement.

7
Qu’est qu’un conteneur ?

Un conteneur est un concept : le principe est d’isoler l’exécution


d’ensembles de processus sur un même hôte.
 Le noyau et l’accès au matériel reste partagé

La conteneurisation consiste à rassembler le code du logiciel et


tous ses composants (bibliothèques, frameworks et autres
dépendances) de manière à les isoler dans leur propre « conteneur
».

8
Qu’est qu’un conteneur ?

Un conteneur conteneur est une approche de développement


de logiciels qui consiste à empaqueter une application ou un
service, ses dépendances et sa configuration (extraits sous
forme de fichiers manifeste de déploiement) sous forme d’image.

Vous pouvez ensuite tester l’application en conteneur en tant


qu’unité et la déployer sous forme d’instance d’image de
conteneur sur le système d’exploitation hôte.

9
Qu’est qu’un conteneur ?
Le logiciel ou l'application dans le conteneur peut ainsi être
déplacé et exécuté de façon cohérente dans tous les
environnements et sur toutes les infrastructures,
indépendamment de leur système d'exploitation. Le
conteneur fonctionne comme une sorte de bulle, ou comme un
environnement de calcul qui enveloppe l'application et l'isole de
son entourage. C'est en fait un environnement de calcul portable
complet.

10
Le principe de la conteneurisation
informatique
Il s’agit d’un type de virtualisation utilisé au niveau des applications. Le
principe repose sur la création de plusieurs espaces utilisateurs
isolés les uns des autres sur un noyau commun. On utilise alors le
terme de « conteneur » pour désigner une telle instance.

Les conteneurs, bien qu’indépendants, partagent un noyau commun


(donc un ou plusieurs systèmes d’exploitation) et un même espace
mémoire. De plus autre avantage intéressant pour tous les développeurs
d’applications

11
Le principe de la conteneurisation
informatique
ils hébergent un univers standard et commun à tous contenant le
code, l’environnement d’exécution, le paramétrage, les systèmes
de fichiers réseau et autres bibliothèques nécessaires à leur bon
fonctionnement.

12
Avantages d’un conteneur ?
Vous pouvez fournir immédiatement des applications
conteneurisées aux utilisateurs dans un espace de travail
numérique. La conteneurisation offre des avantages
considérables aux développeurs de logiciels et aux équipes
de développement, allant d'une agilité et d'une portabilité
supérieures à un contrôle des coûts amélioré. En voici la
liste :

13
Avantages d’un conteneur ?
 Portabilité : Un conteneur d'application crée un progiciel
exécutable qui est isolé par rapport au système
d'exploitation hôte. Ainsi, il ne dépend pas du système
d'exploitation hôte et n'est pas lié à celui-ci, ce qui le rend
portable et lui permet de s'exécuter de manière cohérente et
uniforme sur n'importe quelle plate-forme ou cloud.

14
Avantages d’un conteneur ?
 Vitesse : Elle réduit également le temps de lancement, car il n'y a pas de
système d'exploitation à démarrer.
 Évolutivité: Un conteneur d'application peut gérer des charges de travail
croissantes en reconfigurant l'architecture existante afin d'activer les
ressources à l'aide d'une conception d'application orientée vers les services.

Un environnement conteneur permet l'ajout de nouvelles fonctions, mises à


jour et caractéristiques instantanément sans que cela affecte les
applications d'origine.

15
Avantages d’un conteneur ?
 Agilité Les développeurs peuvent donc continuer à utiliser les
outils et les processus DevOps pour accélérer le développement et
l'amélioration des applications.
 Efficacité : les conteneurs ont une capacité intrinsèquement plus
petite que les machines virtuelles. Leur temps de démarrage est
réduit, ce qui permet aux développeurs d'exécuter plus de
conteneurs sur la même capacité de calcul qu'une machine
virtuelle unique.

16
Avantages d’un conteneur ?

 Facilité de la gestion : Différents conteneurs s'exécutent


indépendamment, de sorte que la défaillance de l'un n'aura
pas d'impact sur la continuité des autres.
 Facilité d'utilisation pour les développeurs : Votre
équipe de développement peut écrire une app sur un
ordinateur portable Windows, mais celle-ci ne s'exécute pas
sur un poste de travail Mac.

17
Quels sont les inconvénients de la
conteneurisation ?
Les conteneurs ne sont pas parfaits et ont leurs inconvénients et
leurs limites.
Sécurité: vous devez sécuriser l'application conteneurisée ainsi
que le registre, le daemon Docker et le système d'exploitation hôte.
Orchestration : lorsqu'il s'agit de conteneurs, vous devez choisir
parmi différents outils d'orchestration comme Kubernetes, Mesos ou
Swarm.

18
Inconvénient d’un conteneur ?

 Mauvaise isolation : La conteneurisation d'une application


permet de l'isoler et de la faire fonctionner de façon
indépendante. Par conséquent, la défaillance d'un
conteneur n'affecte pas le fonctionnement des autres.
 Surveillance : il est également essentiel de surveiller les
conteneurs pour détecter les problèmes de performance et
de sécurité.

19
Qu'est-ce que la conteneurisation
Docker ?
Le moteur Docker est peut-être la technologie la plus connue et la
plus utilisée dans le monde en matière de moteur de conteneur.

un Docker fait référence à un système d'exploitation Linux basé sur


le noyau en open source, chargé de créer des conteneurs dans un
système d'exploitation.

Lorsqu'un Docker accède à un noyau de système d'exploitation


unique, il peut gérer plusieurs applications distribuées exécutées dans
leurs conteneurs respectifs.

20
Qu'est-ce que la conteneurisation
Docker ?
Les développeurs créent des conteneurs à partir d'images Docker.
Malgré leur statut de lecture seule, le Docker crée un conteneur en
ajoutant un système de fichiers en lecture/écriture. Il lance une
interface réseau pour permettre la communication entre le
conteneur et un hôte local. Ensuite, il ajoute une adresse IP et
exécute le processus indiqué. Chaque conteneur contient les
éléments nécessaires à l'exécution d'un programme (fichiers,
redondances et bibliothèques).

21
Qu'est-ce que la conteneurisation
Docker ?
Le logiciel Docker permet créer, déployer et exécuter des conteneurs
de manière efficace. Un conteneur enveloppe l’application d’un logiciel
dans une boîte invisible avec tout ce dont il a besoin pour s’exécuter.

Cela comprend le système d'exploitation, le code de l'application, le


runtime, les outils système et les librairies.

Les conteneurs Docker sont construits à partir des images Docker. Ils
sont légers, portables et permettent aux développeurs de créer,
déployer et exécuter efficacement des applications distribuées.

22
Qu'est-ce que la conteneurisation
Docker ?
Docker permet à une application d’être empaquetée et déplacée
facilement, augmentant ainsi la simplicité d'une infrastructure.

Docker offre également des temps de démarrage réduits, ce qui


améliore l'utilisation des ressources.

un conteneur ne contient que l’application et les dépendances de


l’application.

23
Qu'est-ce que la conteneurisation
Docker ?

24
Qu'est-ce que la conteneurisation
Docker ?
Nous avons donc l’infrastructure physique du matériel, le système
d’exploitation hôte fonctionnant au-dessus de l’infrastructure physique, le
moteur Docker qui est l’hyperviseur du conteneur dans ce cas, et finalement
les conteneurs docker qui contiennent les applications et les dépendances.

Les conteneurs ne sont qu’un ensemble de processus.

Remarque : Vous ne pouvez pas exécuter un conteneur sur tous les


systèmes d’exploitation. Parfois le système d’exploitation hôte manque des
fichiers systèmes nécessaire pour héberger le conteneur.

25
Comparaison entre VM et
Conteneurs
Les conteneurs et les machines virtuelles sont des technologies
de virtualisation des ressources très similaires.

Les machines virtuelles virtualisent toute une machine jusqu'aux


couches matérielles, tandis que les conteneurs ne virtualisent que
les couches logicielles au-dessus du niveau du système
d'exploitation.

26
Comparaison entre VM et
Conteneurs

27
Comparaison entre VM et
Conteneurs

28
Comparaison entre VM et
Conteneurs

29
Comparaison entre VM et
Conteneurs

30
Comparaison entre VM et
Conteneurs

31
32
Qu'est-ce que l'architecture de
microservices ?
L'architecture de microservices (ou microservices) désigne un
style d'architecture utilisé dans le développement d'applications.
Elle permet de décomposer une application volumineuse en
composants indépendants, chaque élément ayant ses propres
responsabilités. Pour diffuser la requête d'un utilisateur unique,
une application basée sur des microservices peut appeler
plusieurs microservices internes pour composer sa réponse.

33
Qu'est-ce que l'architecture de
microservices ?
les microservices sont une méthode développement logiciel utilisée
pour concevoir une application comme un ensemble de services
modulaires. Chaque module répond à un objectif métier spécifique et
communique avec les autres modules.

ils sont faiblement couplés, ils peuvent être déployés indépendamment.


Comme ils sont faiblement couplés, les microservices peuvent être
construits, déployés et mis à l'échelle de manière indépendante.

34
Qu'est-ce que l'architecture de
microservices ?

35
Qu'est-ce que l'architecture de
microservices ?

36
Comment fonctionne l'informatique
sans serveur ?
L'informatique sans serveur est une architecture dans laquelle un
fournisseur assure les services backend au fur et à mesure des
besoins.

L'informatique sans serveur ou sans serveur est un modèle


d'exécution basé sur le cloud dans lequel les fournisseurs de services
cloud fournissent des ressources machine à la demande et gèrent les
serveurs eux-mêmes au lieu des clients ou des développeurs.

37
Une application cloud-native, qu'est-
ce que c'est ?
Les technologies natives Cloud permettent aux organisations
de créer et d’exécuter des applications évolutives dans des
environnements modernes et dynamiques tels que des clouds
publics, privés et hybrides. Les conteneurs, les maillages de
service, les microservices, l’infrastructure immuable et les API
déclaratives illustrent cette approche.

38
Les piliers du natif Cloud

Les technologies natives Cloud permettent aux organisations


de créer et d’exécuter des applications évolutives dans des
environnements modernes et dynamiques tels que des clouds
publics, privés et hybrides. Les conteneurs, les maillages de
service, les microservices, l’infrastructure immuable et les API
déclaratives illustrent cette approche.

39
Les piliers du natif Cloud

La vitesse et l’agilité du natif Cloud dérivent de nombreux


facteurs. Avant tout, il y a l’infrastructure cloud. Mais ça n’est pas
tout : cinq autres piliers fondamentaux présentés.

40
Une application cloud-native, qu'est-
ce que c'est ?

41

Vous aimerez peut-être aussi