<?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: Massy Haddad</title>
    <description>The latest articles on DEV Community by Massy Haddad (@massyhaddad).</description>
    <link>https://dev.to/massyhaddad</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%2F569407%2Fe28c8dfe-2936-4c03-a9d0-a56f5f82e211.jpg</url>
      <title>DEV Community: Massy Haddad</title>
      <link>https://dev.to/massyhaddad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/massyhaddad"/>
    <language>en</language>
    <item>
      <title>Intégration continue avec GitHub</title>
      <dc:creator>Massy Haddad</dc:creator>
      <pubDate>Thu, 11 Mar 2021 22:24:13 +0000</pubDate>
      <link>https://dev.to/massyhaddad/integration-continue-avec-github-5c1c</link>
      <guid>https://dev.to/massyhaddad/integration-continue-avec-github-5c1c</guid>
      <description>&lt;h1&gt;
  
  
  Preuve de concept
&lt;/h1&gt;

&lt;p&gt;Lien vers &lt;a href="https://github.com/Massy-Haddad/mhaddad-integration-continue-vue"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Je suis sur que mon intégration continue est bien configurée car lorsque je vais dans l'onglet &lt;a href="https://github.com/Massy-Haddad/mhaddad-integration-continue-vue/actions"&gt;Actions&lt;/a&gt; de mon projet,&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fmyw8I6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djfx15v5x6k2lhqe7oz5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fmyw8I6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djfx15v5x6k2lhqe7oz5.PNG" alt="Alt Text" width="880" height="400"&gt;&lt;/a&gt; je peux constater que &lt;code&gt;Merge pull request #1 from Massy-Haddad/Massy-Haddad-patch-1&lt;/code&gt; a été un franc succès.&lt;/p&gt;

&lt;p&gt;De plus, en cliquant sur l'opération &lt;a href="https://github.com/Massy-Haddad/mhaddad-integration-continue-vue/runs/2089890703?check_suite_focus=true"&gt;Lint code base&lt;/a&gt;, je peux aussi constater que les opération on fonctionnés, à savoir, l'installation des dépendances &lt;code&gt;npm install&lt;/code&gt;, le build du projet Vue &lt;code&gt;npm run build&lt;/code&gt;  ainsi que l'exécution des test &lt;code&gt;npm test&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1J4MmIvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysl1n4fcj2in7fygb2y0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1J4MmIvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysl1n4fcj2in7fygb2y0.PNG" alt="Alt Text" width="880" height="174"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Documentation utilisée
&lt;/h1&gt;

&lt;p&gt;Tout d'abord, j'ai écouté la &lt;a href="https://youtu.be/cP0I9w2coGU"&gt;vidéo&lt;/a&gt; comme introduction dans les action de GitHub, elle m'a permis de comprendre la structure d'un &lt;code&gt;workflow&lt;/code&gt; et comment tout cela fonctionnait.&lt;/p&gt;

&lt;p&gt;Ensuite j'ai poursuivi la documentation avec le &lt;a href="https://docs.github.com/en/actions/quickstart"&gt;Guide de démarrage&lt;/a&gt; avec lequel j'ai appris à créer mon premier &lt;code&gt;workflow&lt;/code&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Comparaison avec l'intégration continue sur GitLab
&lt;/h1&gt;

&lt;p&gt;Tout d'abord, je pense les deux environnements, à savoir GitHub Actions et GitLab Pipelines, sont très similaire.&lt;/p&gt;

&lt;p&gt;Quand à l'organisation, je crois que GitHub est légèrement plus clair et organisé, je m'explique :&lt;/p&gt;

&lt;p&gt;Dans GitHub, les &lt;code&gt;workflows&lt;/code&gt; permettent de ne pas se confondre entre toutes les tâches (jobs) et de séparé clairement celles-ci :&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fmyw8I6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djfx15v5x6k2lhqe7oz5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fmyw8I6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djfx15v5x6k2lhqe7oz5.PNG" alt="Alt Text" width="880" height="400"&gt;&lt;/a&gt; Puis, en entrant dans un &lt;code&gt;workflow&lt;/code&gt;, nous pouvons voir toutes les tâches exécutées.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1J4MmIvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysl1n4fcj2in7fygb2y0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1J4MmIvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysl1n4fcj2in7fygb2y0.PNG" alt="Alt Text" width="880" height="174"&gt;&lt;/a&gt; La séparation des fichier &lt;code&gt;yaml&lt;/code&gt; est donc possible grâce au concept de &lt;code&gt;workflow&lt;/code&gt; ce qui permet aussi une meilleure organisation et une séparation des tâches.&lt;/p&gt;

