Réalisé par:
Mayssa Ghribi
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.
Une application Cloud native est conçue avec une infrastructure basée sur des conteneurs ainsi
qu’une architecture axée sur les microservices.
2
Application Cloud Native
3
Application Cloud Native
Le DevOps, c’est avant tout une démarche qui consiste à faire collaborer étroitement les
équipes de développement et d’études avec les équipes des opérations et d’exploitation.
Cette collaboration implique d’aller jusque dans la responsabilité commune du succès ou
de l’échec.
4
Application Cloud Native
•Choisir une plate-forme qui prend en charge la portabilité entre les Clouds. Une plate-
forme Cloud native qui prend en charge la portabilité des applications entre diverses
ressources peut optimiser la flexibilité et le déploiement sur différents Clouds.
•Sélectionner une plate-forme qui évite toute dépendance. Lors de l’utilisation d’un
environnement Cloud as-a-service public propriétaire, les applications et les données
peuvent être liées à cet environnement précis. En choisissant une plate-forme offrant une
flexibilité maximale, il est plus facile et moins onéreux de déplacer les applications vers la
ressource Cloud optimale. 8
Application Cloud Native
Facteur Explication
1 - Base de code Base de code unique pour chaque microservice, stockée dans son propre référentiel. Suivi avec
le contrôle de version, elle peut être déployée sur plusieurs environnements (AQ,
préproduction, production).
2 – Dépendances Chaque microservice isole et package ses propres dépendances, en adoptant les modifications
sans avoir d’impact sur l’ensemble du système.
3 – Configurations Les informations de configuration sont déplacées hors du microservice et externalisées par le
biais d’un outil de gestion de configuration en dehors du code. Le même déploiement peut se
propager entre les environnements avec la configuration appropriée appliquée.
4 – Services de stockage Les ressources auxiliaires (magasins de données, caches, répartiteurs de messages) doivent être
exposées via une URL adressable. Cela dissocie la ressource de l’application, ce qui lui permet
d’être interchangeable.
5 – Générer, mettre en Chaque version doit appliquer une séparation stricte entre les étapes de génération, de mise en
production, exécuter œuvre et d’exécution. Chacune doit être marquée avec un ID unique et prendre en charge la
possibilité de restaurer. Les systèmes CI/CD modernes aident à respecter ce principe.
6 – Processus Chaque microservice doit s’exécuter dans son propre processus, isolé des autres services en
cours d’exécution. Externalisez l’état requis à un service de stockage tel qu’un cache distribué
ou un magasin de données.
9
Application Cloud Native
Facteur Explication
7 – Liaison de port Chaque microservice doit être autonome avec ses interfaces et ses fonctionnalités exposées sur son
propre port. Cela permet l’isolement d’autres microservices.
8 – Concurrence Lorsque la capacité doit augmenter, effectuez un scale-out des services horizontalement sur plusieurs
processus identiques (copies) par opposition au scale-up d’une seule grande instance sur l’ordinateur le
plus puissant disponible. Développez l’application pour qu’elle effectue un scale-out simultané dans des
environnements cloud transparents.
9 – Élimination Les instances de service doivent pouvoir être éliminées. Privilégiez le démarrage rapide pour augmenter
les opportunités d’extensibilité et les arrêts appropriés pour laisser le système dans un état correct. Les
conteneurs Docker ainsi qu’un orchestrateur répondent intrinsèquement à cette exigence.
10 – Parité Dév/Prod Conservez les environnements dans le cycle de vie de l’application aussi similaire que possible, ce qui
évite les raccourcis coûteux. Ici, l’adoption des conteneurs peut apporter une contribution considérable
en favorisant le même environnement d’exécution.
11 – Journalisation Traitez les journaux générés par les microservices en tant que flux d’événements. Traitez-les avec un
agrégateur d’événements. Propagez les données de journal aux outils de gestion des
journaux/d’exploration de données comme Azure Monitor ou Splunk et éventuellement à l’archivage à
long terme.
12 – Processus Exécutez des tâches d’administration/de gestion, telles que le nettoyage des données ou l’analytique
d’administration informatique, en tant que processus ponctuels. Utilisez des outils indépendants pour appeler ces tâches
à partir de l’environnement de production, mais séparément de l’application. 10
Introduction à IBM Cloud
La plateforme IBM Cloud inclut plusieurs composants qui offrent une expérience cohérente
et fiable.
Une console robuste utilisée comme serveur frontal pour la création, l'affichage et la
gestion de vos ressources de cloud.
Un composant Identity and Access Management (IAM) qui authentifie de manière
sécurisée les utilisateurs pour les services de plateforme et contrôle l'accès aux ressources
de manière cohérente dans IBM Cloud.
Un catalogue composé de centaines de produits pris en charge.
Un mécanisme de recherche et d'étiquetage pour le filtrage et l'identification de vos
ressources.
Un système de gestion des comptes et de facturation présentant une utilisation exacte des
plans de facturation et une protection contre la fraude aux cartes de crédit.
11
Introduction à IBM Cloud
IBM Cloud propose une gamme complète d'options de calcul sur lesquels les
développeurs peuvent exécuter leurs applications.
Un runtime est un ensemble de ressources informatiques utilisées pour exécuter une
application.
IBM propose cinq méthodes principales pour déployer, exécuter et faire évoluer les
charges de travail y compris les plateformes (cloud Foundry), les machines (serveurs
virtuelles), des conteneurs (IBM Cloud Kubernets), des serveurs bare metal(serveur
dédidé) et des dispositifs sans serveur.
12
Introduction à IBM Cloud
13
Introduction à IBM Cloud
14
Introduction à IBM Cloud IBM Cloud catalog: Starter kits
15
Introduction à IBM Cloud Exemples de kits de démarrage :
• Application Web Node.js avec Express.js: Ce kit de démarrage est préconfiguré en tant
qu'application Web avec Express.js qui utilise l'environnement d'exécution Node.js.
• Microservice Node.js avec Express.js et Microservice Java avec Spring : Ce kit de
démarrage est préconfiguré en tant que microservice avec Express.js ou bien il utilise Spring
Boot. Il permet à l'utilisateur d'utiliser le IBM Cloud Developer Tools CLI pour exécuter et
déboguer localement, puis déployer sur Kubernetes, CloudFoundry ou un pipeline DevOps.
• Microservice Java avec MicroProfile et Java EE: Ce kit de démarrage est préconfiguré en
tant qu'application de microservice Java avec les outils nécessaires pour configurez votre
environnement de développement et déployez-le sur Kubernetes via une chaîne d'outils
DevOps.
16
Introduction à IBM Cloud
17
Introduction à IBM Cloud Catalogue IBM Cloud: Création a starter kit
18
Introduction à IBM Cloud Catalogue IBM Cloud: Création a starter kit
19
Introduction à Cloud Foundry
Cloud Foundry est une plate-forme en tant que service (PaaS) open source sur IBM Cloud
qui vous permet de déployer et de mettre à l'échelle des applications sans gérer de serveurs.
20
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
Vous pouvez utiliser les commandes ibmcloud dev de Developer Tools sur la ligne de
commande ou la console de développement d'application IBM Cloud basée sur le Web
pour la génération, l'exécution en local et le déploiement d'une application Node.js
21
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
Avant de commencer, vérifier que vous avez un accès à un compte IBM Cloud et que IBM
Cloud CLI est installé sur votre PC.
Connectez-vous à votre compte IBM Cloud. Si vous n'avez pas de compte, vous pouvez
vous enregistrer pour obtenir un compte gratuit.
23
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
25
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
26
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
Pour découvrir comment vos répertoires d'application sont structurés après leur déploiement,
utilisez SSH vers l'application déployée en exécutant la commande suivante :
ibmcloud cf ssh GetStartedNode
28
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
Les étapes suivantes vous guide dans les procédures de génération, d'exécution en local et de
déploiement d'une application Node.js à l'aide de la console de développement
d'application IBM Cloud.
29
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
30
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
31
Déploiement d'applications Cloud Foundry avec IBM Cloud CLI
Pour un déploiement sur IBM Container Services dans IBM Cloud, utilisez la commande
suivante :
ibmcloud dev deploy –target container
32