<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alexandre Chambu</title>
    <description>The latest articles on DEV Community by Alexandre Chambu (@lexnotor).</description>
    <link>https://dev.to/lexnotor</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1096254%2F9adb4ad3-f0d9-4830-b490-53934c84db01.jpeg</url>
      <title>DEV Community: Alexandre Chambu</title>
      <link>https://dev.to/lexnotor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lexnotor"/>
    <language>en</language>
    <item>
      <title>Déployer une application NodeJs sur App Engine</title>
      <dc:creator>Alexandre Chambu</dc:creator>
      <pubDate>Tue, 04 Jul 2023 14:37:05 +0000</pubDate>
      <link>https://dev.to/kadea-academy/deployer-une-application-nodejs-sur-app-engine-2gbf</link>
      <guid>https://dev.to/kadea-academy/deployer-une-application-nodejs-sur-app-engine-2gbf</guid>
      <description>&lt;p&gt;App Engine est l'un des produits que proposent Google dans la Google Cloud Platform. Il est placé dans la catégorie des services Serverless, du fait qu'il permet de déployer son application sans se soucier de tonne de configurations que l'on fait généralement pour déployer une application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Je vous recommande de lire &lt;a href="https://dev.to/kadea-academy/utiliser-google-cloud-platform-4lhj"&gt;cet article&lt;/a&gt; avant de continuer, c'est une brève explication de Google Cloud Platform.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Il est important d’ajouter un compte de facturation pour pouvoir utiliser ce produit. Pour le faire, accédez au service &lt;strong&gt;Facturation&lt;/strong&gt;, et suivez les instructions.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ck6spAyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/547tgltcunlvn3vncc2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ck6spAyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/547tgltcunlvn3vncc2j.png" alt="Service Facturation" width="543" height="359"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Activer l’API App Engine et Créer une application
&lt;/h2&gt;

&lt;p&gt;Ouvrez Google Cloud Platform Console, dans le panneau latéral entrez dans &lt;strong&gt;App Engine&lt;/strong&gt;. Cliquez ensuite sur Activer l’API&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Uuy9GuK1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zixjfk5j9biv2s43paf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Uuy9GuK1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zixjfk5j9biv2s43paf.png" alt="Activer App Engine" width="642" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vous pourrez ensuite créer une nouvelle application App Engine dans la GCP Console.&lt;/p&gt;

&lt;p&gt;Choisissez le langage à utiliser (Node.js pour JavaScript). L’environnement Standard est moins coûteux, votre application sera mise en veille (0 instance démarrée) en cas de non utilisation. L’environnement Flexible permet de booster les ressources pour les adapter au mieux à l’application, l’application n’est jamais mise en veille (au moins 1 instance en cours, même après plusieurs mois d’inactivité).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---_hW5LoY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ek6hufhbetmysuzcteay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---_hW5LoY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ek6hufhbetmysuzcteay.png" alt="Langage utilisé" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Notez qu'à ce niveau il n'y a pas de bouton &lt;strong&gt;Enregistrer&lt;/strong&gt;. L'enregistrement se fera automatiquement lors du déploiement.&lt;br&gt;
Par contre l'on nous propose d'installer le SDK gcloud, c'est la prochaine étape.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Installer SDK gcloud
&lt;/h2&gt;

&lt;p&gt;Le SDK gcloud est une application &lt;strong&gt;en ligne de commande&lt;/strong&gt; qui nous permet d'&lt;strong&gt;interagir avec Google Cloud Platform&lt;/strong&gt; sans passer par la GCP Console (Interface Web). Elle est nécessaire pour déployer votre application Node.js avec App Engine.&lt;/p&gt;