&lt;p&gt;Tandis que dans GitLab toutes les tâches (jobs) sont réunies dans la même page et ce, sans séparation.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4IA99pqf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1sqzpg88la3exxwujtxo.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4IA99pqf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1sqzpg88la3exxwujtxo.PNG" alt="Alt Text" width="880" height="324"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6EO84HiK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5euzz9pdnczt9paiw6r7.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6EO84HiK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5euzz9pdnczt9paiw6r7.PNG" alt="Alt Text" width="880" height="623"&gt;&lt;/a&gt; Il manquerait, selon moi, un &lt;code&gt;workflow&lt;/code&gt; comme dans GitHub afin d'observer plus clairement les tâches. Il faut aussi noter que le fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; grossira de plus en plus puisqu'il n'est justement pas possible de créer d'autres &lt;code&gt;workflow&lt;/code&gt; si je puis dire.&lt;/p&gt;

&lt;p&gt;Pour conclure, ces deux système fonctionnent aussi bien l'un que l'autre, sauf que GitHub est, pour ma part, une meilleure option et ce, grâce à sa simplicité et son organisation.&lt;/p&gt;




</description>
      <category>github</category>
      <category>vue</category>
    </item>
    <item>
      <title>L'infonuagique (Azure &amp; GCP)</title>
      <dc:creator>Massy Haddad</dc:creator>
      <pubDate>Sat, 27 Feb 2021 22:58:17 +0000</pubDate>
      <link>https://dev.to/massyhaddad/tp-infonuagique-21i8</link>
      <guid>https://dev.to/massyhaddad/tp-infonuagique-21i8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Team possède une limite de 10 fichiers,&lt;br&gt;
j'ai donc mis tous mes fichiers dans ce post.&lt;/p&gt;

