Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 1
Definition : Les microservices une approche de développement CRUD API REST (CLOUD NATIVE) :
logiciel qui consiste à décomposer les applications 1-Conection avec Mongodb :
Le Cloud Native décrit une approche de en éléments les plus simples. const mongoose= require(‘mongoose’) développement logiciel dans laquelle les mongoose.connect(‘mongodb:// applications sont dés Ie début conçues pour une la différence entre une approche monolithique et 127.0.0.1:27017/Dbname’) utilisation sur Ie Cloud. Ie microservice : .then(()=>console.log(‘connected’) 4 caractéristiques de cloud Computing : Une application monolithique est une seule unité .catch((error=>console.log(error)) -Le service doit étre en libre-service å la demande. unifiée, une architecture microservices la 2-Add Product : -Le service doit étre mesurable décompose en un ensemble de petites unités router.post('/product/add' , async (req, res)=>{ try { -II doit y avoir une mutualisation des ressources indépendantes. const product = new Product(req.body) -II doit étre rapidement élastique (adaptation) Une API (interface de programmation const ProductSave =await product.save() res.status(201).json({message:"saved" , 4 caractéristiques de cloud native : d'application):est un ensemble de définitions et de data:ProductSave}) } catch (error) { Microservices - Conteneurisation - Élasticité - protocoles qui facilite la création et l'intégration de res.status(400).json({message:"failed"} ) } }) évolutivité logiciels d'applications. 3-Afficher Products: 1. Décomposition en microservices. 3 avantages des API' router.get('/Products, async (req, res)=>{ 2. Conteneurisation. 1)Pouvoir interagir avec un systéme sans se soucier const AllAuthor =await Product.find() 3. Évolutivité dynamique. de sa complexité et de son fonctionnement. if (AllProduct.length>0) 4. Automatisation et orchestration. 2)Souvent spécialisée dans un domaine et sur un res.status(200).json({data:AllProduct }) else res.status(400).json({message:"failed"}) }) les avantages du cloud native : use case particulie module.exports=router - Haute disponibilité - Déploiement plus rapide - 3)Constituent un moyen simplifié de connecter 4-Editer Products : Coût réduit (une optimisation des coüts) votre propre infrast cture au travers du router.put('/Product/:title/edit' , async (req,res)=>{ une portabilité, une résilience, une agilité développement d'applications cloud-native. const title = req.params.title L’approche cloud native : est une méthode de API REST: est l'interface de programmation const checkProduct = await développement,et de gestion d'applications qui est d'applications de transfert d'état Product.findOneAndUpdate({title}, req.body, spécifiquement conçue pour fonctionner de représentationnelle, plus communément appelée {new:true}) if maniére optimale dans un environnement de service Web API REST. (checkProduct)res.status(200).json({data:checkProduct} cloud computing. la méthode POST : envoie les données à traiter à ) 4 caractéristiques de l’approche cloud native une source spécifiée . else res.status(400).json({message:"failed"} ) } ) Ia décomposition en microservices, la avantage méthode post : 4-Supprimer Products : conteneurisation, l'évolutivité Ne sont jamais paramétrées, router.delete('/Product/:title' ,async(req,res)=>{ horizontale ,l'automatisation/orchestration, une Ne restent pas dans l'historique du navigateur. // if(!req.isAdmin) يال ماكانش ادمين ميمكنش architecture N'ont aucune restriction de longueur de données. يسيبريمي شي حد // return res.status(200)json({message:"not flexible. La méthode GET de HTTP demande des données allowed"}) les avantages de l'approche cloud native : d'une source spécifiée. const delProduct = await Flexibilité, évolutivité automatisation réduite Avantages de méthode GET : Product.findOneAndDelete({title:req.params.title}) A quoi se concentre ou se base rapproche de cloud • Rester dans l'historique du navigateur. if(delProduct) native ? • étre marqué. res.status(200).json({message:"deleted"}) Cette approche se concentre sur Ie développement else res.status(400).json({message:"failed"}) }) d'applications sous Ia forme de microservices La directive "require" indique à JavaScript 5-Model (Product) : const Schema = mongoose.Schema({ individuels, qui ne sont pas exécutés « On- d'importer la totalité du module demandée. title:{ type:Sring ,unique:true, required:true}, Premises » (localement), mais sur des plateformes le directif "import" permet de n'importer qu'une price:{ type:Number ,unique:true, required:true} }) agiles basées sur des conteneurs. partie spécifique d'un module. module.exports = mongoose.model(Product, Schema) L'approche de cloud native repose sur 4 piliers : Le middleware: est une fonction qui a accés au les architectures microservices, les technologies de nécessaire, réponse objet et nouvelle fonction 6-home.ejs(views): conteneurs , le processus de dans le cycle demande-réponse <body>… développement(devops) et la livraison contenu avantages des conteneurs (diapo 203) : <tbody> <% for(let i=0;i<produit.length;i++){ %> <tr> (continuous delivery) Portabilité , Vitesse , Isolation, Facilité de la <td><%=produit[i].title %></td> L'approche Cloud Native repose sur quatre piliers gestion . <td> <a href="/del/<%=student[i].code %>">del</a> qui sont liés et interdépendants. devOps : <a href="/update/<%=student[i].code%>">edit</a> les différents modéles de cloud native : L'adoption des méthodes Agiles qui va permettre </td></tr><% } %></tbody> Cloud public - cloud privé - cloud hybride d'lntégrer les équipes métier dans cette </body> Fornisseurs de cloud : collaboration avec les équipes techniques et de 7-Index.js Amazon , google cloud - Microsoft développement. L'idée est de collaborer pour const express = require("express"); const studentRoute=require('./router/RouteStudent') Exemples de fornisseur de : délivrer une itération en améliorant Ie produit å const userRoute=require('./router/RouteUser') IAAS :Elastic Compute Cloud ,AWS-Compute chaque livraison de fagon continue. const ejs=require('ejs') Engine Docker une plateforme qui permet de créer facilement des const axios=require('axios'); , GOOLE CLOUD Virtual Machine ,AZURE. conteneurs et des applications basées sur les conteneurs. const bodyParser = require("body-parser"); PAAS: AWS Elastic Beanstalk, AWS- Google App les commande docker : docker run: Lance un conteneur à partir d'une image.docker build: Construit une nouvelle const app = express(); Engine , GOOLE CLOUD - Azure App Service - azure image Docker. docker pull: Télécharge une image Docker app.set('view engine','ejs') function App ,AZURE depuis un registre. docker push: Envoie une image Docker require("./DBconnect"); SAAS: ZOOM , AWS Google apps , Microsoft office vers un registre. docker stop: Arrête l'exécution d'un ou app.use(express.json()); 365, azure plusieurs conteneurs. docker start: Démarre un conteneur app.use(bodyParser.urlencoded()) La conteneurisation, est un type de virtualisation, arrêté. docker restart: Redémarre un ou plusieurs app.use('/api/v1/students/',studentRoute) qui consiste a rassembler le code du logiciel et conteneurs. docker rm: Supprime un ou plusieurs app.use('/api/v1/users/',userRoute) tous ses composants . conteneurs. docker rmi: Supprime une ou plusieurs app.get('/',async (req,res)=>{ images Docker. docker ps: Affiche les conteneurs en cours la différence entre la conteneurisation et la const title='connexion' machine virtuelié d'exécution. docker images: Liste les images Docker const response= await Les conteneurs sont plus compacts que les présentes sur le système. docker exec: Exécute une axios.get('http://localhost:5000/api/v1/students') commande à l'intérieur d'un conteneur en cours const student=response.data; machines virtuelles et démarrent plus console.log(student) Rapidement. d'exécution. docker logs: Affiche les journaux de sortie res.render('home',{title,student:student})}) une application monolithique d'un conteneur. docker inspect: Récupère des est une application qui est développée en un seul informations détaillées sur un ou plusieurs conteneurs. app.listen(5000, () => { bloc avec une méme technologie et déployée dans console.log("__Server Word__"); docker network: Gère les réseaux Docker, la création, la }); un serveur d'application. suppression et la gestion des connexions entre les conteneurs.