Difference between revisions of "Technology Trends/Kubernetes"

From wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}
 
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}
[[fr:Tendances_Technologiques/Assistants_Numeriques]]
+
[[fr:Tendances_Technologiques/Chaîne_de_Blocs]]
  
<div class="mw-collapsible" data-expandtext="Afficher la Vue Détaillée" data-collapsetext="Cacher la Vue Détaillée">
+
<div class="mw-collapsible" data-expandtext="Show Detailed View" data-collapsetext="Hide Detailed View">
    <div class="sidetable">
+
  <div class="sidetable">
 
     <table class="wikitable">
 
     <table class="wikitable">
 
       <tr>
 
       <tr>
Line 11: Line 11:
 
               <th>[[Technology_Trends|Technology Trends]]</th>
 
               <th>[[Technology_Trends|Technology Trends]]</th>
 
               <th> / </th>
 
               <th> / </th>
               <th>[[Technology_Trends/Digital_Assistants|Digital Assistants]]</th>
+
               <th>Kubernetes</th>
 
             </tr>
 
             </tr>
 
           </table>
 
           </table>
Line 18: Line 18:
 
               <th>[[Tendances_Technologiques|Tendances Technologiques]]</th>
 
               <th>[[Tendances_Technologiques|Tendances Technologiques]]</th>
 
               <th> / </th>
 
               <th> / </th>
               <th>Assistants Numériques</th>
+
               <th>[[Tendances_Technologiques|Kubernetes]]</th>
 
             </tr>
 
             </tr>
 
           </table>
 
           </table>
 
         </th>
 
         </th>
 
       </tr>
 
       </tr>
       <tr><td colspan="2" class="logo">[[File:Technology_Trends_-_Digital_Assistants_logo.png|200px]]</td></tr>
+
       <tr><td colspan="2" class="logo">[[File:KubernetesIMG.png|200px]]</td></tr>
 
       <tr>
 
       <tr>
 
         <th>Status</th>
 
         <th>Status</th>
         <td>Publié</td>
+
         <td>Published</td>
 
       </tr>
 
       </tr>
 
       <tr>
 
       <tr>
         <th>Version originale</th>
+
         <th>Initial release</th>
         <td>04 février 2020</td>
+
         <td>May 5, 2019</td>
 
       </tr>
 
       </tr>
 
       <tr>
 
       <tr>
         <th>Mise à jour</th>
+
         <th>Latest version</th>
         <td>13 février 2020</td>
+
         <td>February 14, 2020</td>
 
       </tr>
 
       </tr>
 
       <tr>
 
       <tr>
         <th>Publication Officielle</th>
+
         <th>Official publication</th>
         <td>[[Media:FR_-_Tendences_Technologiques_-_Assistants_numeriques.pdf|Assistants Numériques.pdf]]</td>
+
         <td>[[Media:EN_-_Technology_Trends_-_Kubernetes.pdf|Kubernetes.pdf]]</td>
 
       </tr>
 
       </tr>
 
       <tr><td colspan="2" class="disclaimer"><table><tr>
 
       <tr><td colspan="2" class="disclaimer"><table><tr>
 
         <td>[[File:Traffic_cone.png|40px]]</td>
 
         <td>[[File:Traffic_cone.png|40px]]</td>
         <td class="disclaimerText">Cette page est sujet à des mises à jours. On encourage toutes rétroactions. Veuillez utiliser la page de discussion pour apporter des commentaires et des suggestions. Une fois que cette version soit approuvée et finalisée, elle va être traduite.</td>
+
         <td class="disclaimerText">This page is a work in progress. We welcome your feedback. Please use the discussion page for suggestions and comments. When the page is approved and finalized, we will send it for translation.</td>
 
       </tr></table></td></tr>
 
       </tr></table></td></tr>
 
     </table>
 
     </table>
 
   </div>
 
   </div>
  
   <p>Les <b>interfaces utilisateur conversationnelles (IUC)</b> visent à jeter une passerelle entre le langage naturel (écrit et parlé) et les appareils. Les interfaces utilisateur graphiques (IUG) traditionnelles permettent aux utilisateurs de naviguer sur un appareil électronique à l’aide de boutons, de repères visuels et de texte. Les IUC peuvent éliminer certaines des étapes potentiellement compliquées qu’un utilisateur doit franchir pour accomplir une tâche. Il peut s’agir d’obtenir de l’information, d’obtenir des indications, d’envoyer des courriels, de lire un fichier média, de commander de la nourriture, d’organiser un calendrier, etc.</p>
+
   <p><b>Kubernetes</b> also known as K8s, is a portable, extensible open-source platform for managing containerized workloads and services that facilitates both declarative configuration and automation. Kubernetes provides a container-centric management environment. It orchestrates computing, networking, and storage infrastructure on behalf of user workloads.</p>
  
 
   <div class="mw-collapsible-toggle btn" style="float: left; display: block;">
 
   <div class="mw-collapsible-toggle btn" style="float: left; display: block;">
     <div class="toggle mw-collapsible-toggle-collapsed" role="button" tabindex="0"><span class="mw-collapsible-text">Cacher la Vue Détaillée</span></div>
+
     <div class="toggle mw-collapsible-toggle-collapsed" role="button" tabindex="0"><span class="mw-collapsible-text">Hide Detailed View</span></div>
 
   </div><br><br>
 
   </div><br><br>
  
   <h2>Sommaire opérationnel</h2>