&lt;p&gt;Faites moi savoir si vous avez besoins que je vous les envois!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Laboratoires sur Azure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2 (Application Web)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IW9l7UY7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x0b4m0ktdt7jr4kicadu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IW9l7UY7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x0b4m0ktdt7jr4kicadu.PNG" alt="Alt Text" width="880" height="305"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eRGQ3mSk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrakudzzhe5zorun54vf.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eRGQ3mSk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrakudzzhe5zorun54vf.PNG" alt="Alt Text" width="880" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3 (Azure Container Instance)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ILwBG1XN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fs87b3yn2nxm7ctcb6di.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ILwBG1XN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fs87b3yn2nxm7ctcb6di.PNG" alt="Alt Text" width="880" height="226"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FAniEX4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7f7imb04uxjc3b0jz5e.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FAniEX4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7f7imb04uxjc3b0jz5e.PNG" alt="Alt Text" width="880" height="286"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Déploiement d'application avec Azure Kubernetes Service (AKS)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9dkCPiUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/76it6unwr7w4rlppvfqr.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9dkCPiUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/76it6unwr7w4rlppvfqr.PNG" alt="Alt Text" width="686" height="197"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tcPPo6dn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tq5gsoc50uvhgzkx0nzh.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tcPPo6dn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tq5gsoc50uvhgzkx0nzh.PNG" alt="Alt Text" width="880" height="881"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7-qso0jq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jdu94igfn0mstdjuobu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7-qso0jq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jdu94igfn0mstdjuobu.PNG" alt="Alt Text" width="880" height="85"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jHYxcc1u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ezbat5eaj98k2radiojm.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jHYxcc1u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ezbat5eaj98k2radiojm.PNG" alt="Alt Text" width="869" height="502"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1FHVVyH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mtgnw3bj508jymojx7p.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1FHVVyH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mtgnw3bj508jymojx7p.PNG" alt="Alt Text" width="552" height="154"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kj4EqRdd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lil4vjiqbfjz5lx9lur9.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kj4EqRdd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lil4vjiqbfjz5lx9lur9.PNG" alt="Alt Text" width="872" height="762"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DZ4NSFYa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2h9zl9bm5nxjmmzu9s6.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DZ4NSFYa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2h9zl9bm5nxjmmzu9s6.PNG" alt="Alt Text" width="880" height="121"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J2XAls1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pmcl0kx0hfeusejwemnu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J2XAls1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pmcl0kx0hfeusejwemnu.PNG" alt="Alt Text" width="880" height="72"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TJjXG1eG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1h06e94i3bn0xqbn36gy.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TJjXG1eG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1h06e94i3bn0xqbn36gy.PNG" alt="Alt Text" width="880" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;J'ai aussi remis les captures d'écran sur &lt;strong&gt;Teams&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Google Cloud Platform (GCP)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Azure&lt;/th&gt;
&lt;th&gt;Google Cloud Platform&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Azure Virtual Machine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Compute Engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Azure Blob Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cloud Storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Azure Container Registry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Container registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Azure Kubernetes Service&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Google Kubernetes Engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Azure Compute&lt;/td&gt;
&lt;td&gt;Compute Engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Azure DDoS Protection&lt;/td&gt;
&lt;td&gt;Cloud Armor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Azure SQL&lt;/td&gt;
&lt;td&gt;SQL Server sur Google Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Key Vault&lt;/td&gt;
&lt;td&gt;Secret Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Speech to Text&lt;/td&gt;
&lt;td&gt;Speech-to-Text (AI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Azure DNS&lt;/td&gt;
&lt;td&gt;Cloud DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  Kubernetes sur &lt;strong&gt;GCP&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;J'ai choisi de faire le tutoriel &lt;a href="https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app?hl=fr"&gt;Google Kubernetes Engine (GKE)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Celui-ci explique comment empaqueter une application Web dans une image de conteneur Docker et exécuter cette image sur un cluster Google Kubernetes Engine (GKE)&lt;/p&gt;

&lt;h4&gt;
  
  
  Créer l'image du conteneur
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U2JauDWa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uzhryw7zzvvw7whome5j.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U2JauDWa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uzhryw7zzvvw7whome5j.PNG" alt="Alt Text" width="880" height="153"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UTZom2sd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8pm8qgpzdz0b5gbpanw.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UTZom2sd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8pm8qgpzdz0b5gbpanw.PNG" alt="Alt Text" width="880" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Exécuter le conteneur localement (facultatif)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nSoVRVIF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bd2w04c8vuytajopz2cz.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nSoVRVIF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bd2w04c8vuytajopz2cz.PNG" alt="Alt Text" width="880" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Transférer l'image Docker dans Container Registry
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IEvK04OL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jg7akz3eopdqfq7w9oe2.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IEvK04OL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jg7akz3eopdqfq7w9oe2.PNG" alt="Alt Text" width="880" height="67"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Créer un cluster GKE
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BCY8HMtl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gdid967a7wx92dydj53y.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BCY8HMtl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gdid967a7wx92dydj53y.PNG" alt="Alt Text" width="880" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Déployer l'exemple d'application sur GKE
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FXOTUsWy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fl0j4wb2mmaki5ahoq3.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FXOTUsWy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fl0j4wb2mmaki5ahoq3.PNG" alt="Alt Text" width="880" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Exposer l'exemple d'application sur Internet
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sRFUcnW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v64fcjxrj1er028j1c3o.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sRFUcnW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v64fcjxrj1er028j1c3o.PNG" alt="Alt Text" width="880" height="80"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Avis sur le comparatif technologique
&lt;/h3&gt;

&lt;h5&gt;
  
  
  Documentation, technologies, interfaces
&lt;/h5&gt;

&lt;p&gt;Je trouve que les services offerts pour les deux plateformes sont tres similaires, cet aspect est facilement remarquable par leurs noms (Azure Kubernetes Service | Google Kubernetes Engine).&lt;/p&gt;

&lt;p&gt;Par contre, l'apprentissage diffère, GCP est très accès sur la rapidité et ne s'attarde pas beaucoup sur l'explication des technologies mais plutôt sur la manière dont il faut les utilisés. En effet les tutoriaux sont très simples et l'interface est très moderne et appui cet apprentissage minimaliste. &lt;/p&gt;

&lt;p&gt;En parlant d'interface utilisateur, je pense que celui de la plateforme GCP est bien plus intuitif facilitant ainsi la manipulation à travers la console ou encore dans le tableau de bord (gestion du projet).&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SOPGi7iO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t4up5uy35pbsey2r6zia.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SOPGi7iO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t4up5uy35pbsey2r6zia.PNG" alt="Alt Text" width="880" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Revenons à l'apprentissage, Azure nous propose des explications complètes et détaillés ainsi que des exercices de qualité. En complétant les exercices et formulaires, sur la plateforme Azure, j'ai bien plus appris et assimiler l'information. Même si l'apprentissage est plus long que celui de GCP, il est certainement plus complet.&lt;/p&gt;

&lt;p&gt;Pour ce qui est de l'interface utilisateur, Azure n'est malheureusement pas aussi intuitif. Mais il fait tout de même "la job", comme on dit!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AOhgWn52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g0pcu4rannwkby0v8ske.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AOhgWn52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g0pcu4rannwkby0v8ske.PNG" alt="Alt Text" width="880" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pour conclure, en suivant les différents tutoriaux des deux plateformes je n'ai pas ressenti une réelle différence au niveau des technologies. Par exemple, j'ai déployé une application avec &lt;strong&gt;Azure Kubernetes Service&lt;/strong&gt; ainsi qu'avec &lt;strong&gt;Google Kubernetes Engine&lt;/strong&gt; et je les ai trouvé très semblables. Travailler avec n'importe laquelle de ces deux plateformes ne me dérange pas réellement, du moins, pour mon utilisation actuelle. Par contre, pour l'apprentissage j'ai largement préféré la documentation d'Azure.&lt;/p&gt;

&lt;p&gt;Azure serait donc la plateforme que je recommanderai.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Ctrl+C&lt;/code&gt; et &lt;code&gt;Ctrl+V&lt;/code&gt; est fonctionnel sur le terminal de GCP et non sur celui d'Azure, et un point pour Google! 😂&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>googlecloud</category>
      <category>azure</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Docker et Kubernetes</title>
      <dc:creator>Massy Haddad</dc:creator>
      <pubDate>Sun, 21 Feb 2021 23:44:37 +0000</pubDate>
      <link>https://dev.to/massyhaddad/docker-et-kubernetes-534c</link>
      <guid>https://dev.to/massyhaddad/docker-et-kubernetes-534c</guid>
      <description>&lt;h1&gt;
  
  
  &lt;a href="https://devopswithdocker.com/"&gt;Devops with docker&lt;/a&gt;
&lt;/h1&gt;

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

&lt;h2&gt;
  
  
  Partie 1 (exercice 1.13)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vLgbEagl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yn1nhrter31f1jc0p8lf.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vLgbEagl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yn1nhrter31f1jc0p8lf.PNG" alt="Alt Text" width="880" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code :
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; openjdk:8&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;apt-get  update  &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;  apt-get  &lt;span class="nb"&gt;install&lt;/span&gt;  &lt;span class="nt"&gt;-y&lt;/span&gt;  git
&lt;span class="k"&gt;RUN &lt;/span&gt;git clone https://github.com/docker-hy/spring-example-project.git

&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /spring-example-project&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;./mvnw package

&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["java" ,"-jar", "./target/docker-example-1.1.3.jar"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Partie 2 (exercice 2.7)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VEGUaiq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmxiqmo4f60s2drcpw2q.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VEGUaiq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmxiqmo4f60s2drcpw2q.PNG" alt="Alt Text" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code :
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3'&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;ml-kurkkumopo-training&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deeq/ml-kurkkumopo-training&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;model:/src/model&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;imgs:/src/imgs&lt;/span&gt;

  &lt;span class="na"&gt;ml-kurkkumopo-frontend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;3000:3000&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deeq/ml-kurkkumopo-frontend&lt;/span&gt;
  &lt;span class="na"&gt;ml-kurkkumopo-backend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;5000:5000&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;xbexbex/ml-kurkkumopo-backend&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;model:/src/model&lt;/span&gt;
&lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;imgs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Kubernetes
&lt;/h1&gt;

&lt;h2&gt;
  
  
  C'est quoi?
&lt;/h2&gt;

&lt;p&gt;Tout d'abord, Kubernetes, ou encore k8s, est un plateforme libre de droits qui permet d'automatiser l'exploitation de &lt;code&gt;container&lt;/code&gt; Linux. &lt;/p&gt;

&lt;p&gt;Cet outil aide notamment à supprimer certains processus fait habituellement de façon manuelle, tel que la mise à l'échelle des applications dans des &lt;code&gt;container&lt;/code&gt; ou encore la gestion de version (s'assurer que l'application est déployé de la même façon que durant nos test) et j'en passe.&lt;/p&gt;

&lt;p&gt;Kubernetes offre des outils d'orchestration (services de mise en réseau, de stockage, de sécurité, de télémétrie) qui nous aiderons à déployer des applications qui s'étendent sur plusieurs &lt;code&gt;container&lt;/code&gt; et à gérer la sécurité celles-ci plus efficacement. Ces applications conteneurisées pourront, grâce à Kubernetes, être déployée à grande échelle de façon automatisée.&lt;/p&gt;

&lt;p&gt;Voici un bref résumé de ce que l'on peut faire avec k8s (&lt;a href="https://www.redhat.com/fr/topics/containers/what-is-kubernetes"&gt;source&lt;/a&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;« orchestrer des conteneurs sur plusieurs hôtes&lt;/li&gt;
&lt;li&gt;optimiser l'utilisation de votre matériel afin de maximiser les ressources requises pour l'exécution de vos applications d'entreprise&lt;/li&gt;
&lt;li&gt;contrôler et automatiser les déploiements et mises à jour d'applications&lt;/li&gt;
&lt;li&gt;monter et ajouter des systèmes de stockage pour exécuter des applications avec état&lt;/li&gt;
&lt;li&gt;mettre à l'échelle des applications conteneurisées et leurs ressources à la volée&lt;/li&gt;
&lt;li&gt;gérer des services de façon déclarative et garantir ainsi que les applications déployées s'exécutent toujours de la manière dont vous les avez déployées&lt;/li&gt;
&lt;li&gt;vérifier l'intégrité de vos applications et les réparer automatiquement grâce au placement, au démarrage, à la réplication et à la mise à l'échelle automatiques. »&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Lexique
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Master&lt;/strong&gt; : c'est un server contrôlant les nœuds Kubernetes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nœuds&lt;/strong&gt; : ce sont des machines qui exécutent des tâches qui leurs ont été attribuées (un nœud peut être une machine virtuelle ou une machine physique).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cluster&lt;/strong&gt; : c'est un ensemble de machines (nœuds) qui nous permettent d'exécuter des applications conteneurisée (il contient au minimum un nœud de calcul et un nœud de gestion).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pod&lt;/strong&gt; : c'est un ou plusieurs &lt;code&gt;container&lt;/code&gt; qui sont déployés sur un seul nœud (machine) partageant ainsi la même adresse IP, le même IPC, le même nom d'hôte ainsi que d'autres ressources.&lt;br&gt;
Il permet de déplacer les &lt;code&gt;container&lt;/code&gt; facilement au sein d'un cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;vContrôleur de réplication&lt;/strong&gt; : il s'occupe de vérifier le nombre de copies identiques d'un pod qui doivent s'exécuter dans le cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service&lt;/strong&gt; : il sert à dissocier les définitions de tâche des pods, c'est-à-dire qu'il transfère automatiquement les requêtes de service vers le pod adéquat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubelet&lt;/strong&gt; : c'est un service qui s'exécute sur des nœuds et qui lit les &lt;code&gt;manifest&lt;/code&gt; (genre de log) afin de s'assurer que les &lt;code&gt;container&lt;/code&gt; ont démarrés et sont fonctionnels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;vkubectl&lt;/strong&gt; : c'est un outil de configuration en ligne de commande de Kubernetes (&lt;code&gt;kubectl&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutoriel
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/"&gt;Tutoriel interactif&lt;/a&gt; (officiel) de Kubernetes couvrant de la création d'un container à la mise à jour d'une application.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Mn6Jc0AOUTE&amp;amp;ab_channel=edureka%21"&gt;Tutoriel sur le fonctionnement de Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=z8U2x1TCPis&amp;amp;ab_channel=Samjhana"&gt;Tutoriel&lt;/a&gt; sur le déploiement d'un &lt;code&gt;container&lt;/code&gt; dans lequel se trouve une page &lt;code&gt;index.php&lt;/code&gt; (classique &lt;code&gt;Hello world&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pour ma démo, j'ai choisi le troisième :&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KqgS105P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtbb7homtfky6g9j13mj.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KqgS105P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtbb7homtfky6g9j13mj.PNG" alt="indexphp" width="598" height="305"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iziyxmVb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inuaaxrj3tmt3rf5rhsf.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iziyxmVb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inuaaxrj3tmt3rf5rhsf.PNG" alt="Capture" width="880" height="92"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WRxs8rm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvok4ofd91h0morc0m3c.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WRxs8rm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvok4ofd91h0morc0m3c.PNG" alt="Capture 2" width="877" height="67"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eI7AGH1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/saoh5evu6ajeijxfzqy9.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eI7AGH1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/saoh5evu6ajeijxfzqy9.PNG" alt="expose service" width="880" height="66"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vB42JQUb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ifoxvg6jcpfd0cq1umvh.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vB42JQUb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ifoxvg6jcpfd0cq1umvh.PNG" alt="pods and deploy" width="880" height="161"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B18XxJHo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kr7kbvy6pxvhs8957dnd.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B18XxJHo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kr7kbvy6pxvhs8957dnd.PNG" alt="svc" width="880" height="97"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ynqxWTvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k648ylls0jw5gpeh2nsa.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ynqxWTvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k648ylls0jw5gpeh2nsa.PNG" alt="deploy result" width="880" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Outils de recherche</title>
      <dc:creator>Massy Haddad</dc:creator>
      <pubDate>Sun, 31 Jan 2021 18:31:05 +0000</pubDate>
      <link>https://dev.to/massyhaddad/outils-de-recherche-21cp</link>
      <guid>https://dev.to/massyhaddad/outils-de-recherche-21cp</guid>
      <description>&lt;h2&gt;
  
  
  Mon parcours personnel
&lt;/h2&gt;

&lt;p&gt;Au secondaire, lorsqu'on m'a proposé un &lt;a href="https://www.lepisc.com/"&gt;programme intégré secondaire-collégiale&lt;/a&gt; en informatique, j'ai tout de suite accepté et changé d'école puisque je n'avait rien à perdre et que ce domaine m'avait toujours intrigué. Lors, de mon DEP en soutien informatique, j'ai préféré la programmation plutôt que la réseautique alors j'ai intégré le collège de Rosemont dans ce domaine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mes intérêts
&lt;/h2&gt;

&lt;p&gt;Durant mon parcours, je me suis intéressé aux technologies du Web. Plus particulièrement par le Framework Javascript &lt;strong&gt;Angular&lt;/strong&gt;, qui m'a très plu. J'ai beaucoup aimé développer une application Web sur ce Framework qui consume un service REST en &lt;strong&gt;.NET&lt;/strong&gt; que je crée. J'aimerai maitrisé ce Framework afin de pouvoir crée ce que je souhaite et aboutir mes projets. Ensuite, me lancer vers d'autres technologies qui m'intéressent aussi tel que &lt;strong&gt;React Native&lt;/strong&gt; ou encore le développement mobile sur iOS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Projet
&lt;/h2&gt;

&lt;p&gt;Un ami et moi avions décidé d'utiliser ces deux technologies afin de développer un &lt;a href="https://git.dti.crosemont.quebec/mhaddad/foni-angularcli/-/blob/master/README.md"&gt;réseau social&lt;/a&gt; (&lt;a href="https://dateam-foni.web.app/accueil"&gt;v1&lt;/a&gt;). Je me suis dit, pourquoi ne pas réunir la programmation et une de nos passions de plus, c'est très enrichissant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vision de l'avenir
&lt;/h2&gt;

&lt;p&gt;Dans un futur proche, j'aimerais intégré une université pour continuer mon parcours en programmation. Je voudrais devenir &lt;em&gt;développeur freelance&lt;/em&gt; et me lancer dans des projets!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xZT4dQs4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://process.filestackapi.com/cache%3Dexpiry:max/resize%3Dwidth:1200/9fb0ZwN8QKa15aKhe5Cw" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xZT4dQs4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://process.filestackapi.com/cache%3Dexpiry:max/resize%3Dwidth:1200/9fb0ZwN8QKa15aKhe5Cw" alt="Alt text" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Liens utiles
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nom&lt;/th&gt;
&lt;th&gt;Résumé&lt;/th&gt;
&lt;th&gt;Technologies&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.zdnet.fr/"&gt;zdnet&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Ce site possède une page principale ou l'on retrouve les nouveaux articles ainsi que ceux à la une. Nous pouvons aussi chercher par catégories grâce à la barre de navigation.&lt;/td&gt;
&lt;td&gt;1. &lt;a href="https://www.zdnet.fr/actualites/rust-les-developpeurs-utilisent-ce-langage-de-programmation-pour-des-projets-importants-39915207.htm"&gt;&lt;strong&gt;Rust&lt;/strong&gt;, un nouveau langage créé par Mozilla, qui fait entendre parler de lui. Il devient de plus en plus populaire et il est maintenant en place avec C++ et Java.&lt;/a&gt; 2. &lt;a href="https://www.zdnet.fr/actualites/aws-dispense-des-formations-pour-les-developpeurs-sur-twitch-39917121.htm"&gt;Le 28 janvier, Amazon diffuse, en direct, le premier épisode 1/8 sur la façon de &lt;strong&gt;construire une application sans serveur dans le cloud AWS&lt;/strong&gt;.&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://developer-tech.com/news/"&gt;Developer&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Ce site est montre les dernières nouvelles sur la programmation. Il offre aussi une option afin de consulter ces nouvelles selon une catégorie (Android, API, C#, etc.), aussi nous pouvons voir les nouveaux événements de ce milieu, ce qui est très intéressant.&lt;/td&gt;
&lt;td&gt;1. &lt;a href="https://developer-tech.com/news/2020/dec/15/apple-invites-developers-generating-app-clip-codes/"&gt;Apple propose &lt;strong&gt;App Clips&lt;/strong&gt; qui permet aux développeurs et aux compagnies de montrer une partie de leur application pour effectuer une tache rapidement (commander au restaurant, louer un vélo, etc.).&lt;/a&gt; 2. &lt;a href="https://developer-tech.com/news/2020/dec/10/progressive-web-apps-chrome-os-support-in-app-purchases/"&gt;Les &lt;strong&gt;PWA&lt;/strong&gt; (progressive web app) sur Chrome OS peuvent effectuer des achats.&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Subreddits
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Subreddit&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Article&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Computer Science: Theory and Application&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Science de l'informatique (discussion, nouvelles, théories…)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.reddit.com/r/compsci/comments/3d65ys/list_of_best_resources_to_stay_updated_as_a/"&gt;Ressources pour rester à jour en tant que programmeur. Pratique pour les nouveaux programmeurs qui ne savent pas où chercher de l'information.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Technology&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nouvelles et discussion à propos des nouvelles technologies&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.reddit.com/r/technology/comments/l9gis2/electric_cars_are_coming_and_fast_is_the_nations/"&gt;Les voitures électriques arrivent rapidement. General Motors va arrêter de vendre des véhicules à essence en 2035. J'espère que cela ce réalisera réellement et ce, avant qu'il ne soit trop tard.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;technews&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nouvelles technologiques intéressantes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.reddit.com/r/technews/comments/l9bllb/microsoft_patent_an_ai_to_revive_your_dead_loved/"&gt;Microsoft brevètent une intelligence artificielle qui nous permettra de parler avec une personne décédé. Je trouve ça très intéressant car elle se base sur les données personnelles du défunt.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tech News Today&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prévisions sur les technologies à venir&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.reddit.com/r/tech_news_today/comments/l7rkw5/synology_ds418j_review/"&gt;C'est une revue d'un nouveau modèle de NAS. Je trouve ça intéressant car je planifie d'en acheter un pour héberger mes petits projets de façon autonome.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Angular2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nouvelles, questions et discussions sur le Framework Javascript Angular&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.reddit.com/r/Angular2/comments/k7ghmk/what_is_the_current_state_of_angular_is_it_going/"&gt;Je suis ce subreddit car cette technologie me plait beaucoup (comme je l'ai dit dans ma présentation). Je me questionnait sur le fait d'apprendre Angular en premier et si c'était réellement la meilleure option et en regarder les commentaires. J'ai pu être rassurer sur la technologie.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Hacker News
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://news.ycombinator.com/item?id=22532098"&gt;Commentaire en question&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Je trouve que la personne qui à fait ce commentaire a tout à fait raison. Je pense aussi que la façon la plus efficiente d'apprendre un nouveau langage de programmation est de suivre ces étapes (choisir un langage, trouver des ressources d'apprentissage, trouver un projet, se donner une limite de temps puis, en faire un défis et recommencer le tout en augmentant la difficulté). Il n'y est pas aller par quatre chemins mais je pense bien que c'est très efficace, surtout lorsqu'il n'y a pas d'enseignant pour nous aider à mettre la main à la pâte. Je rajouterais que pour trouver un langage de programmation avec lequel débuter (si nous cherchons un bon taux de placement en entreprise) il faut consulter des statistiques afin de savoir lesquels sont les plus populaires et en lesquels sont en croissances.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;FIN&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>fr</category>
      <category>travail</category>
      <category>rosemont</category>
    </item>
  </channel>
</rss>
