RÉSUMÉ THÉORIQUE
FILIÈRE DÉVELOPPEMENT DIGITAL – OPTION WEB FULL STACK
M214 – Créer une application cloud native
90 heures
SOMMAIRE 1. INTRODUIRE LE CLOUD NATIVE
• Définir le cloud
• Définir l’approche cloud native
2. CRÉER DES APIS REST SIMPLES EN NODE JS ET
EXPRESS JS
• Introduire Express et Node js
• Créer des APIs REST
• Authentifier une API REST avec JWT
3. CRÉER UNE APPLICATION MICROSERVICE
• S’initier aux architectures microservices
• Créer une application microservices
4. MANIPULER LES CONTENEURS
• Appréhender la notion du conteneur
• Prendre en main Docker
5. DÉPLOYER UNE APPLICATION CLOUD NATIVE EN
AZURE CLOUD
• Introduire Azure Cloud
• Déployer en Azure App service
Partie 1
Introduire le cloud native
Dans cette partie, vous allez :
• Définir le cloud
• Définir l’approche cloud native
CHAPITRE 1
Définir le cloud
Ce que vous allez apprendre dans ce chapitre :
• Concept du cloud et ses avantages ;
• Exemple des fournisseurs cloud ;
• Différence entre cloud privé, public et hybride ;
• Services du cloud (IAAS, PAAS, SAAS).
CHAPITRE 1
Définir le cloud
1. Concept du cloud et ses avantages ;
2. Exemple des fournisseurs cloud ;
3. Différence entre cloud privé, public et hybride ;
4. Services du cloud (IAAS, PAAS, SAAS).
1. Définir le cloud
Concept du cloud et ses avantages
• Le terme « cloud » désigne les serveurs accessibles sur Internet, ainsi que les logiciels et bases de données qui fonctionnent
sur ces serveurs.
• Les serveurs situés dans le cloud sont hébergés au sein de datacenters répartis dans le monde entier.
• L'utilisation du cloud computing (informatique cloud) permet aux utilisateurs et aux entreprises de se libérer de la nécessité de
gérer des serveurs physiques eux-mêmes ou d'exécuter des applications logicielles sur leurs propres équipements.
Copyright - Tout droit réservé - OFPPT 6
1. Définir le cloud
Concept du cloud et ses avantages
• Le cloud permet aux utilisateurs d'accéder aux mêmes fichiers et aux mêmes applications à partir de presque n'importe
quel appareil, car les processus informatiques et le stockage ont lieu sur des serveurs dans un datacenter et non
localement sur la machine utilisateur.
• C'est pourquoi vous pouvez vous connecter votre compte Instagram à partir de n’importe quel appareil, avec toutes vos
photos, vidéos et l'historique de vos conversations. Il en va de même avec les fournisseurs de messagerie cloud comme
Gmail ou Microsoft Office 365 et les fournisseurs de stockage cloud comme Dropbox ou Google Drive.
• Pour les entreprises, le passage au cloud computing supprime certains coûts et frais informatiques : par exemple, les
sociétés n'ont plus besoin de mettre à jour et d'entretenir leurs propres serveurs, c'est le fournisseur de cloud qui s'en
charge.
Copyright - Tout droit réservé - OFPPT 7
1. Définir le cloud
Concept du cloud et ses avantages
Serveur informatique vs cloud privé : quelle solution de stockage de données choisir pour une entreprise ?
La question du stockage des données se pose pour toute entreprise. Le volume des données numériques à gérer ne cesse
d’augmenter. Optimiser la gestion des documents et le traitement des informations permet aux entreprises de rester
concurrentielles.
Concrètement, un serveur informatique relie un poste jouant le rôle de serveur à différents postes utilisateurs (postes clients)
et met ces derniers en réseau. Le serveur permet ainsi à chaque client de bénéficier de services divers :
– Le courrier électronique,
– L’accès à Internet,
– Le partage de fichiers,
– Le partage d’imprimantes,
– Le stockage en base de données ,
– La mise à disposition d’applications, etc.
Copyright - Tout droit réservé - OFPPT 8
1. Définir le cloud
Concept du cloud et ses avantages
Le client se connecte au réseau de l’entreprise et accède à ses documents. Le partage de documents entre les différents
membres d’une équipe est également possible mais uniquement sur les postes installés en interne au sein de l’entreprise.
Les limites du serveur informatique:
=> La sécurité des données en question
L’utilisation d’un support de stockage expose les entreprises à d’autres
risques :
- pannes matérielles pouvant rendre les systèmes de gestion
inopérants ;
- infestation des données (introduction d’un malware dans les
systèmes informatiques) ou piratage des données.
- Une capacité de stockage limitée
- Des coûts élevés pour l’entreprise
Copyright - Tout droit réservé - OFPPT 9
1. Définir le cloud
Concept du cloud et ses avantages
le cloud computing doit posséder 4 caractéristiques essentielles :
Le service doit être en libre-service à la demande
Le service doit être mesurable (mesure et affichage de paramètres de consommation).
Il doit y avoir une mutualisation des ressources
Il doit être rapidement élastique (adaptation rapide à une variation du besoin)
Copyright - Tout droit réservé - OFPPT 10
1. Définir le cloud
Concept du cloud et ses avantages
• Les avantages du Cloud Faible coût et
disponibilité
continue
Maintenance
La flexibilité allégée et
automatisée
Les employés
Hébergement peuvent travailler
d’applications et de n’importe où
de services
Optimisation des
ressources
Copyright - Tout droit réservé - OFPPT 11
CHAPITRE 1
Définir le cloud
1. Concept du cloud et ses avantages ;
2. Exemple des fournisseurs cloud ;
3. Différence entre cloud privé, public et hybride ;
4. Services du cloud (IAAS, PAAS, SAAS).
1. Définir le cloud
Exemple des fournisseurs cloud
• Les 10 premiers fournisseurs mondiaux de cloud en termes de revenus totaux pour le trimestre fiscal se terminant le 31
mars 2021 (en milliards de dollars américains)
Copyright - Tout droit réservé - OFPPT 13
CHAPITRE 1
Définir le cloud
1. Concept du cloud et ses avantages ;
2. Exemple des fournisseurs cloud ;
3. Différence entre cloud privé, public et hybride ;
4. Services du cloud (IAAS, PAAS, SAAS).
1. Définir le cloud
Différence entre cloud privé, public et hybride
Cloud public
• Les clouds publics sont généralement des environnements cloud créés à partir d'une infrastructure informatique qui
n'appartient pas à l'utilisateur final.
• Alibaba Cloud, Microsoft Azure, Google Cloud, Amazon Web Services (AWS) et IBM Cloud sont les principaux fournisseurs de
cloud public.
• Les clouds publics étaient habituellement exécutés hors site, mais les fournisseurs de cloud public proposent désormais des
services cloud dans les datacenters de leurs clients, ce qui rend les notions d'emplacement et de propriété obsolètes.
PARTIE 5
Copyright - Tout droit réservé - OFPPT 15
1. Définir le cloud
Différence entre cloud privé, public et hybride
Cloud privé
• Les clouds privés sont généralement définis comme des environnements cloud spécifiques à un utilisateur final ou à un
groupe, et sont habituellement exécutés derrière le pare-feu de l'utilisateur ou du groupe.
• Tous les clouds deviennent des clouds privés lorsque l'infrastructure informatique sous-jacente est spécifique à un client
PARTIE 5
unique, avec un accès entièrement isolé.
Copyright - Tout droit réservé - OFPPT 16
1. Définir le cloud
Différence entre cloud privé, public et hybride
Cloud privé
Toutefois, les clouds privés ne reposent désormais plus forcément sur une infrastructure informatique sur site. Aujourd'hui,
les entreprises créent des clouds privés dans des datacenters hors site et loués à des fournisseurs, ce qui rend les règles
relatives à l'emplacement et à la propriété obsolètes.
Cette tendance a fait naître différents sous-types de clouds privés, notamment :
Clouds privés gérés: Ce type de cloud est créé et utilisé par les clients, tandis qu'il est déployé, configuré et
géré par un fournisseur tiers.
Clouds dédiés: Il s'agit d'un cloud au sein d'un autre cloud. Vous pouvez déployer un cloud spécialisé dans un
cloud public.
PARTIE 5
Copyright - Tout droit réservé - OFPPT 17
1. Définir le cloud
Différence entre cloud privé, public et hybride
Cloud hybride
Un cloud hybride fonctionne comme un environnement informatique unique créé à partir de plusieurs environnements
connectés via des réseaux locaux (LAN), des réseaux étendus (WAN), des réseaux privés virtuels (VPN) et/ou des API.
Les caractéristiques des clouds hybrides sont complexes et les exigences associées peuvent varier selon l'utilisateur qui les
définit. Par exemple, un cloud hybride peut inclure :
Au moins un cloud privé et au moins un cloud public
Au moins deux clouds privés
Au moins deux clouds publics
Un environnement virtuel connecté à au moins un cloud privé ou public
PARTIE 5
Copyright - Tout droit réservé - OFPPT 18
CHAPITRE 1
Définir le cloud
1. Concept du cloud et ses avantages ;
2. Exemple des fournisseurs cloud ;
3. Différence entre cloud privé, public et hybride ;
4. Services du cloud (IAAS, PAAS, SAAS).
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
As-a-Service : définition
L'expression « aas » ou « as-a-Service » signifie généralement qu'un tiers se
charge de vous fournir un service de cloud computing, afin que vous puissiez
vous concentrer sur des aspects plus importants, tels que votre code et les
relations avec vos clients.
Chaque type de cloud computing allège la gestion de votre infrastructure sur
site.
Il existe trois principaux types de cloud computing « as-a-Service », chacun
offrant un certain degré de gestion :
- IaaS (Infrastructure-as-a-Service)
- PaaS (Platform-as-a-Service)
- SaaS (Software-as-a-Service).
Copyright - Tout droit réservé - OFPPT 20
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
IaaS : Infrastructure as a Service
Pour ce type de service le fournisseur de solution fournit les fonctions de
virtualisation le système de stockage les réseaux et les serveurs et vous y
donne accès en fonction de vos besoins;
Ainsi, l’utilisateur ne contrôle pas l'infrastructure Cloud sous jacente et il n'a
pas à s'inquiéter des mises à jour physiques ou de la maintenance de ces
composants;
Par contre et en tant qu’utilisateur, vous êtes responsable du système
d'exploitation ainsi que des données applications, solutions de middleware
et environnements d'exécution.
Copyright - Tout droit réservé - OFPPT 21
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
IaaS : Infrastructure as a Service
L'IaaS est le modèle Cloud « as a Service » le plus flexible et libre, il apporte aux utilisateurs tous les avantages des ressources
informatiques sur site, sans les actions et frais de gestion de l’infrastructure
En effet, il facilite la mise à l'échelle, la mise à niveau et permet d'ajouter des ressources, par exemple le stockage dans le Cloud
Exemples
Fournisseurs AWS Google Cloud Azure
IaaS Services Elastic ComputeCloud Compute Engine Virtual Machine
(EC2)
Copyright - Tout droit réservé - OFPPT 22
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
PaaS : Platform-as-a-Service
Le type de service PaaS est semblable à du IaaS, sauf que votre
fournisseur de services Cloud fournit également le système
d'exploitation et les environnements d’exécutions.
• Ainsi, l’utilisateur ne contrôle pas l'infrastructure Cloud sous-jacente
et il n'a pas à s'inquiéter des mises à jour physiques ou de la
maintenance de ces composants y compris le réseaux, les serveurs, les
systèmes d’exploitations ou de stockage.
• Par contre et en tant qu’utilisateur, vous avez le contrôle pour le
déploiement et configuration d’applications crées à l’aide de langages
de programmation, de bibliothèques, de services et d'outils pris en
charge par le fournisseur.
Copyright - Tout droit réservé - OFPPT 23
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
PaaS : Platform-as-a-Service
• Idéalement destiné aux développeurs et aux programmeurs, le PaaS fournit une plateforme simple et évolutive permettant aux
utilisateurs d’exécuter et gérer leurs propres applications, sans avoir à créer ni entretenir l'infrastructure ou la plateforme
généralement associée au processus.
Exemples
Fournisseurs AWS Google Cloud Azure
PaaS services AWS Elastic Beanstalk Google App Engine Azure App Service
Azure function App
Un service de gestion base de données géré par le fournisseur et accessible via le Cloud est considéré comme du
PaaS. Exemple : Azure SQL DB, Azure Cosmos DB …
Copyright - Tout droit réservé - OFPPT 24
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
SaaS Software as a Service
Le SaaS (ou services d'applications Cloud, est le type le plus
complet qui utilise le plus des services sur le marché du Cloud
Pour ce type de service le fournisseur fournit et gère une
application complète accessible par les utilisateurs via un
navigateur Web ou un client lourd
Ainsi, l’utilisateur ne contrôle pas la plateforme Cloud sous jacente
et il n'a pas à s'inquiéter des mises à jour logicielles ou l'application
des correctifs et les autres tâches de maintenance logicielle
Copyright - Tout droit réservé - OFPPT 25
1. Définir le cloud
Services du cloud (IAAS, PAAS, SAAS)
SaaS Software as a Service
Le SaaS constitue une option intéressante pour les PME qui n'ont pas les ressources humaines pour gérer l'installation et le suivi de
l’installation des mises à jour de sécurité et logiciels.
Par ailleurs, il est à noter que le modèle SaaS réduit le niveau de contrôle et peut nuire à la sécurité et aux performances => Il
convient donc de choisir soigneusement votre fournisseur Cloud
Exemples
Fournisseurs AWS Google Cloud Azure
SaaS services Zoom Google Apps Microsoft Office 365
Copyright - Tout droit réservé - OFPPT 26
CHAPITRE 2
Définir l’approche cloud native
Ce que vous allez apprendre dans ce chapitre :
• Définition de l’approche cloud native
• Avantages
• Vue générale sur les caractéristiques du cloud natif :
Automatisation des processus du développement et de
déploiement,
Microservices et conteneurs.
CHAPITRE 2
Définir l’approche cloud native
1. Définition ;
2. Avantages ;
3. Vue générale sur les caractéristiques du cloud natif :
2. Définir l’approche cloud native
Définition
Cloud Native : le Cloud Native décrit une approche de développement
logiciel dans laquelle les applications sont dès le début conçues pour une
utilisation sur le Cloud.
Il en résulte des applications Cloud Native (NCA) capables de pleinement
exploiter les atouts de l’architecture du Cloud Computing.
Cette approche se concentre sur le développement d’applications sous la
forme de microservices individuels, qui ne sont pas exécutés « On-
Premises » (localement), mais sur des plateformes agiles basées sur des
conteneurs.
Cette approche accélère le développement de logiciels et favorise la
création d’applications résilientes et évolutives (scalables).
Copyright - Tout droit réservé - OFPPT 29
2. Définir l’approche cloud native
Définition
Fonctionnement
L’approche Cloud Native repose sur quatre piliers qui sont liés et interdépendants.
- Du côté technique, on trouve les microservices et les technologies de conteneurs développées spécialement pour
l’environnement Cloud qui constituent des éléments fondamentaux du concept Cloud Native. Les différents microservices
remplissent une fonction précise et peuvent être rassemblés dans un conteneur avec tout ce qui est nécessaire à leur exécution.
Ces conteneurs sont portables et offrent aux équipes de développement un haut degré de flexibilité, par exemple lorsqu’il s’agit
de tester de nouveaux services.
- Du côté de la stratégie, les processus de développement et la Continuous Delivery sont bien établis. Lors de la conception
d’une architecture Cloud Native efficace, les équipes de développeurs (Developers = Dev), mais aussi l’entreprise (Operations =
Ops) sont directement impliquées. Dans le cadre d’un échange constant, l’équipe de développeurs ajoute à un microservice
certaines fonctionnalités livrées automatiquement par des processus de Continuous-Delivery.
Copyright - Tout droit réservé - OFPPT 30
CHAPITRE 2
Définir l’approche cloud native
1. Définition ;
2. Avantages ;
3. Vue générale sur les caractéristiques du cloud natif :
2. Définir l’approche cloud native
Avantages
Avantages
Flexibilité: Comme tous les services sont exécutés indépendamment de leur environnement les développeurs disposent
d’une grande liberté. Les modifications apportées au code n’ont pas d’impact sur le logiciel dans son ensemble. Le
déploiement de nouvelles versions du logiciel présente donc un risque plus faible.
L’évolutivité des applications à proprement parler, qui permet aux entreprises de ne pas devoir procéder à une mise à
niveau coûteuse du matériel en cas d’augmentation des exigences pour un service.
Le haut niveau d’automatisation réduit par ailleurs à un minimum les erreurs humaines de configuration et d’utilisation.
Copyright - Tout droit réservé - OFPPT 32
2. Définir l’approche cloud native
Avantages
Avantages
Voici quelques entreprises qui ont implémenté des techniques natives Cloud et qui ont obtenu, par conséquence, la vitesse,
l’agilité et la scalabilité.
Netflix, Uber et WeChat exposent des systèmes natifs Cloud qui se composent de nombreux services indépendants. Ce style
architectural leur permet de répondre rapidement aux conditions du marché. Elles mettent instantanément à jour de petites
zones d’une application complexe en service, sans redéploiement complet. Elles mettent à l’échelle individuellement les
services en fonction des besoins.
Entreprise Expérience
Dispose de plus de 600 services en production.
Effectue des déploiements 100 fois par jour.
Dispose de plus de 1 000 services en production.
Effectue des déploiements plusieurs milliers de fois par semaine.
Dispose de plus de 3 000 services en production.
Effectue des déploiements 1 000 fois par jour.
Copyright - Tout droit réservé - OFPPT 33
CHAPITRE 2
Définir l’approche cloud native
1. Définition ;
2. Avantages ;
3. Vue générale sur les caractéristiques du cloud natif :
2. Définir l’approche cloud native
Vue générale sur les caractéristiques du cloud natif
L’approche Cloud Native, se caractérise par l’utilisation d’architectures en microservices, de la technologie de conteneurs, de
livraisons en continu, de pipelines de développement et d’infrastructure exprimés sous forme de code (Infrastructure As a Code),
une pratique importante de la culture DevOps.
Copyright - Tout droit réservé - OFPPT 35
2. Définir l’approche cloud native
Vue générale sur les caractéristiques du cloud natif
Automatisation des processus du développement et de déploiement:
Comme l’approche DevOps, le Cloud Native cherche à rassembler les équipes Dev et Ops autour d’un objectif commun long terme :
celui de la création de valeur business par les applications.
L’approche DevOps permet de converger vers une approche Cloud Native avec l’automatisation des processus et des technologies
entre les équipes, de façon à intégrer plus rapidement les innovations dans les cycles de développement et de déploiement
d’une application Cloud Native.
En parallèle du Cloud Native, l’adoption des méthodes Agiles va permettre d’intégrer les équipes métier dans cette collaboration
avec les équipes techniques et de développement. L’idée est de collaborer pour délivrer une itération en améliorant le produit à
chaque livraison de façon continue.
Copyright - Tout droit réservé - OFPPT 36
2. Définir l’approche cloud native
Vue générale sur les caractéristiques du cloud natif
Les microservices
Les microservices désignent à la fois une architecture et une approche de développement logiciel qui consiste à décomposer les
applications en éléments les plus simples, indépendants les uns des autres. Contrairement à une approche monolithique classique,
selon laquelle tous les composants forment une entité indissociable, les microservices fonctionnent en association pour accomplir
les mêmes tâches, tout en étant séparés.
Pour communiquer entre eux, les microservices d'une application utilisent le modèle de communication requête-réponse.
L'implémentation typique utilise des appels API REST basés sur le protocole HTTP. Les procédures internes (appels de fonctions)
facilitent la communication entre les composants de l'application.
les microservices sont beaucoup plus faciles à créer,
tester, déployer et mettre à jour
Copyright - Tout droit réservé - OFPPT 37
2. Définir l’approche cloud native
Vue générale sur les caractéristiques du cloud natif
Les Conteneurs
Tout comme le secteur du transport utilise des conteneurs pour isoler
les différentes marchandises à transporter à bord des navires, des trains,
des camions et des avions, le développement logiciel a de plus en plus
recours au concept de conteneurisation.
Un package logiciel unique, appelé « conteneur », regroupe le code
d’une application avec les fichiers de configuration, les bibliothèques et
les dépendances requises pour que l’application puisse s’exécuter.
Ceci permet aux développeurs et aux professionnels de l’informatique
de déployer les applications de façon transparente dans tous les
environnements.
Copyright - Tout droit réservé - OFPPT 38