&lt;p&gt;Selon votre système, suivez la procédure indiquée &lt;a href="https://cloud.google.com/sdk/docs/install?hl=fr"&gt;ici&lt;/a&gt; (&lt;a href="https://cloud.google.com/sdk/docs/install?hl=fr"&gt;Install gcloud CLI&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Sur Ubuntu (version LTS) exécutez ces commandes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;apt-transport-https ca-certificates gnupg curl &lt;span class="nb"&gt;sudo

echo&lt;/span&gt; &lt;span class="s2"&gt;"deb https://packages.cloud.google.com/apt cloud-sdk main"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; /etc/apt/sources.list.d/google-cloud-sdk.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-key add -

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;google-cloud-cli

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ces commandes installent gcloud et les outils nécessaires à son fonctionnement.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qUoAy1cs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fomo7tyt4s5oii57pu1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qUoAy1cs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fomo7tyt4s5oii57pu1y.png" alt="Install gcloud" width="800" height="210"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurer son déploiement
&lt;/h2&gt;

&lt;p&gt;Pour déployer son application il faut indiquer à gcloud certains détails, notamment le compte Google à utiliser, le projet GCP relié à notre application, ….&lt;/p&gt;
&lt;h3&gt;
  
  
  Pour notre cas commençons par connecter le compte à gcloud
&lt;/h3&gt;

&lt;p&gt;Connecter son compte à gcloud se fait aussi simplement qu'en une ligne de commande. Dans votre ligne de commande, executez&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud auth login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette commande ouvre votre navigateur web, il suffit alors de choisir le compte que vous souhaitez connecter et d'accepter les autorisations demandées.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ensuite connecter un projet GCP à gcloud.
&lt;/h3&gt;

&lt;p&gt;L'étape suivante est d'indiquer à gcloud le projet Google Cloud que l'on va utiliser. Pour cela, executer la commande&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud config &lt;span class="nb"&gt;set &lt;/span&gt;projet PROJECT_ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remplacer PROJECT_ID par l’identifiant de votre projet. Il peut être trouver dans la GCP Console. Sur l'image le projet Learning Cloud a comme PROJECT_ID &lt;code&gt;learning-cloud-386212&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Asw3tt7R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/92dtx6s2z79asgwhs2i9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Asw3tt7R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/92dtx6s2z79asgwhs2i9.png" alt="Obtenir PROJECT_ID" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Écrire le fichier app.yaml
&lt;/h3&gt;

&lt;p&gt;Si vous n’avez pas encore d'application, vous pouvez cloner celle-ci sur github: &lt;a href="https://github.com/lexnotor/gcloud-dev.git"&gt;https://github.com/lexnotor/gcloud-dev.git&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jqXH1H6N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qy9iupnudy8vjrzndd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jqXH1H6N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qy9iupnudy8vjrzndd7.png" alt="Project Structure" width="800" height="414"&gt;&lt;/a&gt;&lt;br&gt;
App engine fournit le port sur lequel votre application peut être démarré, on y accède à partir de process.env.PORT.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;App Engine aura besoin de quelques informations (le langage utilisé, …) pour démarrer votre application en ligne. Ces informations sont spécifiées dans un fichier app.yaml et ce fichier est placé à la racine du projet. Ajoutez-le à la racine de votre application.&lt;/p&gt;

&lt;p&gt;Voici un exemple du contenue de ce fichier&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nodejs18&lt;/span&gt;

&lt;span class="c1"&gt;# le nom du service, par defaut le nom est default&lt;/span&gt;
&lt;span class="na"&gt;service&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;test-deploy&lt;/span&gt;

&lt;span class="c1"&gt;# nombre d'instance maximum&lt;/span&gt;
&lt;span class="na"&gt;automatic_scaling&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;max_instances&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;

&lt;span class="c1"&gt;# indique à app engine de diriger tous les paths (URL) vers l'application&lt;/span&gt;
&lt;span class="na"&gt;handlers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/.*&lt;/span&gt;
      &lt;span class="na"&gt;secure&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
      &lt;span class="na"&gt;redirect_http_response_code&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;301&lt;/span&gt;
      &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;auto&lt;/span&gt;

&lt;span class="c1"&gt;# commande pour demarrer son application&lt;/span&gt;
&lt;span class="na"&gt;entrypoint&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;npm&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;run&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;start:prod"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dans cet exemple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;runtime&lt;/strong&gt;: indique que l’on utilise la version &lt;code&gt;18 de Nodejs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;service&lt;/strong&gt;: indique le nom que l’on souhaite donner à notre service&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;automatic_scaling&lt;/strong&gt;: un objet qui indique les paramètres de scalabilité

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;max_instances&lt;/strong&gt;: cette clé indique le nombre maximum d’instance qui seront créées, pour notre petite application une instance suffit.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;handlers&lt;/strong&gt;: un tableau d’objets qui indiquent comment app engine gère les requêtes

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;url&lt;/strong&gt;: les paths d’url que la configuration gère. &lt;code&gt;/.*&lt;/code&gt; = tous les paths&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;secure&lt;/strong&gt;: configure l’utilisation de https et http. &lt;code&gt;always&lt;/code&gt; = redirige toutes les requêtes vers https&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;redirect_http_response_code&lt;/strong&gt;: le &lt;em&gt;code de statut&lt;/em&gt; de la redirection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;script&lt;/strong&gt;: si &lt;code&gt;auto&lt;/code&gt; alors les requêtes sont adressées à l’application&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;entrypoint&lt;/strong&gt;: la commande que App engine exécutera pour lancer l’application. Notez que app engine exécute lui même &lt;code&gt;npm build&lt;/code&gt; avant cette commande. Pour notre cas, c’est une application NestJs que nous allons déployer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Déployer
&lt;/h2&gt;

&lt;p&gt;La dernière étape est d'envoyer notre projet sur Google Cloud, encore là gcloud nous facilite grandement la tâche en une commande.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud app deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette commande envoi l'ensemble de vos code dans le cloud, et déploie l'application.&lt;/p&gt;

&lt;p&gt;Pour voir le lien du déploiement, rendez-vous sur la GCP Console, dans le service App Engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Félicitations vous venez de déployer une application NodeJs sur Google Cloud Platform via App Engine&lt;/strong&gt;. Notez qu'il ne s'agit pas de la seule façon de le faire.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Alexandre Chambu&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/lexnotor/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/lexnotor"&gt;Github&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>googlecloud</category>
    </item>
    <item>
      <title>Utiliser Google Cloud Platform</title>
      <dc:creator>Alexandre Chambu</dc:creator>
      <pubDate>Mon, 03 Jul 2023 22:58:02 +0000</pubDate>
      <link>https://dev.to/kadea-academy/utiliser-google-cloud-platform-4lhj</link>
      <guid>https://dev.to/kadea-academy/utiliser-google-cloud-platform-4lhj</guid>
      <description>&lt;h2&gt;
  
  
  Le Cloud
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quid ?
&lt;/h3&gt;

&lt;p&gt;Le cloud est compris comme un ensemble d’outils sur internet que l’on peut louer. Ces outils sont censés fournir des ressources adaptées au déploiement de n’importe quelle application. Nous pouvons l’imaginer comme des ordinateurs virtuels dont les capacités de la RAM, du Disque et du Processeur peuvent s’adapter en fonction de nos besoins.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avantages
&lt;/h3&gt;

&lt;p&gt;Les services cloud sont généralement utilisés pour les raisons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La flexibilité: un service peut être loué pendant le temps dont nous avons besoin, plutôt que d’acheter des ordinateurs surpuissants pour les utiliser une seule fois. &lt;/li&gt;
&lt;li&gt;la scalabilité: les ressources peuvent être étendues au fur et à mesure que l’on en a besoin.&lt;/li&gt;
&lt;li&gt;la bande passante: les services cloud sont généralement interconnectés, avec des grands débit de transfert de données entre eux.&lt;/li&gt;
&lt;li&gt;les services divers: la plupart des cloud providers vont offrir des services divers comme la reconnaissance d’image, …&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Services Google Cloud
&lt;/h3&gt;

&lt;p&gt;Le cloud de Google propose plus de 150 produits et services, que nous pouvons essentiellement classer en plusieurs types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Type Compute: Nous retrouvons un ensemble des services qui vous louent une machine (virtuelle) avec différents niveaux de contrôle. Par exemple, le produit &lt;strong&gt;Compute Engine&lt;/strong&gt; propose un ordinateur complet que vous utilisez comme bon vous semble, le produit &lt;strong&gt;Cloud Run&lt;/strong&gt; vous permet d'exécuter des conteneurs Docker, avoir un contrôle dessus et laisser Google géré la configuration de l'ordinateur, le produit &lt;strong&gt;App Engine&lt;/strong&gt; vous permet exécuter votre application sans se souciez de la configuration de l'environnement, Google se charge de la containérisation et autre configuration pour vous, le produit &lt;strong&gt;Cloud Function&lt;/strong&gt; vous permet d’exécuter des petits bout de code, ...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type Network:Pour géré la configuration de votre réseau, l’interconnexion de vos applications, ... Nous trouvons les produits comme Cloud Virtual Network, Cloud DNS, Cloud CDN, ...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type Storage: Pour le stockage de données (Base de donnée, fichiers, ...). Comme exemple Cloud Storage, Cloud SQL, Cloud Datastore, Cloud BigTable, ...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type Big Data: Pour la gestion de très grandes quantités de données, à l'ordre de Terabytes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type Analytics: &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type AI: Produits fournissant des très grandes puissances Machine Learning, pour des opérations nécessitant des Tensor Process Unit adaptés. Comme exemple: Cloud Machine Learning, Vision API, Translate API, Natural Language API, ...&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Google Cloud Platform
&lt;/h2&gt;

&lt;p&gt;Google cloud permet de gérer l'espace cloud de deux façons; en utilisant, soit son interface web (Google Cloud Platform Console), soit son l'application en ligne de commande &lt;strong&gt;gcloud&lt;/strong&gt;.&lt;br&gt;
L'interface Web est plus adaptée pour démarrer avec Google Cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accéder à la console (GCP console)
&lt;/h3&gt;

&lt;p&gt;Ouvrez la page &lt;a href="https://cloud.google.com/?hl=fr"&gt;Google Cloud Platform&lt;/a&gt;, et cliquer sur &lt;strong&gt;console&lt;/strong&gt; en haut à droite de la page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UmZbAS5E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ni7imah0n78efxsz47j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UmZbAS5E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ni7imah0n78efxsz47j.png" alt="Page d'acceuil GCP" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Créer un projet
&lt;/h3&gt;

&lt;p&gt;Vous aurez besoin d'un projet, pour utiliser les services Cloud.&lt;br&gt;
Sur la page qui s'ouvre, cliquer sur Nouveau projet. Vous pourrez ensuite saisir le nom du projet que vous souhaitez. Je suis très inspiré, appelons notre porjet Learning Cloud. Vous pouvez laissez le champ zone comme tel. Finalement cliquez sur CRÉER.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VL9MfQbT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mn65ju1dw7d51yrg3wij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VL9MfQbT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mn65ju1dw7d51yrg3wij.png" alt="Créer un nouveau projet" width="688" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La page qui s’ouvre affiche les informations sur votre projet (Principalement les produits cloud que vous avez activé dans ce projet).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SmLMlgDp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rp1mr83ikfeq1keym2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SmLMlgDp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rp1mr83ikfeq1keym2h.png" alt="Dashboard API et Services" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Utiliser les API
&lt;/h3&gt;

&lt;p&gt;Les produits dans la GCP Console sont des API que vous pouvez activer. Pour activer un produit (une API) , ouvrez le menu latéral gauche, ensuite sélectionnez un produit que vous voulez utiliser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j11ACydJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el7xdqt5g0c4cy918gtn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j11ACydJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el7xdqt5g0c4cy918gtn.png" alt="Choisir un produit (API)" width="642" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voici un exemple du produit Kubernetes Engine API&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DUT_KyzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k4183xy32pb6vkwgr6tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DUT_KyzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k4183xy32pb6vkwgr6tv.png" alt="Activer le produit Kubernetes Engine API" width="674" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dans des prochains articles, nous montrerons comment utiliser certains de ces produits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/kadea-academy/deployer-une-application-nodejs-sur-app-engine-2gbf"&gt;Déployer une application Node.Js sur App Engine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>googlecloud</category>
    </item>
    <item>
      <title>Écrire un fichier README.md</title>
      <dc:creator>Alexandre Chambu</dc:creator>
      <pubDate>Tue, 06 Jun 2023 09:55:40 +0000</pubDate>
      <link>https://dev.to/kadea-academy/ecrire-un-fichier-readmemd-3ajp</link>
      <guid>https://dev.to/kadea-academy/ecrire-un-fichier-readmemd-3ajp</guid>
      <description>&lt;p&gt;Tout projet de programmation structuré en fichier est sensé avoir un fichier spécial qui documente la structure du projet. Ce fichier contient tout ce qu’il y a à connaître sur le projet, notamment comment l’installer ou l’exécuter, les ressources à consulter en cas de problèmes et tout un tas d’autres informations essentielles. Sur Github, un fichier readme peut aussi être utilisé pour personnaliser son profil.&lt;/p&gt;

&lt;p&gt;Le fichier est écrit en markdown, qui est une syntaxe simplifiée du langage HTML. Le markdown respecte un certain nombre de règles pour formater le texte. On a ainsi la possibilité d’insérer une image, de spécifier un titre, d’inserer un bout de code,…&lt;/p&gt;

&lt;p&gt;Nous allons écrire ensemble un fichier readme de l’application &lt;a href="https://chatbux.vercel.app"&gt;https://chatbux.vercel.app&lt;/a&gt;. Nous utiliserons pour cela l’éditeur de texte VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Décrivez brièvement votre projet
&lt;/h2&gt;

&lt;p&gt;Au début de notre fichier, il est toujours intéressant d’avoir un bref aperçu de l’ensemble du projet. Pour notre cas nous ajoutons le nom du projet, un logo et un petit texte. Nous en profitons aussi pour montrer que certaines balises HTML sont aussi utilisables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rsozq5Fa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jya0f406h9zt3rk5gdgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rsozq5Fa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jya0f406h9zt3rk5gdgq.png" alt="Utiliser html dans le markdown (syntaxe étendu)" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ajoutons un blockquote, insérer avec le signe &lt;code&gt;&amp;gt;&lt;/code&gt; en début de ligne. C’est sera une remarque sur la gestion des utilisateurs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indiquez comment utiliser votre projet
&lt;/h2&gt;

&lt;p&gt;Dans le cas d’une application que l’on peut télécharger et installer, ajoutez une section montrant la procédure complète. Pour ajouter un titre on utilisera le signe &lt;code&gt;#&lt;/code&gt; au début de la ligne. À noter qu’il existe 6 niveaux de titre, du plus important (avec un seul &lt;code&gt;#&lt;/code&gt; au début de la ligne) au moins important (avec six &lt;code&gt;######&lt;/code&gt;au début de ligne).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R9nRAXRf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tvdvwxek8byfvjufsm79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R9nRAXRf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tvdvwxek8byfvjufsm79.png" alt="Insérer un titre important montrant le début de la section Installation" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pour installer l’application sur son PC, on commence par télécharger son code source avec git dans un dossier. Il s’agit de plusieurs étape à suivre, nous optons pour l’utilisation d’une liste à puces (non ordonné). Pour ce faire, les éléments de la liste commencent par un signe étoile &lt;code&gt;*&lt;/code&gt;, et sont séparés par une ligne vide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vKNQjlHK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l35sn8mxe20i7ja97qby.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vKNQjlHK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l35sn8mxe20i7ja97qby.png" alt="Utiliser les listes" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Il est aussi possible d’utiliser une liste numérotée (ordonnée), il faudrait dans ce cas commencer chaque ligne par un numéro suivi d’un point (&lt;code&gt;1. Bonjour&lt;/code&gt;, &lt;code&gt;2. Bonsoir&lt;/code&gt;, &lt;code&gt;3.&lt;/code&gt;, ...).&lt;/p&gt;

&lt;p&gt;Sur l’image précédente, remarquez l’insertion de bout de code (coloré). On les insère en utilisant trois backticks (&lt;code&gt;` ` ` const nom = "Jean" ` ` `&lt;/code&gt;). Ils délimitent le code, c’est à dire qu’il en faut trois au début et trois autres à la fin du code. Au niveau des backticks ouvrant, il est conseillé de mettre le nom du langage (javascript, html, ruby, java, perl, ...) utilisé, ici nous avons indiqué le bash (pour le shell).&lt;/p&gt;

&lt;p&gt;Indiquons ensuite comment configurer notre application enfin de terminer son installation, avant de l’executer. Pour cela il faudra écrire la configuration dans le fichier &lt;code&gt;.env&lt;/code&gt;, se trouvant à la racine des répertoires &lt;code&gt;backend&lt;/code&gt; et &lt;code&gt;frontend&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Nous souhaitons que le nom du fichier soit en &lt;strong&gt;gras&lt;/strong&gt;. En markdown, on entoure le texte voulu avec des astérisques doubles (&lt;code&gt;**text en gras**&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Attention👌, si vous mettez un seul astérisque, le texte ne sera plus en gras, mais plutôt en italique (&lt;em&gt;&lt;code&gt;*texte en italique*&lt;/code&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ygi_vv_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/heku09dfm3cczauudf7r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ygi_vv_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/heku09dfm3cczauudf7r.png" alt="Configurer l’application avec le fichier .env" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Indiquez comment lancer votre application🤖
&lt;/h2&gt;

&lt;p&gt;C’est certainement l’étape la plus importante. Il ne sert à rien d’avoir une application qui ne fonctionne pas. L’utilisateur qui voudra exécuter votre application doit savoir comment s’y prendre ! Malgré que les standards nous pousserons à faire un &lt;code&gt;npm start&lt;/code&gt; à la racine du projet😉.&lt;/p&gt;

&lt;p&gt;Ajoutons alors une section Exécution dans notre fichier. Pour notre cas il s’agit d’une application FullStack (Backend &amp;amp; Frontend), il faut dont 2 étapes pour lancer le projet. Nous utilisons encore une liste ici.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EykHb2-V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hv16pkw0pls5dkklhrs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EykHb2-V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hv16pkw0pls5dkklhrs.png" alt="Exécuter le clone de chatbux" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ajouter des sections facultatives
&lt;/h2&gt;

&lt;p&gt;Un readme n’est pas sensé avoir uniquement ces 2 sections, vous pouvez en mettre au tant que vous le souhaitiez, mais n’oubliez pas, seulement les plus importants et nécessaires✨ !&lt;/p&gt;

&lt;p&gt;Voici quelques exemples des sections utiles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contributions&lt;/li&gt;
&lt;li&gt;Ressources&lt;/li&gt;
&lt;li&gt;Licence&lt;/li&gt;
&lt;li&gt;Get in contact&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ajoutons pour notre exemple, une section Ressources. Elle contiendra des liens vers les documentations utiles à consulter pour en connaître plus sur les technologies utilisées.&lt;/p&gt;

&lt;p&gt;Pour insérer un lien, on combine les crochets suivis des parenthèses. Les crochets contiendrons le texte à afficher et les parenthèses contiendrons les liens (&lt;code&gt;[Cliquez ici](http://google.com)&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vqj916fn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tujwfrouvnpozd6brvz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vqj916fn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tujwfrouvnpozd6brvz7.png" alt="Ajout de la section Ressources" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;je suis content de partager avec vous, une autre connaissance que j’estime importante dans la communauté de développeurs. Tomber sur un code ou un projet impossible à comprendre n’est jamais une bonne expérience.&lt;/p&gt;

&lt;p&gt;Ajoutez toujours un petit fichier readme dans votre répertoire peut aider à comprendre tout un projet en quelques minutes 👌.&lt;/p&gt;

&lt;p&gt;Vous retrouvez le rendu final de l’exercice sur &lt;a href="//github.com/lexnotor"&gt;github.com/lexnotor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Excellente suite dans votre travail.&lt;/p&gt;

</description>
      <category>github</category>
      <category>markdown</category>
      <category>readme</category>
    </item>
  </channel>
</rss>