+
   <h2>Business Brief</h2>
 +
  <p>Application containers are increasingly being used in the infrastructure for cloud-native and microservice applications. Specifically, Docker is the engine most commonly used to create containers. Many application developers have noted the value of containers in dependency management as it packages the application and its dependencies, libraries, other binaries into a container to abstract away the differences in the OS distribution and underlying infrastructure. This solves many issues caused by differences in runtime environments when a software moves from one environment to another one.</p>
 +
  <p class="inline">Containers improve applications’ portability and scalability that enable applications to be released and updated in an easy and fast way without downtime. However, there still exits a demand  in the management of containers when the services provided need to be deployed across a cluster of host servers to achieve high-availability and disaster recovery. This is where container deployment in cluster and management  tools like Kubernetes provide their value. Developers can now begin to  deploy and orchestrate services  as a collection of containers across a cluster of servers. Container resource requirements can be explicitly declared that allows  developers to bundle application code with an environment configurations. </p><p class="expand inline mw-collapsible-content">Also by increasing container density, resources can be used more efficiently and thus it in turn improves hardware usage.<ref>Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: <i>[https://www.gartner.com/doc/3873073/using-kubernetes-orchestrate-containerbased-cloud] </i></ref> Containers provide applications with isolations, so that  a development team can be made responsible for specific containers.</p>
 +
  <p> Kubernetes also offers self-healing, automatized rollout and rollback features, which greatly improve operation high-availability and flexibility.  One of the biggest advantages of Kubernetes is the flexibility it provides. Many PaaS packaging dictate specific frameworks, are catered towards specific workloads, or impose limitations which language runtimes can be used.<ref>Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: <i>[https://www.gartner.com/doc/3873073/using-kubernetes-orchestrate-containerbased-cloud] </i></ref> These issues are all eliminated with Kubernetes. Therefore, if an organization’s application is capable of being run on a container, Kubernetes is a viable option for container orchestration.</p>
  
   <p>Dans le marché d’aujourd’hui, les interfaces utilisateur conversationnelles sont produites sous deux formes qui sont toutes deux constituées de technologies d’intelligence artificielle : les assistants vocaux et les agents conversationnels<ref>Browlee, J. (4 avril 2016). <i>[https://www.fastcompany.com/3058546/conversational-interfaces-explained Conversational Interfaces, Explained]</i>. Récupéré de fastcompany.com</ref>. Les assistants vocaux comme Amazon Alexa, Google Assistant, Cortana et Siri permettent une communication vocale et textuelle entre les utilisateurs et les appareils, tandis que les agents conversationnels sont basés uniquement sur le texte.</p>
+
  <h2>Technology Brief</h2>
 +
   <p>The Kubernetes cluster or deployment can be broken down into several components. The Kubernetes “master” is the machine in charge of managing other “node” machines. The “node is the machine in charge of actually running tasks fed to it via the user or the “master”.  The master and nodes can be either a physical or virtual machines. In each Kubernetes cluster, there is one master and multiple nodes machines. The main goal of Kubernetes is to achieve “Desired State Management”. The “master” is fed a specific configuration through its RESTful API which it exposes to the user,  and the “master” is then responsible for running this configuration across its set of “node”. The nodes can be thought of as  host of containers. They communicate with the “master” through the agent in each node --“Kubelet” process. To establish a specific configuration in Kubernetes, the “master is fed a deployment file with the “.yaml” extension. This file contains a variety of configuration information. Within this information are “Pods” and “replicas”. There is a concept of Pod in Kubernetes and it can be described as a logic collection of containers which are managed as a single application. Resources can be shared within a Pod, these resources include shared storage (Volumes), a unique cluster of IP addresses, and information about how to run each container. A Pod can be thought of as the basic unit of the Kubernetes object model, it represents the deployment of a single instance of an application in Kubernetes.<ref>Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: <i>[https://kubernetes.io/docs/tutorials/kubernetes-basics/] </i></ref> A Pod can encapsulate one or more application containers. Two models exist for how Pods are deployed within a cluster. The “one-Pod-per-container” means a single pod will be associated with a single container. There can also be multiple containers that run within a single Pod, where these containers may need to communicate with one another as they share resources. In either model, the Pod can be thought of as a wrapper around the application containers. Kubernetes manages the Pod instances rather than managing the containers directly. The Pods are run on the Node machines to perform tasks. Replicas are simply instances of the Pods. Within the “.yaml” deployment file, specifications are instructing the “master” machine how many instances/replicas of each Pod to run, which is handled by a replication controller.<ref>Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: <i>[https://kubernetes.io/docs/tutorials/kubernetes-basics/] </i></ref> When a node dies or a running Pod  experiences an unexpected termination, the replication controller will take note take care of this by creating  the appropriate number of Pods.<ref>Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: <i>[https://kubernetes.io/docs/tutorials/kubernetes-basics/] </i></ref></p>
 
    
 
    
   <p class="expand mw-collapsible-content">Les possibilités en matière d’utilisation fonctionnelle des assistants vocaux et des agents conversationnels pourraient être assez vastes. Comme la plupart des assistants vocaux et des agents conversationnels peuvent interagir avec différentes applications, cela permet d’améliorer considérablement la résolution des problèmes lorsque l’utilisateur fait face à un problème dans une application. Par exemple, un assistant virtuel peut être utilisé pour fournir une aide pour des problèmes courants, qui nécessiteraient normalement l’intervention d’un agent en direct, comme la réinitialisation du mot de passe d’un utilisateur ou l’obtention d’un code d’activation pour un processus de connexion<ref>Reddy, T. (17 octobre 2017). How chatbots can help reduce customer service costs by 30%. Récupéré de ibm.com: https://www.ibm.com/blogs/watson/2017/10/how-chatbots-reduce-customer-service-costs-by-30-percent/</ref>. Microsoft utilise également un assistant automatisé pour fournir aux utilisateurs des codes d’activation pour leurs produits<ref>Costa, A. D. (8 novembre 2018). <i>[https://www.groovypost.com/howto/activate-windows-10-license-microsoft-support/ HOW-TOActivate Your Windows 10 License via Microsoft Chat Support]</i>. Récupéré de groovypost.com</ref>.</p>
+
  <h2>Industry Usage</h2>
 +
   <p class="inline">Kubernetes is an open source system and many companies have begun to adopt it into their existing architecture as well as adapt it to their specific needs. It was originally developed by Google and was made an open source project in 2014. The Cloud Native Computing Foundation is a project of the Linux Foundation providing a community for different companies who are seeking to develop Kubernetes and other container orchestration projects. Several major cloud providers and platforms including Google Cloud Compute, HP Helion Cloud, RedHat Openshift, VMware Cloud, and Windows Azure all support the use of Kubernetes.<ref>CENGN. (2018). CENGN and CloudOps Collaborate to Train Industry on Docker and Kubernetes.<i>[Available at: https://www.cengn.ca/docker-kubernetes-training-jan18/ ]</i></ref> A survey, performed by iDatalabs in 2017, found 2,867 companies are currently using Kubernetes. These companies are generally located in the United States and are also most the computer software industry. Companies on the list hire between 50 and 200 employees, and accumulate 1M-100M in revenue per year. Some of the major companies on this list include GoDaddy inc, Pivotal Software inc, Globant SA, and Splunk inc</p><p class="expand inline mw-collapsible-content">. Kubernetes own approximately 8.6% of the market share within the virtualization management software category.<ref>Idatalabs.com. (2018). Kubernetes commands 8.62% market share in Virtualization Management Software<i>[https://idatalabs.com/tech/products/kubernetes] </i></ref></p>
 
    
 
    
   <p class="expand mw-collapsible-content">Certaines grandes entreprises technologiques développent des assistants vocaux ou des agents conversationnels utilisables avec les applications ou les appareils les plus courants. Bien que leur concept existe depuis des décennies, ce n’est que récemment que les assistants numériques (un autre nom pour les assistants vocaux) ont commencé à offrir un large éventail de capacités solides et fiables. Ils peuvent effectuer un grand nombre de tâches diverses pour aider les utilisateurs. Les assistants numériques récents, comme Google Assistant et Siri d’Apple, ont été créés pour être activés par la voix et pour donner une réponse ou exécuter un service en réaction au langage naturel de l’utilisateur. Ces types d’assistants sont activés par les utilisateurs finaux et exécutent des tâches selon les instructions de l’utilisateur. Ils diffèrent ainsi des assistants numériques, qui peuvent communiquer avec d’autres assistants numériques.</p>
+
  <h2>Canadian Government Use</h2>
 
+
   <p>There is a lack of documented Government of Canada (GC) initiatives and programs promoting the current and future use of Kubernetes technology. As a GC strategic IT item, Kubernetes is absent from both the GC’s Digital Operations Strategic Plan: 2018-2022 and the GC Strategic Plan for Information Management and Information Technology 2017 to 2021. This may be due to the fact that the GC is currently grappling with the implementation of Cloud Services, and the majority of resources and efforts are occupied with implementation challenges, as well as security concerns related to the protection of the information of Canadians.</p>
   <p>L’interface utilisateur conversationnelle continuera de progresser et jouera un rôle crucial dans tous les appareils d’Internet des Objets (IdO) à l’avenir. Les tâches qui étaient traditionnellement exécutées par des postes de secrétaires peuvent être effectuées par des assistants numériques qui peuvent communiquer en arrière-plan avec d’autres applications. Ces tâches comprennent la gestion des renseignements personnels, les rappels de rendez-vous, le stockage de coordonnées, l’envoi de messages et bien plus encore. Grâce à leur profonde intégration technologique, à leurs diverses capacités fonctionnelles et à leurs interfaces faciles à utiliser, les assistants numériques sont tout à fait capables de fournir un soutien utile au sein de n’importe quelle organisation en utilisant la compréhension du langage naturel (CLN)<ref>Wikipedia. (24 août 2019). Natural-language understanding. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural-language_understanding</ref> et le traitement du langage naturel (TLN)<ref>Wikipedia. (15 septembre 2019). Natural language processing. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural_language_processing</ref>pour permettre une communication avec les sites Web, les applications mobiles et les appareils externes qui est similaire aux communications entre humains.</p>
+
   <p class="expand mw-collapsible-content">However, the inception of containers into the market has shown that large-scale organizations, who are involved in cloud-native application development as well as networking, can benefit greatly from the use of containers.<ref>CENGN. (2018). CENGN and CloudOps Collaborate to Train Industry on Docker and Kubernetes<i>[Available at: https://www.cengn.ca/docker-kubernetes-training-jan18/]</i></ref> Although the infrastructure applications providing cloud services can be based solely on Virtual Machines (VMs), the maintenance costs associated with running different operating systems on individual VMs outweighs the benefit.<ref>Heron, P. (2018). Experimenting with containerised infrastructure for GOV.UK - Inside GOV.UK. [online] Insidegovuk.blog.gov.uk<i>[https://insidegovuk.blog.gov.uk/2017/09/15/experimenting-with-containerised-infrastructure-for-gov-uk/ ]</i></ref> Containers and Containerization is a replacement and/or complimentary architecture for VMs. As the GC moves toward cloud services and development of cloud-native applications, the use of containers and orchestrating them with Kubernetes can become an integral part the GC IT architecture. </p>
  
   <h2>Sommaire technique</h2>
+
   <h2>Implications for Government Agencies</h2>
  
   <p class="inline">L’interface utilisateur conversationnelle fonctionne en demandant à l’utilisateur de saisir un langage naturel, sous forme vocale ou écrite. L’entrée est ensuite traitée par des systèmes d’intelligence artificielle (IA) et une réponse est donnée. Plusieurs assistants vocaux, dont Siri d’Apple, Google Assistant, Bixby de Samsung<ref>Jansen, M. (13 mars 2019). <i>[https://www.digitaltrends.com/mobile/how-to-use-bixby/ How to use Samsung Bixby: Everything you need to know]</i>. Récupéré de digitaltrends.com</ref> et Alexa d’Amazon, utilisent une technologie infonuagique pour traiter la parole saisie par l’utilisateur. L’avantage de ceci est la possibilité de construire de grandes bases de données audio permettant à l’assistant vocal de traiter l’entrée plus rapidement et de prédire ce que l’individu va dire.</p><p class="inline expand mw-collapsible-content"> De cette manière, il permet une conversation plus fluide entre les humains et les appareils. Comme le traitement de la parole saisie n’est pas effectué sur l’appareil, cela peut créer des préoccupations relatives à la confidentialité entourant le fait que les interactions entre l’utilisateur et l’appareil sont stockées ailleurs.</p>
+
   <h3>Shared Services Canada (SSC)</h3>
  <p class="inline-spacer"></p>
 
  <p class="inline">Les assistants numériques, également appelés agents conversationnels ou assistants virtuels, fonctionnent de manière similaire et peuvent être divisés en deux grandes catégories : ils sont généralement basés sur des scripts (interaction de base avec l’utilisateur) ou structurés (assistants virtuels engagés). Ils peuvent également être intégrés à des outils de collaboration et à des applications de messagerie.</p><p class="inline expand mw-collapsible-content"> Les agents conversationnels basés sur des scripts ont tendance à davantage faire partie intégrante du programme, ce qui signifie qu’ils s’attendent à recevoir des questions et des interactions d’un ensemble de cas d’utilisation et qu’ils formulent leurs réponses en conséquence.</p>
 
  <p class="inline-spacer"></p>
 
  <p>On peut concevoir les agents basés sur des scripts<ref>Onlim. (11 mars 2019). How Do Chatbots Work? Récupéré de onlim.com: https://onlim.com/en/how-do-chatbots-work/</ref> comme des agents qui fournissent une conversation dirigée. Bien que la mise en œuvre de ces agents soit moins complexe, elle impose également des limites plus strictes au niveau du type de communications qui peuvent être offertes. Les agents conversationnels structurés s’appuient sur l’intelligence artificielle et plus particulièrement sur la compréhension du langage naturel (CLN) infonuagique pour générer des données exploitables par la machine à partir des données saisies par les utilisateurs. Contrairement à leurs homologues scénarisés, ces types d’agents conversationnels sont plus complexes et nécessitent plus d’efforts pour être correctement mis en œuvre, mais l’utilisateur final est capable d’être moins rigide dans la façon dont il structure ses questions et ses interactions.</p>
 
 
 
  <p>Les robots basés sur des scripts suivent des arbres de décision pour répondre à des questions prédéfinies. La raison pour laquelle les agents conversationnels avec les mêmes capacités finissent par avoir des expériences très différentes avec les clients est que la qualité des arbres de décision sous-jacents varie<ref>Steele, I. (22 février 2018). Journey Mapping for Chatbots: How to Create a Chatbot Decision Tree from Scratch. Récupéré de comm100.com: https://www.comm100.com/blog/journey-mapping-chatbot-decision-tree-from-scratch.html</ref>. Ces agents doivent poser suffisamment de questions et de façon suffisamment approfondie pour fournir au client la réponse la plus précise possible, mais s’abstenir de poser des questions inutiles ou de faire tourner un client en rond sans lui fournir une réponse. Les cartes de parcours des clients<ref>Atlassian. (20 septembre 2019). <i>[https://www.atlassian.com/team-playbook/plays/customer-journey-mapping Customer Journey Mapping]</i>. Récupéré de atlassian.com</ref> aideront à élaborer l’arbre décisionnel.</p>
 
 
 
  <p class="inline">Les assistants numériques sont un agent logiciel qui exécute divers services et tâches pour son utilisateur. Les assistants numériques, comme Bixby<ref>Agence France-Presse. (6 avril 2017). <i>[https://www.scmp.com/lifestyle/article/2085067/samsungs-new-personal-digital-assistant-bixby-faces-few-tough-challenges Samsung's new personal digital assistant Bixby faces a few tough challenges]</i>. Récupéré de scmp.com</ref> de Samsung, utilisent des commandes vocales pour contrôler les applications et traiter ces demandes. Ce développement récent des assistants virtuels permet aux utilisateurs finaux de maîtriser relativement facilement l’utilisation du logiciel. Les assistants numériques ont également des « skills » (compétences), qui sont des applications qui peuvent être acquises par le biais d’une boutique de compétences. Cela permet aux utilisateurs d’installer les commandes qui leur seraient les plus utiles.</p><p class="inline expand mw-collapsible-content"> Ces compétences comprennent, entre autres, des compétences de météo, de balados et d’entraînement. Certaines de ces compétences sont gratuites et d’autres coûtent de l’argent. Certaines sont construites par des fournisseurs, d’autres par la communauté, et il vous est possible de développer vos propres compétences.</p>
 
 
 
  <p class="expand mw-collapsible-content">Cependant, les questions doivent tout de même être clairement formatées pour que l’assistant puisse les comprendre. Le microphone intégré de l’appareil analyse la voix de l’utilisateur pour l’enregistrer à l’aide du traitement du langage naturel (TLP). Les demandes faites par les utilisateurs sont stockées dans des centres de données, ce qui facilite la prestation de services aux utilisateurs du logiciel. En se basant sur l’historique des demandes d’un utilisateur, les assistants numériques utilisent désormais les renseignements préexistants pour fournir des services aux utilisateurs avec une plus grande précision. Par exemple, « plusieurs fois par jour, Amazon utilise toutes les requêtes faites à Alexa qui ont été recueillies pour instruire son I.A. en matière de dialectes et de langage informel »<ref>Moynihan, T. (5 décembre 2016). Alexa and Google Home Record What You Say. But What Happens to That Data? Récupéré de wired.com: https://www.wired.com/2016/12/alexa-and-google-record-your-voice/</ref>.</p>
 
 
 
  <p>En général, les assistants numériques à commande vocale fonctionnent en permanence à un faible taux de traitement jusqu’à ce qu’un mot clé soit entendu, qui informe l’assistant qu’une demande est sur le point d’être faite. Par exemple, Google Home écoute son environnement jusqu’à ce que les mots « Ok Google » soient prononcés à haute voix. Les assistants numériques traduisent ensuite les commandes de l’utilisateur en texte, qui est analysé par de multiples algorithmes pour exécuter une tâche. Ces algorithmes divisent les demandes en parties clés, ce qui facilite l’envoi de courriels ou de messages ou le stockage de dossiers.</p>
 
 
 
  <p class="expand mw-collapsible-content"></p>Trois principaux types d’algorithmes sont utilisés pour analyser votre demande : le traitement du langage naturel (TLN)<ref>Wikipedia. (15 septembre 2019). Natural language processing. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural_language_processing</ref>,la compréhension du langage naturel (CLN)<ref>Wikipedia. (24 août 2019). Natural-language understanding. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural-language_understanding</ref>, et la génération de langage naturel (GLN)<ref>Wikipedia. (6 septembre 2019). Natural-language generation. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural-language_generation</ref>. Le TLN gère la façon d’écrire des programmes informatiques pour recueillir et traiter de grandes quantités de données liées au langage naturel. Cela peut être une tâche difficile lorsque certaines langues comme le japonais et le chinois utilisent des caractères qui représentent des mots et des lettres sans espaces entre eux, faisant en sorte qu’il est plus difficile pour l’ordinateur de comprendre ce qui est dit. Il est plus facile de détecter les mots dans des langues comme l’anglais, car ils sont presque toujours séparés par un espace. Un autre défi découle du fait que le même mot peut être utilisé comme différents éléments de la phrase (nom, verbe, etc.). Par exemple, on peut apporter son manger (nom), quelque chose peut être mangé (adjectif), vous pouvez manger quelque chose (verbe).</p>
 
 
 
  <p class="expand mw-collapsible-content">La compréhension du langage naturel (CLN)<ref>Rouse, M. (20 septembre 2019). natural language understanding (NLU). Récupéré de searchenterpriseai.techtarget.com: https://searchenterpriseai.techtarget.com/definition/natural-language-understanding-NLU</ref> fait référence à la compréhension des données transmises à un ordinateur sous forme de paroles ou de texte. Elle permet aux ordinateurs de comprendre la parole humaine sans utiliser une syntaxe préprogrammée et de répondre aux commandes ou aux questions de manière intelligente et cohérente. La CLN est ce qui se cache derrière les agents conversationnels qui interagissent avec les humains sans nécessiter d’intervention.</p>
 
 
 
  <p class="expand mw-collapsible-content">La génération de langage naturel (GLN)<ref>Wikipedia. (6 septembre 2019). Natural-language generation. Récupéré de en.wikipedia.org: https://en.wikipedia.org/wiki/Natural-language_generation</ref> est le processus de conversion de texte en langage naturel, ce qui est l’opposé de la CLN. La GLN peut recueillir des données à partir de textes, de graphiques ou même de narrations générées et créer des narrations réactives qui résument l’information. Le premier système commercial de GLN consistait à créer des prévisions météorologiques à partir de données météorologiques<ref>Goldberg, E., Driedger, N., & Kittredge, R. I. (Avril 1994). <i>[https://dl.acm.org/citation.cfm?id=630016 Using Natural-Language Processing to Produce Weather Forecasts]</i>. Récupéré de dl.acm.org</ref>. Un autre exemple de génération de langage naturel est une plateforme de veille stratégique qui peut générer des explications sur les visualisations de données dans un tableau de bord<ref>Automated Insights. (30 janvier 2018). <i>[https://medium.com/@AutomatedInsights/the-ultimate-guide-to-natural-language-generation-bdcb457423d6 The Ultimate Guide to Natural Language Generation]</i>. Récupéré de medium.com</ref>.</p>
 
  
   <h2>Utilisation par l’industrie</h2>
+
   <h4>Value Proposition</h4>
  
   <p class="inline">L’interface utilisateur conversationnelle offre une autre façon pour les humains d’interagir avec les appareils. Ils permettent aux utilisateurs d’interagir avec un système, une application ou un appareil et d’y naviguer en utilisant uniquement la saisie conversationnelle. Les interfaces utilisateur conversationnelles et les assistants numériques peuvent ouvrir des applications, écrire du texte dans une zone de saisie et envoyer des commandes aux applications. Par exemple « Hé Siri, régler la minuterie à 30 secondes »). Ainsi, une interface utilisateur conversationnelle constitue un remplacement pour une interface utilisateur graphique (IUG).</p><p class="inline expand mw-collapsible-content"> Les interfaces conversationnelles se trouvent dans presque tous les appareils mobiles maintenant, car la plupart des téléphones cellulaires sont vendus avec l’assistant numérique du fabricant préinstallé.</p><p class="inline"> Ces interfaces permettent une meilleure prestation des services en fournissant une technologie plus récente à laquelle les utilisateurs finaux s’attendent maintenant.</p>
+
   <p>The primary business value impact of Kubernetes is the technology’s portability, and mobility independent of the environment. Its ability to manage, and orchestrate an organization’s application containers is a marked benefit. Kubernetes secondary business value is that it enables enterprise high-velocity, meaning that every product team can safely ship updates many times a day, deploy instantly, observe results in real time, and use this feedback to roll containers forward or back with the goal to improve the customer experience as fast as possible.<ref>Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: <i>[https://medium.com/platformer-blog/benefits-of-kubernetes-e6d5de39bc48]</i></ref></p>
  <p class="inline-spacer"></p>
+
   <p>In the age of modern web services, users expect their applications to be available 24/7, and developers expect the ability to deploy new versions of those applications several times a day with minimal downtime. Containers have become one of the main ways in which to manage applications across enterprise IT infrastructure and also one of the most difficult areas to manage effectively.</p>
   <p class="inline">Certaines des interactions les plus simples avec les clients peuvent être automatisées pour permettre aux ressources humaines d’effectuer des tâches plus difficiles qui sont difficiles à automatiser dans l’industrie des services.</p><p class="inline expand mw-collapsible-content"> Par exemple, KLM, la compagnie aérienne néerlandaise, a commencé à utiliser un agent conversationnel qui dialogue avec l’application Messenger de Facebook<ref>Mielke, C. (18 juillet 2016). <i>[https://www.smashingmagazine.com/2016/07/conversational-interfaces-where-are-we-today-where-are-we-heading/ Conversational Interfaces: Where Are We Today? Where Are We Heading?]</i> Récupéré de smashingmagazine.com</ref>. Cela permet aux clients de vérifier les informations relatives à leur vol et même de modifier certains éléments de leur voyage, sans avoir à parler directement à un employé de KLM. C’est un grand avantage, car les représentants humains de KLM peuvent servir à régler les problèmes plus sérieux des clients.</p>
+
  <p>Kubernetes, as an open source system, is a technology that can administer and manage a large number of containerized applications spread across clusters of servers while providing basic mechanisms for deployment, maintenance, and scaling of applications.<ref>GitHub. (2019). Production-Grade Container Scheduling and Management. GitHub. 2019. Retrieved 16-May-2019 from: <i>[https://github.com/kubernetes/kubernetes ]</i></ref> An application container is a standard unit of software that packages code and all its dependencies so the application runs quickly and reliably from one computing environment to another.<ref>Docker. (2019). What is a Container? A Standardized Unit of Software. Docker Inc. 2019.Retrieved 16-May-2019 from: <i>[https://www.docker.com/resources/what-container ]</i></ref> Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way.<ref>Kubernetes. (2019). Using Minikube to Create a Cluster. Kubernetes. 2019. ICP license: 京ICP备17074266号-3. Retrieved 16-May-2019 from: <i>[https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/ ]</i></ref></p>
 
+
  <p>Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run. This decoupling allows container-based applications to be deployed easily and consistently, regardless of whether the target environment is a private data center, the public cloud, or even a developer’s personal laptop.<ref><i>[https://cloud.google.com/containers/ ]</i></ref> An additional benefit to containerization is that the Operating System (OS) is not running as hard. </p>
  <p>Sephora, un détaillant populaire de maquillage aux États Unis, a intégré de façon réussie un robot à Kik. Kik est une application de messagerie mobile qui permet de clavarder entre individus, de discuter en groupe et d’utiliser un navigateur Web interne<ref>webwise.ie. (20 septembre 2019). Explainer: What is Kik? Récupéré de webwise.ie: https://www.webwise.ie/parents/explainer-what-is-kik/</ref>. L’application possède également des sous-applications qui fonctionnent dans le navigateur, ce qui encourage les utilisateurs à rester dans l’application.</p>
+
  <p class="inline">Since Kubernetes is open source, it allows the enterprise freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, and the ability to effortlessly move workloads.<ref>Kubernetes. (2019). Production-Grade Container Orchestration. Kubernetes. 2019. ICP license: 京ICP备17074266号-3. Retrieved 16-May-2019 from: <i>[https://kubernetes.io/ ]</i></ref> Containerized applications are more flexible and available than in past deployment models, where applications were installed directly onto specific machines as packages deeply integrated into the host. Kubernetes groups containers that make up an application into logical units for easy management and discovery. </p><p class="expand inline mw-collapsible-content">The abstractions in Kubernetes allows deployment of containerized applications to a cluster without tying them specifically to individual machines (i.e. Virtual Machines). Applications can be co-located on the same machines without impacting each other. This means that tasks from multiple users can be packed onto fewer machines. This provides greater efficiency and reduces the cost on hardware as less machines are used.</p>
 
+
   <p>Kubernetes contains tools for orchestration, secrets management, service discovery, scaling and load balancing and includes automatic bin packing to place containers with the optimal resources, and it applies configurations via configuration management features.<ref>Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: <i>[https://searchitoperations.techtarget.com/definition/Google-Kubernetes ]</i></ref> It protects container workloads by rolling out or rolling back changes and offers availability and quality checks for containers -- replacing or restarting failed containers. As requirements change, a user can move container workloads in Kubernetes from one cloud provider or hosting infrastructure to another without changing the code.<ref>Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: <i>[https://searchitoperations.techtarget.com/definition/Google-Kubernetes]</i></ref> This is a great value to developers as their work is protected and an audit trail of changes is available.</p>
  <p>Aujourd’hui, le robot pose un certain nombre de questions aux utilisateurs sur leurs préférences en matière de maquillage et propose des contenus et des offres liés aux réponses qu’il reçoit. Bien qu’il ne s’agisse pas d’un processus très sophistiqué, plus les consommateurs communiquent avec le robot, plus le robot (ainsi que la marque) est renseigné au sujet des préférences des consommateurs, lui permettant d’offrir un contenu et des offres mieux personnalisés.</p>
+
   <p class="expand mw-collapsible-content">The core concepts of Kubernetes which enables high velocity are immutability, declarative configuration and self-healing systems.<ref>Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: <i>[https://medium.com/platformer-blog/benefits-of-kubernetes-e6d5de39bc48]</i></ref> </p>
 
+
   <p>Containers and Kubernetes encourage developers to build distributed systems that adhere to the principles of immutable infrastructure. In immutable infrastructure an artifact created, will not be changed upon user modifications. To update applications in an immutable infrastructure, a new container image is built with a new tag, and is deployed, terminating the old container with the old image version. In this way, the enterprise always has an artifact record of what was done and if there was an error in the new image. If an error is detected the container is rolled back to the previous image.<ref>Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: <i>[https://medium.com/platformer-blog/benefits-of-kubernetes-e6d5de39bc48]</i></ref> Anything that goes into a container has a text file. Text files can be treated like application source code and provisions immutability.</p>
  <p class="expand mw-collapsible-content">Plusieurs des plus grandes entreprises technologiques, comme Amazon, Google, Apple et Samsung, commercialisent déjà des assistants vocaux. Il existe également de nombreuses plateformes élaborées en combinaison avec une plateforme CLN, pour faciliter la création d’agents conversationnels. Parmi ces plateformes, mentionnons API.ai (Google), Wit.ai (Facebook), et le Microsoft Bot Framework<ref>Paulson, K. (23 mars 2017). A beginner's guide to designing conversational interfaces. Récupéré de webdesignerdepot.com: https://www.webdesignerdepot.com/2017/03/a-beginners-guide-to-designing-conversational-interfaces/</ref>. DConcevoir des agents conversationnels pour des tâches précises à l’aide de ces plateformes permet aux individus de dialoguer avec leurs applications et, ainsi, la communication est établie entre une pléthore d’applications. Par exemple, la création d’un agent à l’aide de API.ai de Google crée automatiquement une plateforme infonuagique<ref>Catanzariti, P. (22 mai 2017). <i>[https://www.sitepoint.com/how-to-build-your-own-ai-assistant-using-api-ai/ How to Build Your Own AI Assistant Using Api.ai]</i>. Récupéré de sitepoint.com</ref> Google pour l’agent. L’utilisation de la plateforme infonuagique de Google fournit une infrastructure sécurisée et performante, dont la maintenance est assurée par Google. La plateforme infonuagique de Google offre des services pour le calcul, le stockage, la mise en réseau, les mégadonnées, l’apprentissage machine et Internet des objets (IdO), ainsi que des outils de gestion, de sécurité et de développement du nuage<ref>Rouse, M. (29 janvier 2016). Google Cloud Platform (GCP). Récupéré de searchcloudcomputing.techtarget.com: https://searchcloudcomputing.techtarget.com/definition/Google-Cloud-Platform</ref>.</p>
+
   <p class="expand mw-collapsible-content">Declarative configuration enables the user to describe exactly what state the system should be in. Traditional tools of development such as source control, unit tests etc. can be used with declarative configurations in ways that are impossible with imperative configurations. Imperative systems describe how to get from point A to B, but rarely include reverse instructions to get back. Kubernetes declarative configuration makes rollbacks fairly easy which is impossible with imperative configurations.<ref>Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: <i>[https://medium.com/platformer-blog/benefits-of-kubernetes-e6d5de39bc48]</i></ref></p>
 
+
  <p class="expand mw-collapsible-content">Lastly, Kubernetes has a means of self-healing. When Kubernetes receives a desired state configuration, it does not simply take actions to make the current state match the desired state at a single time, but it will continuously take actions to ensure it stays that way as time passes by.<ref>Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: <i>[https://medium.com/platformer-blog/benefits-of-kubernetes-e6d5de39bc48]</i></ref></p>
  <p>Les assistants numériques offrent aux utilisateurs une autre façon d’effectuer leurs tâches quotidiennes. Ils ont le potentiel de permettre aux gens de gagner beaucoup de temps qu’ils consacreraient à écrire des courriels et des documents, à vérifier les mises à jour et plus encore. Une industrie pourrait tirer d’innombrables avantages du temps que peuvent faire gagner les assistants numériques. Au fur et à mesure que les assistants numériques se développent, leurs capacités augmentent rapidement. Cela signifie que les entreprises peuvent utiliser les assistants pour envoyer des messages vocaux instantanés, envoyer des diffusions, écouter des fichiers audio et plus encore.</p>
 
 
 
   <p>Des assistants numériques comme Alexa d’Amazon sont déjà en train d’être mis en œuvre dans des entreprises partout en Amérique du Nord. Les assistants numériques sont utilisés pour aviser les bureaux de service de TI de problèmes liés aux technologies, lancer des téléconférences<ref>Amazon. (13 août 2019). <i>[https://docs.aws.amazon.com/a4b/latest/ag/setup-conferencing.html Alexa for Business]</i>. Récupéré de docs.aws.amazon.com</ref>, trouver des salles de réunion disponibles<ref>Perez, S. (10 octobre 2018). Alexa can now reserve conference rooms. Récupéré de techcrunch.com: https://techcrunch.com/2018/10/10/alexa-can-now-reserve-conference-rooms/</ref>, allumer ou éteindre les lumières des bureaux<ref>Smart Home Focus. (9 mars 2019). Alexa turn on the lights. Récupéré de smarthomefocus.com: https://www.smarthomefocus.com/alexa-turn-on-lights/</ref> et même vérifier les images des caméras de sécurité<ref>Lamkin, P. (17 avril 2019). <i>[https://www.the-ambient.com/how-to/how-to-watch-nest-security-camera-alexa-493 How to view security camera footage on your Amazon Echo devices]</i>. Récupéré de the-ambient.com</ref>.</p>
 
 
 
   <p class="expand mw-collapsible-content">McDonalds utilise LivePerson<ref>Sutton, J. (9 avril 2019). LivePerson helps McDonald's Canada launch conversational commerce on Google Assistant. Récupéré de newswire.ca: https://www.newswire.ca/news-releases/liveperson-helps-mcdonald-s-canada-launch-conversational-commerce-on-google-assistant-802328181.html</ref>, un service conversationnel offert par l’entremise de téléphones intelligents avec Google Assistant, pour permettre aux clients de bénéficier d’un certain nombre de fonctionnalités utiles, notamment des offres spéciales basées sur l’emplacement, la navigation mains libres et la possibilité de passer une commande en appuyant sur une offre. Ce service est actuellement offert à tous les clients au Canada qui utilisent le service Google Assistant.</p>
 
 
 
  <h2>Utilisation par le gouvernement du Canada</h2>
 
 
 
   <p>Les interfaces utilisateur conversationnelles auront plusieurs avantages pour le gouvernement du Canada. Puisque l’interface utilisateur conversationnelle améliore la qualité des interactions entre l’humain et l’appareil, le GC peut bénéficier de son utilisation dans la prestation des services. Par exemple, si l’interface utilisateur conversationnelle était utilisée pour traiter les problèmes techniques de base auxquels sont confrontés les employés du GC, cela allégerait la charge de travail du personnel de soutien de la TI et permettrait à ces employés de régler des problèmes plus complexes que l’interface utilisateur conversationnelle ne peut traiter.</p>
 
 
 
  <p>L’IU conversationnelle pourrait également être utilisée sur les sites Web du GC. Cela aiderait les citoyens canadiens qui accèdent aux sites Web à obtenir rapidement l’information qu’ils recherchent au moyen de demandes utilisant le langage naturel, grâce à un agent conversationnel. Si l’agent conversationnel ne peut pas récupérer l’information ou diriger l’utilisateur, l’agent conversationnel pourrait donner à l’utilisateur les coordonnées du ministère approprié ou le mettre en contact avec un agent du service d’assistance approprié. Il pourrait également être utile, lorsqu’une personne doit remplir des formulaires ou des demandes, d’offrir la possibilité de donner une rétroaction immédiate pour savoir si les données inscrites sont valides ou doivent être modifiées.</p>
 
 
 
   <p class="expand mw-collapsible-content">De plus, les assistants numériques doivent avoir le potentiel d’améliorer la productivité d’un employé. Dans un sondage mené par AtTask et Harris Interactive, les employés ont indiqué qu’ils consacraient 45 % de leur temps à des tâches exigées par leur rôle principal<ref>AtTask. (22 octobre 2014). <i>[https://www.prnewswire.com/news-releases/attask-study-shows-miscommunication-and-distractions-overshadow-work-productivity-720630018.html AtTask Study Shows Miscommunication and Distractions Overshadow Work Productivity]</i>. Récupéré de prnewswire.com</ref>. Ils ont indiqué que les courriels excessifs étaient l’un des principaux facteurs réduisant la productivité. Les assistants numériques peuvent combler cette lacune en exécutant des tâches répétitives comme organiser et se joindre à des réunions<ref>Amazon. (13 août 2019). <i>[https://docs.aws.amazon.com/a4b/latest/ag/setup-conferencing.html Alexa for Business]</i>. Récupéré de docs.aws.amazon.com</ref>, envoyer des courriels, répondre aux questions fréquemment posées et répondre aux questions simples des clients.</p>
 
 
    
 
    
   <p>Les assistants numériques ont une capacité unique en ce sens que les utilisateurs et les entreprises peuvent ajouter des « compétences » ou des fonctions générées par les utilisateurs pour effectuer des tâches particulières. Le GC pourrait créer ses propres « compétences » pour faire face à des scénarios précis et propres au milieu de travail fédéral. Cela peut accroître la productivité en donnant plus de temps aux travailleurs pour se concentrer sur des tâches importantes; il est ainsi possible d’économiser de l’argent puisque moins de temps sera perdu avec des tâches répétitives.</p>
+
   <h4>Challenges</h4>
 
 
  <p class="expand mw-collapsible-content">Étant donné que les agents conversationnels et les assistants numériques ont récemment été introduits au GC, il existe peu d’exemples d’utilisation de ces technologies par le gouvernement fédéral. Au fur et à mesure que le temps passe et que les solutions dépassent la phase de prototypage, plus d’exemples d’utilisations possibles existeront.</p>
 
 
 
  <p>Selon Sarah Turnbull, le GC a lancé un agent conversationnel pour la première fois entre le 25 décembre 2017 et le 28 février 2018, dans le cadre d’une campagne de sensibilisation de Sécurité publique Canada intitulée « Ne conduis pas gelé »<ref>Turnbull, S. (9 avril 2018). Ottawa used Facebook chatbot for ‘driving high’ campaign. Récupéré de ipolitics.ca: https://ipolitics.ca/2018/04/09/facebook-chatbot-message-about-driving-high-on-pot-a-first-for-feds/</ref>. L’agent conversationnel a été conçu pour éduquer de façon interactive les jeunes de 16 à 24 ans sur les risques de la conduite avec des facultés affaiblies, tout en leur fournissant un moyen de trouver de l’aide ou de rentrer chez eux.</p>
 
 
 
  <p>Dans le cadre de l’initiative de Gestion des cotisations et des recettes de l’ASFC (GCRA)<ref>Canada Border Services Agency. (4 septembre 2019). <i>[https://www.cbsa-asfc.gc.ca/prog/carm-gcra/menu-eng.html CBSA Assessment and Revenue Management]</i>. Récupéré de cbsa-asfc.gc.ca</ref>, l’Agence des services frontaliers du Canada (ASFC) offre actuellement un agent conversationnel<ref>Canadian Society of Customs Brockers. (10 avril 2019). <i>[http://cscb.ca/content/carm-trade-chain-partners-tcp-consultation-meeting-april-2019 CARM Trade Chain Partners (TCP) Consultation Meeting, April 2019]</i>. Récupéré de cscb.ca</ref> qui peut aider les partenaires de la chaîne commerciale (PCC) à obtenir plus rapidement des renseignements utiles. L’agent conversationnel proposé aide les PCC à comprendre les règlements de l’ASFC en ce qui a trait aux questions posées par le PCC. L’agent conversationnel aidera à atteindre l’objectif déclaré de l’initiative de GCRA, qui est de « moderniser et simplifier le processus d’importation de marchandises commerciales au Canada ».</p>
 
  
   <h3>Répercussions pour Services partagés Canada (SPC)</h3>
+
   <p>The greatest challenge in regards to Kubernetes is its complexity. However, security, storage and networking, maturity, and competing enterprise transformation priorities are also challenges facing the Kubernetes technology.</p>
 
+
   <p><b><u>Kubernetes Complexity and Analyst Experience</u></b></p>
   <h4>Proposition de valeur</h4>
+
   <p>There is the challenge of a lack of organizational and analyst experience with container management and in using Kubernetes. Managing, updating, and changing a Kubernetes cluster can be operationally complex, more so if the analysts have a lack of experience. The system itself does provide a solid base of infrastructure for a Platform as a Service (PaaS) framework, which can reduce the complexity for developers. However, testing within a Kubernetes environment is still a complex task. Although its use cases in testing are well noted, testing several moving parts of an infrastructure to determine proper application functionality is still a more difficult endeavour.<ref>Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: <i>[https://www.gartner.com/doc/3873073/using-kubernetes-orchestrate-containerbased-cloud]</i></ref> This means a lot of new learning will be needed for operations teams developing and managing Kubernetes infrastructure. The larger the company, the more likely the Kubernetes user is to face container challenges.<ref>Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: <i>[https://thenewstack.io/ebooks/kubernetes/kubernetes-deployment-and-security-patterns/]</i></ref></p>
 
+
  <p><b><u>Security</u></b></p>
   <p>Services partagés Canada (SPC) pourrait tirer profit de l’IU conversationnelle à l’interne, en lui permettant de gérer les problèmes techniques des employés en libre-service. L’IU conversationnelle peut aussi permettre à des personnes de l’externe d’obtenir rapidement de l’information sur SPC et de préciser leurs questions, sans avoir à naviguer sur un site Web riche en information qu’elles ne connaissent peut-être pas bien. Les données sur l’utilisation recueillies à partir des interactions avec les utilisateurs peuvent aider à obtenir des renseignements sur la manière d’améliorer la prestation des services aux intervenants, aux clients et aux Canadiens.</p>
+
   <p>In a distributed, highly scalable environment, traditional and typical security patterns will not cover all threats. Security will have to be aligned for containers and in the context of Kubernetes. It is critical for operations teams to understand Kubernetes security in terms of containers, deployment, and network security. Security perimeters are porous, containers must be secured at the node level, but also through the image and registry. Security practices in the context of various deployment models will be a persistent challenge.<ref>Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: <i>[https://thenewstack.io/ebooks/kubernetes/kubernetes-deployment-and-security-patterns/]</i></ref></p>
 
+
  <p><b><u>Storage & Networking</u></b></p>
   <p class="expand mw-collapsible-content">Les questions les plus fréquemment posées peuvent indiquer quels renseignements doivent être plus accessibles et si de nouveaux services doivent être créés. De plus, un avantage négligé des assistants numériques et des agents conversationnels est qu’ils ne jugent pas les questions posées, qu’ils ne paraissent pas impatients et qu’ils peuvent être plus abordables que les assistants en direct. Cela pourrait accroître les interactions avec les utilisateurs, car ils se sentiraient plus à l’aise de poser des questions qu’ils hésiteraient à poser autrement.</p>
+
   <p>Storage and networking technologies are pillars of data center infrastructure, but were designed originally for client/server and virtualized environments. Container technologies are leading companies to rethink how storage and networking technologies function and operate.<ref>Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: <i>[https://thenewstack.io/ebooks/kubernetes/kubernetes-deployment-and-security-patterns/]</i></ref> Architectures are becoming more application-oriented and storage does not necessarily live on the same machine as the application or its services. Larger companies tend to run more containers, and to do so in scaled-out production environments requires new approaches to infrastructure.<ref>Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: <i>[https://thenewstack.io/ebooks/kubernetes/kubernetes-deployment-and-security-patterns/]</i></ref></p>
 
+
   <p>Some legacy systems can run containers and only sometimes can VMs can be replaced by containers. There may be significant engineering consequences to existing legacy systems if containerization and Kubernetes is implemented in a legacy system not designed to handle that change. Some Legacy systems may require refactoring and making it more suitable for containerization. Some pieces of a system may be able to be broken off and containerized. In general, anything facing the internet should be run in containers.</p>
   <p>Les assistants numériques peuvent également accroître la productivité des employés<ref>Gibbison, M. (11 janvier 2017). <i>[https://diginomica.com/7-ways-digital-assistants-and-ai-will-help-transform-public-services 7 ways digital assistants and AI will help transform public services]</i>. Récupéré de diginomica.com</ref> et les aider à se concentrer sur les tâches essentielles de leur mandat. Les assistants numériques et les agents conversationnels peuvent être utilisés pour remplir des formulaires, peuvent signaler aux utilisateurs qu’une section a été mal remplie et peuvent soumettre ces formulaires au nom de l’utilisateur pour gagner du temps<ref>Clifford, C. (23 novembre 2014). <i>[https://www.entrepreneur.com/article/240076 How Much Time Do Your Employees Spend Doing Real Work? The Answer May Surprise You. (Infographic)]</i>. Récupéré de entrepreneur.com</ref>.</p>
+
   <p><b><u>Maturity</u></b></p>
 
+
   <p>Kubernetes maturity as a technology is still being tested by organizations. For now, Kubernetes is the market leader and the standardized means of orchestrating containers and deploying distributed applications. Google is the primary commercial organization behind Kubernetes; however they do not support Kubernetes as a software product. It offers a commercial managed Kubernetes service known as GKE but not as a software. This can be viewed as both a strength and a weakness. Without commercialization, the user is granted more flexibility with how Kubernetes can be implemented in their infrastructure; However, without a concrete set of standards of  the services that Kubernetes can offer, there is a risk that Google’s continuous  support cannot be guaranteed. Its donation of Kubernetes code and intellectual property to the Cloud Native Computing Foundation does minimize this risk since there is still an organization enforcing the proper standards and  verifying  services Kubernetes can offer moving forward.<ref>Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: <i>[https://www.gartner.com/doc/3873073/using-kubernetes-orchestrate-containerbased-cloud]</i></ref> It is also important to note that the organizational challenges that Kubernetes users face have been more dependent on the size of the organization using it.</p>
  <h4>Défis</h4>
+
  <p>Kubernetes faces competition from other scheduler and orchestrator technologies, such as Docker Swarm and Mesosphere DC/OS. While Kubernetes is sometimes used to manage Docker containers, it also competes with the native clustering capabilities of Docker Swarm.<ref>Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: <i>[https://searchitoperations.techtarget.com/definition/Google-Kubernetes]</i></ref> However, Kubernetes can be run on a public cloud service or on-premises, is highly modular, open source, and has a vibrant community. Companies of all sizes are investing into it, and many cloud providers offer Kubernetes as a service.<ref>Tsang, Daisy. (February 12th, 2018). Kubernetes vs. Docker: What Does It Really Mean? Sumo Logic. 2019. Retrieved 16-May-2019 from: <i>[https://www.sumologic.com/blog/kubernetes-vs-docker/ ]</i></ref></p>
 
+
  <p><b class="expand mw-collapsible-content"><u>Competing Enterprise Transformation Priorities</u></b></p>
   <p>Le lancement de l’IU conversationnelle au sein du GC présente quelques défis. L’utilisation d’assistants à commande vocale ou d’agents conversationnels conçus à l’aide de plateformes comme API.ai et Wit.ai signifie que le GC utilisera le réseau d’infonuagique de Google ou d’une autre entreprise pour traiter l’information soumise à l’interface utilisateur conversationnelle. SPC devra évaluer les répercussions que cela entraîne sur les plans de la sécurité et de la protection des renseignements personnels. Si l’interface utilisateur conversationnelle était conçue sans utiliser ces plateformes, cela nécessiterait un investissement considérable pour la conception et la maintenance, à moins qu’une solution de source ouverte soit adoptée.</p>
+
  <p class="expand mw-collapsible-content">The last challenge facing Kubernetes initiative development and implementation is its place in an organization’s IT transformation priority list. Often there are many higher priority initiatives that can take president over Kubernetes projects.</p>
    
 
   <p>Il est très important de tenir compte des défis posés par les assistants numériques étant donné leur niveau de gravité. L’un des problèmes liés aux assistants numériques est la menace qu’ils constituent sur le plan de la sécurité. Comme la majorité des assistants numériques sont à commande vocale, ils sont vulnérables à des attaques comme la DolphinAttack<ref>Arntz, P. (28 juillet 2018). <i>[https://blog.malwarebytes.com/security-world/2018/07/whats-the-real-value-and-danger-of-smart-assistants/ What’s the real value—and danger—of smart assistants?]</i> Récupéré de blog.malwarebytes.com</ref>. (attaque « dauphin »). La DolphinAttack est basée sur le fait que les dauphins peuvent entendre des fréquences inaudibles pour les humains<ref>Khandelwal, S. (7 septembre 2017). <i>[https://thehackernews.com/2017/09/ai-digital-voice-assistants.html Hackers Can Silently Control Siri, Alexa & Other Voice Assistants Using Ultrasound]</i>. Récupéré de thehackernews.com</ref>. Les cybercriminels peuvent transmettre des commandes à des appareils comme Siri à une fréquence inaudible à l’oreille humaine, mais qui peut être entendue par les assistants numériques<ref>Khandelwal, S. (7 septembre 2017). <i>[https://thehackernews.com/2017/09/ai-digital-voice-assistants.html Hackers Can Silently Control Siri, Alexa & Other Voice Assistants Using Ultrasound]</i>. Récupéré de thehackernews.com</ref>. Ainsi, ces cybercriminels peuvent utiliser les assistants numériques pour visiter des sites Web malveillants ou poser des questions aux assistants numériques sur des aspects essentiels du fonctionnement du GC.</p>
 
 
    
 
    
  <p class="inline expand mw-collapsible-content">Ces assistants numériques activés par la voix peuvent être ciblés par l’espionnage. Les cybercriminels peuvent compromettre le système de l’assistant, ce qui leur permet d’entendre des conversations très secrètes et d’utiliser les caméras intégrées pour voir les personnes concernées. En outre, la plupart des nouveaux assistants numériques sont constamment à l’écoute. Ils utilisent un traitement à faible puissance qui est constamment à l’écoute, attendant qu’une question soit posée.</p><p class="inline"> Les enregistrements de fond sonore et les questions légitimes sont tous transmis à une base de données principale appartenant à l’exploitant de l’assistant numérique; la sécurité de ces fichiers est ensuite entre les mains des exploitants (p. ex : Google, Amazon, Microsoft, Samsung, etc.). Si une atteinte à la sécurité survient chez l’une ou l’autre de ces entreprises, les renseignements de nature délicate du GC pourraient être accessibles et transmis à des acteurs malveillants. Cela s’est produit accidentellement, à plus petite échelle, lorsqu’un appareil Amazon Echo a mal interprété une conversation qui avait lieu dans une autre pièce et a envoyé l’ensemble du fichier audio à une des personnes d’une liste de contacts<ref>Machkovech, S. (24 mai 2018). <i>[https://arstechnica.com/gadgets/2018/05/amazon-confirms-that-echo-device-secretly-shared-users-private-audio/ Amazon confirms that Echo device secretly shared user's private audio]</i>. Récupéré de arstechnica.com</ref>.</p>
+
   <h4>Considerations</h4>
  <p class="inline-spacer"></p>
 
  <p class="inline">Les assistants numériques comportent d’autres failles de sécurité liées à l’utilisation des « compétences ». Les compétences peuvent être ajoutées à un assistant numérique à partir d’une boutique de compétences exploitée par le propriétaire de l’assistant numérique. Certaines d’entre elles sont soumises par des utilisateurs et cela peut poser quelques problèmes. La contrefaçon de commande vocale<ref>Umawing, J. (30 mai 2018). Researchers discover vulnerabilities in smart assistants’ voice commands. Récupéré de blog.malwarebytes.com: https://blog.malwarebytes.com/cybercrime/2018/05/security-vulnerabilities-smart-assistants/</ref> consiste à exploiter un assistant numérique en utilisant la manière dont il lance les compétences. Si une compétence soumise par un utilisateur malveillant est épelée et prononcée de façon similaire à une compétence légitime, l’utilisateur peut accidentellement envoyer une commande à compétence malveillante. Par exemple, une commande comme « Hé Alexa, ouvre Capital One » pourrait aussi être interprétée comme « Hé Alexa, ouvre Capitol Won » et la commande pourrait ouvrir une compétence malveillante.</p><p class="inline expand mw-collapsible-content"> Il est aussi possible de « déguiser sa voix », en faisant passer une compétence malveillante pour une compétence légitime pour amener l’utilisateur à divulguer des renseignements sensibles. Le concept de « fausse désactivation » s’appuie sur cette technique; la compétence nuisible prétend être désactivée, mais en réalité, elle est toujours à l’écoute, enregistrant de l’information en arrière-plan.</p>
 
 
 
   <h4>Considérations</h4>
 
  
   <p>L’ébauche du livre blanc sur l’utilisation responsable de l’intelligence artificielle au sein du gouvernement du Canada<ref>Karlin, M. (16 octobre 2017). <i>[https://gccollab.ca/file/view/161410/enresponsible-ai-in-the-government-of-canadafr Responsible AI in the Government of Canada]</i>. Récupéré de gccollab.ca</ref> du Secrétariat du Conseil du Trésor du Canada présente de très bonnes considérations à l’intention des institutions du GC qui cherchent à déployer des agents conversationnels :</p>
+
   <p><b><u>Strategic Resourcing and Network Planning</u></b></p>
 
+
   <p>A strategic approach to Kubernetes investments will need to be developed to ensure opportunities are properly leveraged. The GC invests a significant portion of its annual budget on IT and supporting infrastructure. Without strategic Kubernetes direction the fragmented approaches to IT investments, coupled with rapid developing technology and disjointed business practices, can undermine effective and efficient delivery of GC programs and services.<ref>Treasury Board of Canada Secretariat. December 3, 2018. Directive on Management of Information Technology. Treasury Board of Canada Secretariat. Government of Canada. Retrieved 27-Dec-2018 from: <i>[https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249 ]</i></ref> A clear vision and mandate for how Kubernetes will transform services, and what the end-state Kubernetes initiative is supposed to look like, is a prominent consideration. </p>
   <ul>
+
  <p>SSC should consider defining a network strategy for Kubernetes adoption. Multiple factors should be taken into account, including the amount of resources, funding, and expertise that will be required for the development and experimentation with Kubernetes technologies. Calculation of resource requirements including CPU, memory, storage, etc. at the start of Kubernetes projects is imperative. Considerations include whether or not an in-house Kubernetes solution is required or if a solution can be procured. Other strategy considerations include analyzing different orchestration approaches for different application use cases.</p>
      <li>Les conversations des agents conversationnels devraient commencer par un bref avis de confidentialité conforme à la Norme sur la protection de la vie privée et le Web analytique du Conseil du Trésor du Canada<ref>Treasury Board of Canada Secretariat. (31 janvier 2013). Standard on Privacy and Web Analytics. Récupéré de tbs-sct.gc.ca: https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=26761</ref>. Cet avis devrait fournir un lien vers une page contenant plus de renseignements sur l’information recueillie au cours de la conversation, y compris sur les métadonnées, par exemple : heure et date, durée, si la conversation a été terminée par l’utilisateur ou l’agent, si et quand la discussion a été transmise à un humain, etc.</li>
+
  <p><b><u>Complexity and Skills Gap</u></b></p>
      <li>Il faut se demander si le robot est capable d’avoir un ton professionnel en tant que représentant du gouvernement du Canada. Les agents conversationnels qui utilisent l’apprentissage machine peuvent apprendre un langage potentiellement non professionnel, abusif ou harcelant s’ils sont exposés à un nombre suffisant d’exemples. Dans la mesure du possible, les institutions devraient collaborer avec les fournisseurs pour les empêcher d’apprendre ce type de comportements, que ce soit au moyen d’une liste noire de mots clés ou d’une autre méthode. Il est important de surveiller en permanence le rendement des agents conversationnels à cet égard.</li>
+
  <p>Kubernetes is a good technology and the de facto standard for orchestrating containers, and containers are the future of modern software delivery. But it is notoriously complex to manage for enterprise workloads, where Service Level Agreements (SLAs) are critical. The operational pain of managing production-grade Kubernetes is further complicated by the industry-wide talent scarcity and skills gap. Most organizations today struggle to hire Kubernetes experts, and even these “experts” lack advanced Kubernetes experience to ensure smooth operations at scale. SSC will need to be cautious in implementing Kubernetes and having the right staff experienced and comfortable in its use.</p>
      <li>Les institutions devraient être conscientes du fait que les personnes vivant dans des régions rurales ou éloignées peuvent avoir une latence qui affectera leur capacité à répondre aux demandes de l’agent conversationnel. Il est important de s’assurer que les temps de réponse pour l’utilisateur sont permissifs.</li>
+
  <p><b><u>Customization and Integration Still Required</u></b></p>
      <li>Les agents conversationnels doivent être accessibles. Ils devraient utiliser un langage clair et simple afin d’être compris par les utilisateurs ayant un faible niveau de scolarité ou d’aisance dans les langues officielles du Canada. Il est également important que les agents conversationnels puissent être lus par des lecteurs d’écran ou qu’ils soient capables de communiquer vocalement pour les personnes ayant un handicap visuel.</li>
+
  <p>Kubernetes technology and ecosystem are evolving rapidly, because of its relatively new state, it is hard to find packaged solutions with complete out-of-the-box support for complex, large-scale enterprise scenarios. As a large and sophisticated enterprise organization, SSC will need to devote significant resources on customization and training. Enterprise Architecture pros will need to focus on the whole architecture of cloud-native applications as well as keep a close watch on technology evolution and industry. </p>
      <li>Il devrait être facile pour les utilisateurs de comprendre comment quitter la conversation. Si un utilisateur trouve qu’un agent conversationnel n’est plus utile, ou est incapable de répondre à sa requête, il devrait y avoir un moyen clair de transférer la conversation à un agent humain (si disponible), ou d’envoyer une correspondance par courriel. De plus, si un agent conversationnel a répondu à une requête et que l’utilisateur a terminé la session ou s’est abstenu de répondre à une autre question, l’agent conversationnel doit mettre fin poliment à la conversation.</li>
+
  <p>Implementation usually takes longer than expected, however the consensus in the New Stack’s Kubernetes User Experience Survey is that Kubernetes reduces code deployment times, and increases the frequency of those deployments.<ref>Williams, Alex, et al. The State of the Kubernetes Ecosystem. The New Stack. thenewstack.io. Retrieved 15-May-2019 from: <i>[https://thenewstack.io/ebooks/kubernetes/state-of-kubernetes-ecosystem/ ]</i></ref> However, in the short run, the implementation phase does consume more human resources. Additionally, implementation takes longer than expected. The consensus is that Kubernetes reduces code deployment times, and increases the frequency of those deployments. However, in the short run, the implementation phase does consume more human resources.</p>
   </ul>
+
  <p><b><u>Pilot Small and Scale Success</u></b></p>
 
+
  <p>SSC may wish to consider evaluating the current Service Catalogue in order to determine where Kubernetes can be leveraged first to improve efficiencies, reduce costs, and reduce administrative burdens of existing services as well as how a new Kubernetes service could be delivered on a consistent basis. Any new procurements of devices or platforms should have high market value and can be on-boarded easily onto the GC network. SSC should avoid applying in-house Kubernetes for production mission-critical apps. Failure of in-house deployments is high and thus should be avoided. SSC should pilot and establish a Kubernetes test cluster. With all new cloud-based technologies, piloting is preferred. Focus should first be on a narrow set of objectives and a single application scenario to stand up a test cluster.</p>
   <p class="expand mw-collapsible-content">Le même livre blanc indique également les questions qui devraient être posées avant la création d’un agent conversationnel :</p>
+
  <p><b><u>Implement Robust Monitoring, Logging, and Audit Practices and Tools</u></b></p>
 +
  <p>Monitoring provides visibility and detailed metrics of Kubernetes infrastructure. This includes granular metrics on usage and performance across all cloud providers or private data centers, regions, servers, networks, storage, and individual VMs or containers. Improving data center efficiency and utilization on both on-premises and public cloud resources is the goal. Additionally, logging is a complementary function and required capability for effective monitoring is also a goal. Logging ensures that logs at every layer of the architecture are all captured for analysis, troubleshooting and diagnosis. Centralized, distributed, log management and visualization is a key capability.<ref>Chemitiganti, Vamsi, and Fray, Peter. (February 20th, 2019). 7 Key Considerations for Kubernetes in Production. The  New Stack. 2019. Retrieved 16-May-2019 from: <i>[https://thenewstack.io/7-key-considerations-for-kubernetes-in-production/]</i></ref> Lastly, routine auditing, no matter the checks and balances put in place, will cover topics that normal monitoring will not cover. Traditionally, auditing is as a manual process, but the automated tooling in the Kubernetes space is quickly improving.</p>
 +
   <p><b><u>Security</u></b></p>
 +
   <p>Security is a critical part of cloud native applications and Kubernetes is no exception. Security is a constant throughout the container lifecycle and it is required throughout the design, development, DevOps, and infrastructure choices for container-based applications. A range of technology choices are available to cover various areas such as application-level security and the security of the container and infrastructure itself. Different tools that provide certification and security for what goes inside the container itself (such as image registry, image signing, packaging), Common Vulnerability Exposures/Enumeration (CVE) scans, and more.<ref>Chemitiganti, Vamsi, and Fray, Peter. (February 20th, 2019). 7 Key Considerations for Kubernetes in Production. The  New Stack. 2019. Retrieved 16-May-2019 from: <i>[https://thenewstack.io/7-key-considerations-for-kubernetes-in-production/]</i></ref> SSC will need to ensure appropriate security measures are used with any new Kubernetes initiatives, including the contents of the containers being orchestrated.</p>
  
   <ul class="expand mw-collapsible-content">
+
   <h2>References</h2>
      <li>Existe-t-il un facteur opérationnel clair pour l’agent conversationnel?</li>
 
      <li>Les demandes de renseignements les plus courantes sont-elles connues et est-il facile d’y répondre?</li>
 
      <li>Qu’est-ce qui peut être automatisé sans nuire à l’expérience et à la satisfaction de l’utilisateur? </li>
 
      <li>À quel point les renseignements que l’agent conversationnel est susceptible de recevoir ou de relayer sont-ils sensibles? </li>
 
      <li>L’interaction sera-t-elle entièrement scénarisée ou permettra-t-elle à l’utilisateur de poser des questions ouvertes?</li>
 
      <li>Y aura-t-il un processus d’acheminement vers un clavardage en direct avec un humain? </li>
 
      <li>Les interactions peuvent-elles être stockées dans votre logiciel de gestion des relations avec les clients? Permettra-t-il un engagement par d’autres moyens (p. ex. courriel, téléphone, en personne)?</li>
 
  </ul>
 
 
 
  <p class="expand mw-collapsible-content">En ce qui concerne les assistants numériques, en plus des défis déjà énumérés, il est important de vérifier si les assistants numériques sont activés sur les appareils mobiles qui sont distribués aux employés du gouvernement. Compte tenu de tous les risques connus en matière de sécurité, les appareils mobiles pourraient constituer une nouvelle vulnérabilité si les assistants numériques préinstallés sont vulnérables aux attaques et si les renseignements recueillis lors des conversations sont sensibles et transmis à la base de données de l’assistant numérique. Les assistants numériques sur les appareils mobiles devraient être désactivés pour prévenir toute fuite de données et pour éliminer les nouveaux vecteurs d’attaque.</p>
 
 
 
  <p>Conformément au passage vers l’adoption d’outils à source ouverte, le GC devrait envisager de tester et d’adopter des assistants numériques à source ouverte. Comme leurs homologues commerciaux, ils évoluent en permanence grâce à l’apport des utilisateurs et disposent des mêmes capacités, sans les risques liés à l’envoi d’information vers une base de données centrale. Ils permettent également l’utilisation de « compétences » personnalisées que le GC pourrait créer pour répondre à des problèmes précis.</p>
 
 
 
  <p class="inline">En fin de compte, les interfaces utilisateur conversationnelles sont encore en cours d’élaboration et d’amélioration, car de plus en plus d’entreprises élaborent leurs propres solutions. Cela signifie qu’avec le temps, les défis posés par la technologie deviendront moins importants et les solutions deviendront plus utiles et intuitives.</p><p class="inline expand mw-collapsible-content"> À l’heure actuelle, il existe de nombreuses applications pour les agents conversationnels dans un contexte de service à la clientèle (p. ex : client sur le site Web), mais moins dans les contextes internes (p. ex : employé avec les RH).</p><p class="inline"> Les assistants numériques sont une technologie potentiellement perturbatrice qui permettra de gagner du temps, mais aussi de réduire le besoin en employés dont les seules tâches pourraient être accomplies par un assistant numérique. Les assistants numériques n’ont actuellement pas beaucoup d’usages pour les entreprises comparativement au marché des consommateurs. Les assistants numériques ont le potentiel d’apporter une grande aide dans le monde des entreprises, mais ce potentiel n’a pas encore été exploité.</p>
 
  
  <h2>Références</h2>
 
 
</div>
 
</div>
  
Line 180: Line 130:
  
 
   #firstHeading::after{
 
   #firstHeading::after{
   content:"Interfaces Utilisateur Conversationnelles (IUC)";
+
   content:"Kubernetes";
 
   }
 
   }
  

Latest revision as of 14:11, 14 February 2020


Status Published
Initial release May 5, 2019
Latest version February 14, 2020
Official publication Kubernetes.pdf
Traffic cone.png This page is a work in progress. We welcome your feedback. Please use the discussion page for suggestions and comments. When the page is approved and finalized, we will send it for translation.

Kubernetes also known as K8s, is a portable, extensible open-source platform for managing containerized workloads and services that facilitates both declarative configuration and automation. Kubernetes provides a container-centric management environment. It orchestrates computing, networking, and storage infrastructure on behalf of user workloads.

Hide Detailed View


Business Brief

Application containers are increasingly being used in the infrastructure for cloud-native and microservice applications. Specifically, Docker is the engine most commonly used to create containers. Many application developers have noted the value of containers in dependency management as it packages the application and its dependencies, libraries, other binaries into a container to abstract away the differences in the OS distribution and underlying infrastructure. This solves many issues caused by differences in runtime environments when a software moves from one environment to another one.

Containers improve applications’ portability and scalability that enable applications to be released and updated in an easy and fast way without downtime. However, there still exits a demand in the management of containers when the services provided need to be deployed across a cluster of host servers to achieve high-availability and disaster recovery. This is where container deployment in cluster and management tools like Kubernetes provide their value. Developers can now begin to deploy and orchestrate services as a collection of containers across a cluster of servers. Container resource requirements can be explicitly declared that allows developers to bundle application code with an environment configurations.

Also by increasing container density, resources can be used more efficiently and thus it in turn improves hardware usage.[1] Containers provide applications with isolations, so that a development team can be made responsible for specific containers.

Kubernetes also offers self-healing, automatized rollout and rollback features, which greatly improve operation high-availability and flexibility. One of the biggest advantages of Kubernetes is the flexibility it provides. Many PaaS packaging dictate specific frameworks, are catered towards specific workloads, or impose limitations which language runtimes can be used.[2] These issues are all eliminated with Kubernetes. Therefore, if an organization’s application is capable of being run on a container, Kubernetes is a viable option for container orchestration.

Technology Brief

The Kubernetes cluster or deployment can be broken down into several components. The Kubernetes “master” is the machine in charge of managing other “node” machines. The “node is the machine in charge of actually running tasks fed to it via the user or the “master”. The master and nodes can be either a physical or virtual machines. In each Kubernetes cluster, there is one master and multiple nodes machines. The main goal of Kubernetes is to achieve “Desired State Management”. The “master” is fed a specific configuration through its RESTful API which it exposes to the user, and the “master” is then responsible for running this configuration across its set of “node”. The nodes can be thought of as host of containers. They communicate with the “master” through the agent in each node --“Kubelet” process. To establish a specific configuration in Kubernetes, the “master is fed a deployment file with the “.yaml” extension. This file contains a variety of configuration information. Within this information are “Pods” and “replicas”. There is a concept of Pod in Kubernetes and it can be described as a logic collection of containers which are managed as a single application. Resources can be shared within a Pod, these resources include shared storage (Volumes), a unique cluster of IP addresses, and information about how to run each container. A Pod can be thought of as the basic unit of the Kubernetes object model, it represents the deployment of a single instance of an application in Kubernetes.[3] A Pod can encapsulate one or more application containers. Two models exist for how Pods are deployed within a cluster. The “one-Pod-per-container” means a single pod will be associated with a single container. There can also be multiple containers that run within a single Pod, where these containers may need to communicate with one another as they share resources. In either model, the Pod can be thought of as a wrapper around the application containers. Kubernetes manages the Pod instances rather than managing the containers directly. The Pods are run on the Node machines to perform tasks. Replicas are simply instances of the Pods. Within the “.yaml” deployment file, specifications are instructing the “master” machine how many instances/replicas of each Pod to run, which is handled by a replication controller.[4] When a node dies or a running Pod experiences an unexpected termination, the replication controller will take note take care of this by creating the appropriate number of Pods.[5]

Industry Usage

Kubernetes is an open source system and many companies have begun to adopt it into their existing architecture as well as adapt it to their specific needs. It was originally developed by Google and was made an open source project in 2014. The Cloud Native Computing Foundation is a project of the Linux Foundation providing a community for different companies who are seeking to develop Kubernetes and other container orchestration projects. Several major cloud providers and platforms including Google Cloud Compute, HP Helion Cloud, RedHat Openshift, VMware Cloud, and Windows Azure all support the use of Kubernetes.[6] A survey, performed by iDatalabs in 2017, found 2,867 companies are currently using Kubernetes. These companies are generally located in the United States and are also most the computer software industry. Companies on the list hire between 50 and 200 employees, and accumulate 1M-100M in revenue per year. Some of the major companies on this list include GoDaddy inc, Pivotal Software inc, Globant SA, and Splunk inc

. Kubernetes own approximately 8.6% of the market share within the virtualization management software category.[7]

Canadian Government Use

There is a lack of documented Government of Canada (GC) initiatives and programs promoting the current and future use of Kubernetes technology. As a GC strategic IT item, Kubernetes is absent from both the GC’s Digital Operations Strategic Plan: 2018-2022 and the GC Strategic Plan for Information Management and Information Technology 2017 to 2021. This may be due to the fact that the GC is currently grappling with the implementation of Cloud Services, and the majority of resources and efforts are occupied with implementation challenges, as well as security concerns related to the protection of the information of Canadians.

However, the inception of containers into the market has shown that large-scale organizations, who are involved in cloud-native application development as well as networking, can benefit greatly from the use of containers.[8] Although the infrastructure applications providing cloud services can be based solely on Virtual Machines (VMs), the maintenance costs associated with running different operating systems on individual VMs outweighs the benefit.[9] Containers and Containerization is a replacement and/or complimentary architecture for VMs. As the GC moves toward cloud services and development of cloud-native applications, the use of containers and orchestrating them with Kubernetes can become an integral part the GC IT architecture.

Implications for Government Agencies

Shared Services Canada (SSC)

Value Proposition

The primary business value impact of Kubernetes is the technology’s portability, and mobility independent of the environment. Its ability to manage, and orchestrate an organization’s application containers is a marked benefit. Kubernetes secondary business value is that it enables enterprise high-velocity, meaning that every product team can safely ship updates many times a day, deploy instantly, observe results in real time, and use this feedback to roll containers forward or back with the goal to improve the customer experience as fast as possible.[10]

In the age of modern web services, users expect their applications to be available 24/7, and developers expect the ability to deploy new versions of those applications several times a day with minimal downtime. Containers have become one of the main ways in which to manage applications across enterprise IT infrastructure and also one of the most difficult areas to manage effectively.

Kubernetes, as an open source system, is a technology that can administer and manage a large number of containerized applications spread across clusters of servers while providing basic mechanisms for deployment, maintenance, and scaling of applications.[11] An application container is a standard unit of software that packages code and all its dependencies so the application runs quickly and reliably from one computing environment to another.[12] Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way.[13]

Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run. This decoupling allows container-based applications to be deployed easily and consistently, regardless of whether the target environment is a private data center, the public cloud, or even a developer’s personal laptop.[14] An additional benefit to containerization is that the Operating System (OS) is not running as hard.

Since Kubernetes is open source, it allows the enterprise freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, and the ability to effortlessly move workloads.[15] Containerized applications are more flexible and available than in past deployment models, where applications were installed directly onto specific machines as packages deeply integrated into the host. Kubernetes groups containers that make up an application into logical units for easy management and discovery.

The abstractions in Kubernetes allows deployment of containerized applications to a cluster without tying them specifically to individual machines (i.e. Virtual Machines). Applications can be co-located on the same machines without impacting each other. This means that tasks from multiple users can be packed onto fewer machines. This provides greater efficiency and reduces the cost on hardware as less machines are used.

Kubernetes contains tools for orchestration, secrets management, service discovery, scaling and load balancing and includes automatic bin packing to place containers with the optimal resources, and it applies configurations via configuration management features.[16] It protects container workloads by rolling out or rolling back changes and offers availability and quality checks for containers -- replacing or restarting failed containers. As requirements change, a user can move container workloads in Kubernetes from one cloud provider or hosting infrastructure to another without changing the code.[17] This is a great value to developers as their work is protected and an audit trail of changes is available.

The core concepts of Kubernetes which enables high velocity are immutability, declarative configuration and self-healing systems.[18]

Containers and Kubernetes encourage developers to build distributed systems that adhere to the principles of immutable infrastructure. In immutable infrastructure an artifact created, will not be changed upon user modifications. To update applications in an immutable infrastructure, a new container image is built with a new tag, and is deployed, terminating the old container with the old image version. In this way, the enterprise always has an artifact record of what was done and if there was an error in the new image. If an error is detected the container is rolled back to the previous image.[19] Anything that goes into a container has a text file. Text files can be treated like application source code and provisions immutability.

Declarative configuration enables the user to describe exactly what state the system should be in. Traditional tools of development such as source control, unit tests etc. can be used with declarative configurations in ways that are impossible with imperative configurations. Imperative systems describe how to get from point A to B, but rarely include reverse instructions to get back. Kubernetes declarative configuration makes rollbacks fairly easy which is impossible with imperative configurations.[20]

Lastly, Kubernetes has a means of self-healing. When Kubernetes receives a desired state configuration, it does not simply take actions to make the current state match the desired state at a single time, but it will continuously take actions to ensure it stays that way as time passes by.[21]

Challenges

The greatest challenge in regards to Kubernetes is its complexity. However, security, storage and networking, maturity, and competing enterprise transformation priorities are also challenges facing the Kubernetes technology.

Kubernetes Complexity and Analyst Experience

There is the challenge of a lack of organizational and analyst experience with container management and in using Kubernetes. Managing, updating, and changing a Kubernetes cluster can be operationally complex, more so if the analysts have a lack of experience. The system itself does provide a solid base of infrastructure for a Platform as a Service (PaaS) framework, which can reduce the complexity for developers. However, testing within a Kubernetes environment is still a complex task. Although its use cases in testing are well noted, testing several moving parts of an infrastructure to determine proper application functionality is still a more difficult endeavour.[22] This means a lot of new learning will be needed for operations teams developing and managing Kubernetes infrastructure. The larger the company, the more likely the Kubernetes user is to face container challenges.[23]

Security

In a distributed, highly scalable environment, traditional and typical security patterns will not cover all threats. Security will have to be aligned for containers and in the context of Kubernetes. It is critical for operations teams to understand Kubernetes security in terms of containers, deployment, and network security. Security perimeters are porous, containers must be secured at the node level, but also through the image and registry. Security practices in the context of various deployment models will be a persistent challenge.[24]

Storage & Networking

Storage and networking technologies are pillars of data center infrastructure, but were designed originally for client/server and virtualized environments. Container technologies are leading companies to rethink how storage and networking technologies function and operate.[25] Architectures are becoming more application-oriented and storage does not necessarily live on the same machine as the application or its services. Larger companies tend to run more containers, and to do so in scaled-out production environments requires new approaches to infrastructure.[26]

Some legacy systems can run containers and only sometimes can VMs can be replaced by containers. There may be significant engineering consequences to existing legacy systems if containerization and Kubernetes is implemented in a legacy system not designed to handle that change. Some Legacy systems may require refactoring and making it more suitable for containerization. Some pieces of a system may be able to be broken off and containerized. In general, anything facing the internet should be run in containers.

Maturity

Kubernetes maturity as a technology is still being tested by organizations. For now, Kubernetes is the market leader and the standardized means of orchestrating containers and deploying distributed applications. Google is the primary commercial organization behind Kubernetes; however they do not support Kubernetes as a software product. It offers a commercial managed Kubernetes service known as GKE but not as a software. This can be viewed as both a strength and a weakness. Without commercialization, the user is granted more flexibility with how Kubernetes can be implemented in their infrastructure; However, without a concrete set of standards of the services that Kubernetes can offer, there is a risk that Google’s continuous support cannot be guaranteed. Its donation of Kubernetes code and intellectual property to the Cloud Native Computing Foundation does minimize this risk since there is still an organization enforcing the proper standards and verifying services Kubernetes can offer moving forward.[27] It is also important to note that the organizational challenges that Kubernetes users face have been more dependent on the size of the organization using it.

Kubernetes faces competition from other scheduler and orchestrator technologies, such as Docker Swarm and Mesosphere DC/OS. While Kubernetes is sometimes used to manage Docker containers, it also competes with the native clustering capabilities of Docker Swarm.[28] However, Kubernetes can be run on a public cloud service or on-premises, is highly modular, open source, and has a vibrant community. Companies of all sizes are investing into it, and many cloud providers offer Kubernetes as a service.[29]

Competing Enterprise Transformation Priorities

The last challenge facing Kubernetes initiative development and implementation is its place in an organization’s IT transformation priority list. Often there are many higher priority initiatives that can take president over Kubernetes projects.

Considerations

Strategic Resourcing and Network Planning

A strategic approach to Kubernetes investments will need to be developed to ensure opportunities are properly leveraged. The GC invests a significant portion of its annual budget on IT and supporting infrastructure. Without strategic Kubernetes direction the fragmented approaches to IT investments, coupled with rapid developing technology and disjointed business practices, can undermine effective and efficient delivery of GC programs and services.[30] A clear vision and mandate for how Kubernetes will transform services, and what the end-state Kubernetes initiative is supposed to look like, is a prominent consideration.

SSC should consider defining a network strategy for Kubernetes adoption. Multiple factors should be taken into account, including the amount of resources, funding, and expertise that will be required for the development and experimentation with Kubernetes technologies. Calculation of resource requirements including CPU, memory, storage, etc. at the start of Kubernetes projects is imperative. Considerations include whether or not an in-house Kubernetes solution is required or if a solution can be procured. Other strategy considerations include analyzing different orchestration approaches for different application use cases.

Complexity and Skills Gap

Kubernetes is a good technology and the de facto standard for orchestrating containers, and containers are the future of modern software delivery. But it is notoriously complex to manage for enterprise workloads, where Service Level Agreements (SLAs) are critical. The operational pain of managing production-grade Kubernetes is further complicated by the industry-wide talent scarcity and skills gap. Most organizations today struggle to hire Kubernetes experts, and even these “experts” lack advanced Kubernetes experience to ensure smooth operations at scale. SSC will need to be cautious in implementing Kubernetes and having the right staff experienced and comfortable in its use.

Customization and Integration Still Required

Kubernetes technology and ecosystem are evolving rapidly, because of its relatively new state, it is hard to find packaged solutions with complete out-of-the-box support for complex, large-scale enterprise scenarios. As a large and sophisticated enterprise organization, SSC will need to devote significant resources on customization and training. Enterprise Architecture pros will need to focus on the whole architecture of cloud-native applications as well as keep a close watch on technology evolution and industry.

Implementation usually takes longer than expected, however the consensus in the New Stack’s Kubernetes User Experience Survey is that Kubernetes reduces code deployment times, and increases the frequency of those deployments.[31] However, in the short run, the implementation phase does consume more human resources. Additionally, implementation takes longer than expected. The consensus is that Kubernetes reduces code deployment times, and increases the frequency of those deployments. However, in the short run, the implementation phase does consume more human resources.

Pilot Small and Scale Success

SSC may wish to consider evaluating the current Service Catalogue in order to determine where Kubernetes can be leveraged first to improve efficiencies, reduce costs, and reduce administrative burdens of existing services as well as how a new Kubernetes service could be delivered on a consistent basis. Any new procurements of devices or platforms should have high market value and can be on-boarded easily onto the GC network. SSC should avoid applying in-house Kubernetes for production mission-critical apps. Failure of in-house deployments is high and thus should be avoided. SSC should pilot and establish a Kubernetes test cluster. With all new cloud-based technologies, piloting is preferred. Focus should first be on a narrow set of objectives and a single application scenario to stand up a test cluster.

Implement Robust Monitoring, Logging, and Audit Practices and Tools

Monitoring provides visibility and detailed metrics of Kubernetes infrastructure. This includes granular metrics on usage and performance across all cloud providers or private data centers, regions, servers, networks, storage, and individual VMs or containers. Improving data center efficiency and utilization on both on-premises and public cloud resources is the goal. Additionally, logging is a complementary function and required capability for effective monitoring is also a goal. Logging ensures that logs at every layer of the architecture are all captured for analysis, troubleshooting and diagnosis. Centralized, distributed, log management and visualization is a key capability.[32] Lastly, routine auditing, no matter the checks and balances put in place, will cover topics that normal monitoring will not cover. Traditionally, auditing is as a manual process, but the automated tooling in the Kubernetes space is quickly improving.

Security

Security is a critical part of cloud native applications and Kubernetes is no exception. Security is a constant throughout the container lifecycle and it is required throughout the design, development, DevOps, and infrastructure choices for container-based applications. A range of technology choices are available to cover various areas such as application-level security and the security of the container and infrastructure itself. Different tools that provide certification and security for what goes inside the container itself (such as image registry, image signing, packaging), Common Vulnerability Exposures/Enumeration (CVE) scans, and more.[33] SSC will need to ensure appropriate security measures are used with any new Kubernetes initiatives, including the contents of the containers being orchestrated.

References


  1. Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: [1]
  2. Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: [2]
  3. Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: [3]
  4. Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: [4]
  5. Kubernetes.io. (2018). Kubernetes Basics - Kubernetes. [online] Available at: [5]
  6. CENGN. (2018). CENGN and CloudOps Collaborate to Train Industry on Docker and Kubernetes.[Available at: https://www.cengn.ca/docker-kubernetes-training-jan18/ ]
  7. Idatalabs.com. (2018). Kubernetes commands 8.62% market share in Virtualization Management Software[6]
  8. CENGN. (2018). CENGN and CloudOps Collaborate to Train Industry on Docker and Kubernetes[Available at: https://www.cengn.ca/docker-kubernetes-training-jan18/]
  9. Heron, P. (2018). Experimenting with containerised infrastructure for GOV.UK - Inside GOV.UK. [online] Insidegovuk.blog.gov.uk[7]
  10. Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: [8]
  11. GitHub. (2019). Production-Grade Container Scheduling and Management. GitHub. 2019. Retrieved 16-May-2019 from: [9]
  12. Docker. (2019). What is a Container? A Standardized Unit of Software. Docker Inc. 2019.Retrieved 16-May-2019 from: [10]
  13. Kubernetes. (2019). Using Minikube to Create a Cluster. Kubernetes. 2019. ICP license: 京ICP备17074266号-3. Retrieved 16-May-2019 from: [11]
  14. [12]
  15. Kubernetes. (2019). Production-Grade Container Orchestration. Kubernetes. 2019. ICP license: 京ICP备17074266号-3. Retrieved 16-May-2019 from: [13]
  16. Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: [14]
  17. Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: [15]
  18. Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: [16]
  19. Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: [17]
  20. Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: [18]
  21. Jayanandana, Nilesh. (May 2nd, 2018). Benefits of Kubernetes. Medium Newspaper. Retrieved 16-May-2019 from: [19]
  22. Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: [20]
  23. Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: [21]
  24. Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: [22]
  25. Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: [23]
  26. Williams, Alex, et al. Kubernetes Deployment & Security Patterns. The New Stack. 2019. 20180622. thenewstack.io. Retrieved 15-May-2019 from: [24]
  27. Clayton, T. and Watson, R. (2018). Using Kubernetes to Orchestrate Container-Based Cloud and Microservices Applications. [online] Gartner.com. Available at: [25]
  28. Rouse, Margaret, et al. (August 2017). Kubernetes. TechTarget Inc. 2019. Retrieved 16-May-2019 from: [26]
  29. Tsang, Daisy. (February 12th, 2018). Kubernetes vs. Docker: What Does It Really Mean? Sumo Logic. 2019. Retrieved 16-May-2019 from: [27]
  30. Treasury Board of Canada Secretariat. December 3, 2018. Directive on Management of Information Technology. Treasury Board of Canada Secretariat. Government of Canada. Retrieved 27-Dec-2018 from: [28]
  31. Williams, Alex, et al. The State of the Kubernetes Ecosystem. The New Stack. thenewstack.io. Retrieved 15-May-2019 from: [29]
  32. Chemitiganti, Vamsi, and Fray, Peter. (February 20th, 2019). 7 Key Considerations for Kubernetes in Production. The New Stack. 2019. Retrieved 16-May-2019 from: [30]
  33. Chemitiganti, Vamsi, and Fray, Peter. (February 20th, 2019). 7 Key Considerations for Kubernetes in Production. The New Stack. 2019. Retrieved 16-May-2019 from: [31]