Cloud Computing http://hub-creatif.cetic.be/ en Tsimulus : un générateur de séries chronologiques réalistes open source http://hub-creatif.cetic.be/fiche/tsimulus-un-generateur-de-series-chronologiques-realistes-open-source <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Tsimulus : un générateur de séries chronologiques réalistes open source </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Tutoriel" hreflang="en">Tutoriel</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Sun, 11/15/2020 - 10:32</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://hub-creatif.cetic.be/sites/default/files/2021-03/Fiche%20TSimulus.pdf" type="application/pdf; length=1467118" title="Fiche TSimulus.pdf">Fiche Tsimulus</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><h2><img alt="TSimulus" data-entity-type="file" data-entity-uuid="c123ccb4-c94b-463f-b23c-d3de6882bc31" height="123" src="/sites/default/files/inline-images/logo%20tsimulus.png" width="303" /></h2> <p>Vous devez tester à grande échelle le bon comportement des outils de traitement de données, y compris dans un contexte big data ?  Vous manquez de données en temps réel ?</p> <p dir="ltr">Nous avons la solution ! Cette fiche vous présente TSimulus, l’outil qui vous permet de simuler des données, sous forme de séries temporelles, de manière très réaliste. </p> <p>Après l’énonciation des différents concepts nécessaires à sa compréhension, nous vous proposons une démonstration de son utilisation en simulant des températures externes pour la ville d’Uccle. Nous y détaillons les différentes étapes qui permettent de les rendre aussi réalistes que possible. </p> <p>Cette bibliothèque fait partie du projet de recherche EAM-SDI, fondé par la Région Wallonne.</p> <h2 dir="ltr"><strong>Prérequis </strong></h2> <p dir="ltr">Connaissances basiques en JSON</p> <p dir="ltr">Savoir écrire des lignes de commandes dans un terminal</p> <h2 dir="ltr"><img alt="goal" data-entity-type="file" data-entity-uuid="62bbc1fc-7ce5-416e-a0c3-e2f1ae856bd2" height="35" src="/sites/default/files/inline-images/goal2.png" width="35" class="align-left" /> Pour quoi faire ? </h2> <p dir="ltr">Les séries chronologiques sont utilisées dans une grande variété de domaines, notamment l’industrie, l’économie, les finances, la démographie, les prévisions météorologiques et le traitement du signal. Elles répondent à de nombreux objectifs dont les principaux sont la prévision, l’estimation d’une tendance ou encore l’évaluation de l’impact d’un événement. </p> <p>La bibliothèque TSimulus vous permet de simuler différents capteurs et de générer une quantité suffisante de données pour effectuer des tests par exemple. Vous spécifiez la forme d'une série chronologique (modèles généraux, cycles, importance du bruit ajouté, etc. - ces différents concepts sont décrits dans la section suivante) et TSimulus convertit cette spécification en valeurs de séries chronologiques. </p> <p>Concrètement, cet outil propose :</p> <ul><li> <p>Un moyen d'exprimer des contraintes de séries chronologiques à l'aide de documents JSON, ainsi qu'une API Scala pour exprimer programmatiquement ces contraintes.</p> </li> <li dir="ltr"> <p dir="ltr">Un moyen pratique de combiner des contraintes afin d'exprimer des contraintes de niveau supérieur.</p> </li> <li dir="ltr"> <p dir="ltr">Un moteur qui génère des valeurs de séries temporelles en fonction des contraintes décrites.</p> </li> <li dir="ltr"> <p dir="ltr">Un outil en ligne de commande qui s'appuie sur le moteur pour générer des séries chronologiques.</p> </li> <li dir="ltr"> <p dir="ltr">Un microservice sans état qui fournit des services de génération de séries chronologiques.</p> </li> </ul><h2 dir="ltr"><img alt="concepts" data-entity-type="file" data-entity-uuid="a041bebb-6f07-4cc2-85ae-01ae3fd7625c" height="37" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792.png" width="37" class="align-left" /> Quelques concepts </h2> <h2 dir="ltr">Une série chronologique (ou série temporelle)</h2> <p dir="ltr">Il s’agit d’une séquence de points ordonnée dans le temps, chacun d'eux étant associé au plus à une valeur. </p> <h3 dir="ltr">1. Évaluation de la série</h3> <p dir="ltr">Les séries chronologiques peuvent être évaluées à tout moment. Cette évaluation est rapide, sans effet secondaire et référentiellement transparente (en particulier, l'évaluation d'une série chronologique fournit toujours la même valeur pour un horodatage donné).</p> <p>De plus, la bibliothèque TSimulus prend en charge la génération de valeurs de séries chronologiques sous forme de flux numériques (potentiellement illimités). </p> <h3 dir="ltr">2. Les valeurs manquantes </h3> <p dir="ltr">Une série chronologique peut ne pas avoir de valeur à fournir pour un horodatage donné. Ce cas est géré par la bibliothèque comme des valeurs «manquantes». Les valeurs manquantes peuvent être remplacées par des valeurs «par défaut» et peuvent être supprimées d'une collection de valeurs avant d'opérer une agrégation.</p> <h2 dir="ltr">Les générateurs</h2> <p dir="ltr">L'objectif principal des générateurs est de décrire les contraintes qui façonnent la série temporelle générée.</p> <p>Alors que les générateurs de nombres aléatoires peuvent facilement être utilisés pour produire des séquences de nombres non liés (ou, du moins, dont les relations sont difficilement prévisibles), générer des séquences de nombres qui semblent respecter certains modèles évidents est également intéressant dans de nombreuses circonstances, y compris la simulation de l'acquisition de données dans les domaines mentionnés dans la section précédente.</p> <h3 dir="ltr">1. Une simulation de données réaliste</h3> <p dir="ltr">Afin de créer des séries chronologiques réalistes, un bruit convaincant doit généralement être ajouté à certains modèles spécifiés. De plus, les valeurs d'une série chronologique peuvent être liées à celles d'une autre série chronologique.</p> <h3 dir="ltr">2. Les différents types de générateurs </h3> <p dir="ltr">Voici une description succincte de trois types de générateurs. Vous trouverez davantage d’informations sur ceux-ci ainsi que sur les autres types existants <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#about-generators">ici</a>. </p> <h3 dir="ltr"><strong>2.1. Les générateurs primaires</strong></h3> <p dir="ltr">Les séries chronologiques primaires génèrent des valeurs qui n’ont de relation avec aucune autre série chronologique. Un utilisateur peut contraindre la forme générale d'une série chronologique primaire en spécifiant certains points de données (qui correspondent à des points dans les temps associés à des valeurs spécifiques) et en spécifiant que la série chronologique générée doit contenir ces points de données. Pour avoir plus d’informations sur les générateurs primaires, cliquez <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#primary-generators">ici</a>.</p> <h3 dir="ltr"><strong>2.2. Les générateurs composites</strong></h3> <p dir="ltr">Les générateurs peuvent être combinés de diverses manières afin de produire des générateurs plus complexes. De tels générateurs, appelés générateurs composites, expriment des séries chronologiques dont les valeurs sont le résultat de l'agrégation, de la comparaison, de la corrélation, etc. des valeurs générées par des séries temporelles décrites par d'autres générateurs. Vous en saurez davantage en cliquant <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#composite-generators">ici</a>.</p> <h3 dir="ltr"><strong>2.3.  Les générateurs binaires</strong></h3> <p dir="ltr">Les valeurs des séries temporelles générées peuvent être numériques ou binaires. Des opérations booléennes peuvent être appliquées à des valeurs binaires, qui peuvent être utilisées pour décrire des séries chronologiques conditionnelles. Les valeurs numériques peuvent être combinées et comparées de différentes manières, afin de créer des séries chronologiques complexes en combinant des séries simples. Vous en saurez davantage sur les générateurs binaires en cliquant <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#binary-generators">ici</a>.</p> <h3 dir="ltr"><strong>3. Le document de configuration</strong></h3> <p dir="ltr">Comme expliqué précédemment, la forme des séries temporelles générées est définie à l'aide de générateurs. Votre travail, en tant qu'utilisateur de TSimulus, est donc de modifier les descriptions de ces générateurs afin d'obtenir un résultat aussi réaliste que possible. Ces générateurs peuvent être spécifiés de manière déclarative dans un document dit de configuration, qui est un document JSON respectant une structure donnée. Ce document est composé d'une section “generators”, dans laquelle les générateurs sont déclarés, d'une section “exported” contenant la liste des générateurs qui doivent être convertis en séries chronologiques, ainsi que d'une paire de dates délimitant la période pour laquelle des valeurs de séries chronologiques doivent être générées.</p> <h3 dir="ltr"><strong>3.1. La section “generators”</strong></h3> <p dir="ltr">L'utilisation de la section “generators” dans un document de configuration, bien que facultative, est fortement recommandée afin de décrire la spécification des générateurs décrivant la série temporelle à générer. La section “generators” est donc essentiellement une liste de générateurs qui pourraient être convertis en séries chronologiques. </p> <h3><strong>3.2. La section “exported”</strong></h3> <p dir="ltr">Cette section du document de configuration répertorie les générateurs qui doivent être convertis en séries chronologiques. Il s'agit essentiellement d'une liste d'objets JSON contenant les attributs suivants :</p> <ul><li dir="ltr"> <p dir="ltr">name : le nom qui doit être associé à la série chronologique.</p> </li> <li dir="ltr"> <p dir="ltr">generators : une description du générateur représentant la série temporelle à générer. Cela peut être une description en ligne.</p> </li> <li dir="ltr"> <p dir="ltr">frequency : la période, en millisecondes, à laquelle les valeurs de séries temporelles doivent être générées.</p> </li> </ul><h3 dir="ltr"><strong>3.3. Les sections “from” et “to”</strong></h3> <p dir="ltr">Alors que la bibliothèque entière peut générer des valeurs pour tout moment valide, et malgré le fait que les séries temporelles soient considérées en interne comme des flux de valeurs potentiellement illimités, une telle génération illimitée ne peut pas être traitée dans un temps limité. Par conséquent, deux champs supplémentaires, exprimant le début et la fin de la période pour laquelle des valeurs doivent être générées, sont nécessaires dans le document de configuration afin de pouvoir générer des séries temporelles.</p> <h2 dir="ltr"><img alt="demonstration" data-entity-type="file" data-entity-uuid="f13565b8-8698-4a82-a94c-00ac454757ce" height="31" src="/sites/default/files/inline-images/note_list_icon_124054.png" width="31" class="align-left" /> Démonstration de TSimulus</h2> <p dir="ltr">Dans le cadre de cette fiche, nous vous proposons une démonstration de l’utilisation de TSimulus réalisant une simulation des températures externes pour la ville d’Uccle.  Après avoir détaillé le matériel nécessaire, nous décrivons les différentes manières d’installer TSimulus et expliquons comment l’utiliser.</p> <p>La démonstration à proprement parler commence lors de la troisième étape où vous pouvez créer un générateur de données et ensuite le rendre plus réaliste par le biais d’autres générateurs. </p> <h2 dir="ltr"><img alt="matériel" data-entity-type="file" data-entity-uuid="16d535da-0245-4eb9-96ee-362152f6a3e4" height="28" src="/sites/default/files/inline-images/outils.png" width="28" class="align-left" /> Matériel requis </h2> <p dir="ltr">Concernant le CLI, il vous faut : </p> <ul><li dir="ltr"> <p dir="ltr">une machine virtuelle <a href="https://www.java.com/fr/">Java</a></p> </li> <li dir="ltr"> <p dir="ltr">installer un fichier de configuration</p> </li> <li dir="ltr"> <p dir="ltr">taper la ligne de code suivante : java -jar tsimlus-cli.jar</p> </li> </ul><h2 dir="ltr"><img alt="étape1" data-entity-type="file" data-entity-uuid="e5797bb1-ff59-418d-a01a-9cf451aee5da" height="29" src="/sites/default/files/inline-images/footprint.png" width="29" class="align-left" /> Étape 1  - Comment utiliser la bibliothèque Tsimulus ? </h2> <p>Les séries chronologiques peuvent être générées selon les règles décrites dans un document de configuration. Vous pouvez envisager d'utiliser <a href="https://github.com/cetic/tsimulus-cli/releases">notre application CLI</a> qui lit les documents de configuration à partir d'un fichier JSON standard.</p> <p>Vous pouvez également envisager d'utiliser <a href="https://github.com/cetic/tsimulus-ms/releases">notre microservice</a> qui écoute les requêtes HTTP. Dans ce cas, le document de configuration est soumis en tant que paramètre d'une requête POST.</p> <h2 dir="ltr"><img alt="étape1" data-entity-type="file" data-entity-uuid="e5797bb1-ff59-418d-a01a-9cf451aee5da" height="29" src="/sites/default/files/inline-images/footprint.png" width="29" class="align-left" /> Étape 2 - Getting started</h2> <h3 dir="ltr"><strong>2.1. Une première génération de données</strong></h3> <p dir="ltr">Le moyen le plus simple de tester le projet TSimulus est de télécharger <a href="https://github.com/cetic/tsimulus-cli/releases">la dernière version d'un fichier Jar</a> exécutable contenant une application basée sur la bibliothèque TSimulus. Comme décrit dans la section “Matériel requis”, vous aurez besoin d'une machine virtuelle Java installée sur votre environnement.</p> <p>Pour votre première génération de séries chronologiques, nous allons spécifier un générateur qui proposera un simulateur de températures externes de base pour la ville d’Uccle, en Belgique. Selon l'<a href="https://www.meteo.be/fr/climat/atlas-climatique">Institut royal de météorologie de Belgique</a>, les températures moyennes à cet endroit sont les suivantes :</p> <p><img alt="Températures Uccle" data-entity-type="file" data-entity-uuid="c161951c-8eb7-43d2-b5e8-30401fec84c2" height="446" src="/sites/default/files/inline-images/donn%C3%A9es_temp.PNG" width="346" /></p> <h3 dir="ltr"><strong>2.1.1. Création d’un générateur qui décrit l'évolution de la température mois par mois </strong></h3> <p dir="ltr">    1. Encodez ceci dans un fichier JSON : </p> <pre> <code>{ "generators":[ { "name": "monthly-basis", "type": "monthly", "points": {"january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9} }], "exported":[ {"name": "temperature", "generator": "monthly-basis", "frequency": 3600000} ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" }</code></pre> <p>Nous rappelons que le nom et les attributs de chaque objet dans ce document JSON sont décrits dans la section précédente dédiée aux concepts (voir le paragraphe sur les générateurs). </p> <p dir="ltr">    2. Enregistrez la configuration dans un fichier texte à côté de l'application téléchargée et exécutez l'application avec le fichier fraîchement créé :</p> <pre> <code>java -jar rst-gen-cli get_started_1.json</code></pre> <p>Après quelques secondes, vous obtenez une séquence de lignes, chacune d'elles étant une entrée de valeur composée d'une date, d'un nom de série et d'une valeur séparée par des points-virgules. Dans cette démonstration, le nom de la série est toujours «temperature». Si vous tracez les valeurs de série avec votre outil préféré, vous devriez obtenir quelque chose comme le graphique suivant :</p> <p><img alt="graph 1" data-entity-type="file" data-entity-uuid="2c975f94-1fef-41d1-855a-a141b6fe0c99" height="208" src="/sites/default/files/inline-images/get_started_1.png" width="346" /></p> <h3><strong>2.2. Vers un modèle plus réaliste</strong></h3> <p>Comme le montre l’illustration ci-dessus, la température varie en permanence, et pour le milieu de chaque mois, elle est conforme aux valeurs spécifiées dans la configuration. Cependant, vous pouvez vous sentir frustré par la régularité des valeurs obtenues : elles augmentent ou diminuent de façon monotone d'un mois à l'autre, ce qui n'est pas un comportement très réaliste. En réalité, au fil des jours, les températures sont globalement plus élevées pendant la journée et plus basses pendant la nuit.</p> <h3><strong>2.2.1. Création d’un nouveau générateur qui exprime la variation de la température sur les heures d'un jour calendaire </strong></h3> <p><strong><img alt="données heures" data-entity-type="file" data-entity-uuid="3757945a-3fc7-4980-acb9-c03fcd19782b" height="456" src="/sites/default/files/inline-images/donn%C3%A9es_heures_0.PNG" width="183" /></strong></p> <p> </p> <pre> <code> { "generators": [ { "name": "monthly-basis", "type": "monthly", "points": { "january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9 } }, { "name": "daily-variation", "type": "daily", "points": { "00:00:00.000": -3, "02:00:00.000": -3.9, "04:00:00.000": -5, "06:00:00.000": -4.6, "08:00:00.000": -5.7, "10:00:00.000": -2.2, "12:00:00.000": 1, "14:00:00.000": 3, "16:00:00.000": 2.3, "18:00:00.000": 0.9, "20:00:00.000": -2.3, "22:00:00.000": -2.7 } }, { "name": "result", "type": "aggregate", "aggregator": "sum", "generators": [ "monthly-basis", "daily-variation" ] } ], "exported": [ { "name": "temperature", "generator": "result", "frequency": 600000 } ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" } </code></pre> <p dir="ltr">Veuillez noter que les valeurs de ce deuxième générateur sont relatives à une valeur arbitraire «neutre». Le tracé de ces valeurs n'est donc pas pertinent. Cependant, si nous additionnons les températures mensuelles avec les températures quotidiennes, nous obtenons un comportement plus complexe. Les séries chronologiques résultantes sont davantages réalistes et résultent en le graphe suivant :</p> <p><img alt="graph 2" data-entity-type="file" data-entity-uuid="f96c4aed-3717-4b8d-8831-0d7b37c8fb5b" height="295" src="/sites/default/files/inline-images/get_started_2.png" width="516" /></p> <p>Sur cette figure, seules les valeurs du 1er et du 2 janvier 2016 sont affichées. Un modèle de base quotidien est facilement observable, tandis que les valeurs sont assez similaires (bien que légèrement différentes) d'un jour à l'autre.</p> <h3><strong>2.2.2.  Création d’un nouveau générateur qui décrit une série chronologique bruitée</strong></h3> <p dir="ltr">Un examen plus approfondi des valeurs générées révèle que la variation de température reste insatisfaisante: pendant un jour civil, les températures varient de manière irréaliste, et deux jours identiques dans des années différentes (par exemple, 2016-02-03 et 2017-02-03) ont la même séquence de valeurs. Dans la vie réelle, la température change légèrement au fil du temps en raison de modifications complexes des conditions atmosphériques.</p> <p>Afin de simuler ces petits changements, nous introduisons un générateur qui décrit une série chronologique bruitée, et nous le sommons avec les générateurs définis précédemment.</p> <pre> <code> { "generators": [ { "name": "monthly-basis", "type": "monthly", "points": { "january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9 } }, { "name": "daily-variation", "type": "daily", "points": { "00:00:00.000": -3, "02:00:00.000": -3.9, "04:00:00.000": -5, "06:00:00.000": -4.6, "08:00:00.000": -5.7, "10:00:00.000": -2.2, "12:00:00.000": 1, "14:00:00.000": 3, "16:00:00.000": 2.3, "18:00:00.000": 0.9, "20:00:00.000": -2.3, "22:00:00.000": -2.7 } }, { "name": "noise", "type": "arma", "model": { "std": 0.2, "c": 0, "seed": 1234 }, "timestep": 300000, "origin": "2016-01-01 00:00:00.000" }, { "name": "result", "type": "aggregate", "aggregator": "sum", "generators": [ "monthly-basis", "daily-variation", "noise" ] } ], "exported": [ { "name": "temperature", "generator": "result", "frequency": 600000 } ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" } </code></pre> <p>Le résultat final est maintenant suffisamment réaliste pour une simulation de base de la température dans le temps. En observant le tracé de ses valeurs sur l’illustration ci-dessous, on peut constater que des tendances claires et réalistes émergent, tandis qu'un bruit réaliste est également clairement présent.</p> <p><img alt="graph 3" data-entity-type="file" data-entity-uuid="57841ff8-95d7-4373-ad92-42028525d15b" height="427" src="/sites/default/files/inline-images/get_started_3.png" width="651" /></p> <p>Vous n’êtes toujours pas satisfait du réalisme des valeurs générées? N'hésitez pas à modifier les paramètres des générateurs décrits dans le fichier de configuration ou à en essayer d'autres (voir le point sur les générateurs dans la section “quelques concepts”).</p> <p> </p> <h2 dir="ltr"><strong><img alt="Image removed." data-entity-type="file" data-entity-uuid="c2797e27-acac-42c9-867b-0da74ebf320b" height="16" src="/sites/default/files/inline-images/camera_0.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" />  La démonstration en vidéo</strong></h2> <p dir="ltr">Voici <a href="https://www.youtube.com/watch?v=IBTTtiZtU1o">le replay du webinaire </a>organisé par le Hub-C le 24 mars 2021 afin de faire une démonstration de l'utilisation de Tsimulus presentée par Mathieu Goeminne, expert en science de données au sein du CETIC. </p> <h2 dir="ltr"><strong><img alt="Image removed." data-entity-type="file" data-entity-uuid="c3f03cf9-540b-4f39-96ca-1aec98d53b0d" height="16" src="/sites/default/files/inline-images/question.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /> Besoin d’une aide supplémentaire ?  </strong></h2> <p dir="ltr">Le Hub-C dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop ? N'hésitez pas à contacter <a href="https://www.hub-charleroi.be/fr/team">un membre du Hub</a>! </p> <p><br /> Vous avez une question spécifique à propos d’une fiche ? Elles sont réalisées par les experts du <a href="https://www.cetic.be/">CETIC</a> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées <a href="https://www.cetic.be/Contact">ici</a>.</p> <p dir="ltr"> </p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Sun, 15 Nov 2020 09:32:09 +0000 laurie 32 at http://hub-creatif.cetic.be TSorage : une plateforme de gestion de données (I)IoT http://hub-creatif.cetic.be/fiche/tsorage-une-plateforme-de-gestion-de-donnees-iiot <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">TSorage : une plateforme de gestion de données (I)IoT </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Stockagededonn%C3%A9es" hreflang="en">Stockage de données</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fri, 11/13/2020 - 11:19</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://hub-creatif.cetic.be/sites/default/files/2022-01/fiche%20Tsorage.pdf" type="application/pdf; length=1180546" title="fiche Tsorage.pdf">Fiche TSorage</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Vous êtes une entreprise à la recherche de technologies fiables, rapides et rentables concernant le déploiement d'applications basées sur des séries chronologiques à grande échelle? TSorage est la solution idéale pour gérer vos flux IoT! </p> <p>Après la description de TSorage et de ses différents atouts, nous évoquons les concepts nécessaires à la compréhension de cette plateforme et expliquons son architecture. Nous terminons en vous présentant un cas d'étude.</p> <h2>Prérequis</h2> <p dir="ltr">Pour la lecture de ce document,</p> <ul dir="ltr"><li> <p>connaissance élémentaire de l’IIoT et de ses enjeux, de Kubernetes, de Cassandra.</p> </li> </ul><p dir="ltr">Pour tester TSorage, </p> <ul><li> <p dir="ltr">un cluster Kubernetes doit être installé, par exemple grâce à <a href="https://kubernetes.io/fr/docs/setup/learning-environment/minikube/">minikube</a>.</p> </li> <li> <p dir="ltr">Maîtrise de HTTP et/ou MQTT, JSON, PromQL, Docker.</p> </li> </ul><h2><img alt="goal" data-entity-type="file" data-entity-uuid="62bbc1fc-7ce5-416e-a0c3-e2f1ae856bd2" height="35" src="/sites/default/files/inline-images/goal2.png" width="35" /> Pour quoi faire? </h2> <p dir="ltr">À l’heure actuelle, les entreprises industrielles font face à une concurrence mondiale de plus en plus agressive. L'Internet industriel des objets (IIoT) est perçu comme une opportunité clé pour renforcer la position de ces entreprises ou pour gagner en compétitivité grâce à une meilleure productivité, à l’amélioration de la qualité des produits et à un meilleur contrôle des processus (voir notre <a href="https://toolbox.hub-charleroi.be/node/28">fiche sur la gestion des réseaux de capteurs</a>).</p> <p>Cependant, la gestion de la vitesse et du volume des données de séries chronologiques fournies par ces IIoT représentent un défi dans lequel la valeur des solutions traditionnelles de gestion des données pour l'industrie tend à diminuer. Le monde industriel recherche des outils et des approches capables de répondre aux nouveaux besoins relatifs à  l'évolutivité, à la disponibilité, au problèmes de réutilisation, d'intégration et de tarification, entre autres.</p> <p>Afin de répondre à ces besoins, nous proposons une solution innovante pour la gestion des séries chronologiques appelée TSorage.</p> <p dir="ltr">TSorage est une plateforme  évolutive et résiliente, qui permet la collecte, l’ingestion, le traitement et le stockage de séries chronologiques (ou séries temporelles) générées par l'IoT (industriel ou non) comme les détecteurs, les sondes et autres capteurs au sens large du terme. </p> <p>Cette plateforme propose une collection de services intégrés pour gérer les séries temporelles, à grande échelle, de tout type, avec un horodatage avec une résolution temporelle d’une milliseconde et avec aussi peu de contraintes techniques que possible. </p> <p>Une série temporelle est définie comme une collection de valeurs, triées par un horodatage associé à chaque valeur. Dans TSorage, une valeur peut représenter n’importe quel concept tant que celui-ci peut être représenté sous forme d’un objet JSON. </p> <h2><img alt="Les Atouts " data-entity-type="file" data-entity-uuid="cd8e2d38-7833-48a6-b924-83938fc09dd3" height="35" src="/sites/default/files/inline-images/stars.png" width="35" /><strong> Les atouts de TSorage</strong></h2> <p>TSorage présente les avantages suivants : </p> <h3 dir="ltr"><strong><img alt="1" data-entity-type="file" data-entity-uuid="3acf6303-6e37-4788-8b28-ffbd9e6814b4" height="22" src="/sites/default/files/inline-images/1_1.png" width="22" /> Une disponibilité et un passage à l’échelle avant tout (évolutivité)! </strong></h3> <p>TSorage s'appuie sur du matériel standard et moyen de gamme (commodity hardware) pour garantir un service évolutif et résilient aux pannes. Étant nativement une solution distribuée et décentralisée, ses capacités peuvent être étendues en ajoutant simplement plus de ressources sur un cluster TSorage. Lorsqu'il est déployé  sur plusieurs sites, TSorage offre des performances de lecture et d'écriture locales tout en prenant en charge de manière transparente la réplication et la synchronisation entre sites, dans le monde entier. Lorsqu'un site se remet d'un problème de connexion, il se re-synchronise automatiquement avec les autres sites du groupe.</p> <h3 dir="ltr"><img alt="2" data-entity-type="file" data-entity-uuid="43b4938b-6e27-4135-8e64-c810b5559e01" height="24" src="/sites/default/files/inline-images/2_1.png" width="24" /> Pas de vendor lock-in mais des technologies standardisées, ouvertes, et pérennes</h3> <p dir="ltr">La technologie évolue extrêmement rapidement, surtout le domaine (I)IoT où de nouvelles façons de gérer et d'exploiter les capteurs émergent chaque année. Afin d'atténuer le risque de faire des choix technologiques qui s'avéreraient inappropriés à l'avenir, TSorage est composé de modules indépendants et basés sur des technologies open source. Avec une telle approche, les mises à jour sont beaucoup plus faciles lorsqu’une technologie vient en remplacer une autre. Tous les services de TSorage sont disponibles via une API REST qui offre un moyen standardisé de s’abstraire des technologies sous-jacentes. Cette plateforme favorise également l'intégration avec n'importe quelle source ou consommateur de données, faisant de TSorage une plateforme de choix pour vos applications IoT.</p> <h3 dir="ltr"><strong><img alt="3" data-entity-type="file" data-entity-uuid="309a92f7-3695-4d01-8c11-3e9cfd679750" height="24" src="/sites/default/files/inline-images/3_1.png" width="24" /> Une flexibilité des données  </strong></h3> <p dir="ltr">La plupart des capteurs mesurent un signal continu, tel qu’une température ou une pression. Cependant, les séries chronologiques couvrent également de nombreux autres types de données, tels que les positions géographiques, les transactions commerciales et pratiquement tous les événements répétitifs. TSorage gère nativement des types de données couramment utilisés et est conçu pour être facilement étendu afin de prendre en charge vos types de données spécifiques. Si vous pouvez représenter vos mesures sous forme d'objets JSON, TSorage peut les gérer!</p> <h3 dir="ltr"><strong><img alt="4" data-entity-type="file" data-entity-uuid="0bc80bc0-af67-4fc8-9732-345b5c16c3f8" height="26" src="/sites/default/files/inline-images/4_0.png" width="26" /> Une adaptation rapide et de manière prévisible </strong></h3> <p dir="ltr">L'ajout d'une nouvelle source de données (comme un capteur) doit être aussi simple et rapide que possible afin de ne pas étouffer toute innovation. Commencez simplement à alimenter TSorage avec un nouveau flux de données et administrez-le dans un second temps, soit via une application Web dédiée, soit par programmation. Chaque valeur peut être soumise avec des propriétés arbitraires (appelées “tags” dans la terminologie TSorage, nous détaillons cela dans la section suivante) qui permettent d'interroger et de gérer plus efficacement les sources de données. En fin de compte, les utilisateurs ne font plus référence à un identifiant de source unique, mais interrogent, comparent et agrègent les sources en fonction de leurs tags.</p> <p>Au fur et à mesure que vous intégrez de plus en plus de sources de données à la solution, vos besoins de traitement augmentent. TSorage s'appuie sur une architecture élastique qui exploite efficacement les ressources de votre infrastructure. Commencez avec un petit nombre de services conteneurisés et étendez-les à volonté en exécutant simplement plus de nœuds de travail.</p> <h3><strong> <img alt="5" data-entity-type="file" data-entity-uuid="2cad068d-9f09-4160-abfc-b10890a98976" height="26" src="/sites/default/files/inline-images/5.png" width="26" /> Une adaptation à votre infrastructure, prête pour le Cloud.</strong></h3> <p dir="ltr">Lorsque TSorage est utilisé pour gérer des données sensibles, le déploiement sur site peut être préféré à l'utilisation d'une solution d'hébergement à distance. Pour d'autres cas d'utilisation, un déploiement sur un Cloud public ou privé est une meilleure option. Dans les deux cas, TSorage est fourni avec des scripts de déploiement et de surveillance qui réduisent la charge de déploiement et de maintenance de la solution.</p> <h2 dir="ltr"><img alt="Image removed." data-entity-type="file" data-entity-uuid="a041bebb-6f07-4cc2-85ae-01ae3fd7625c" height="16" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /><strong> Quelques concepts</strong></h2> <p dir="ltr">Voici les différentes notions nécessaires à la bonne compréhension de la plateforme TSorage :</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Une métrique </strong></p> </li> </ul><p dir="ltr">Concept fondamental de TSorage, une <em>métrique </em>est une entité abstraite associée à des mesures classées chronologiquement. Chaque <em>mesure </em>est également appelée un point de données ou une <em>observation</em>.</p> <p>Dans TSorage, tous les points de données appartenant à une métrique représentent le même phénomène physique, numérique ou logique, et ont donc typiquement le même type de données (bien que ce ne soit pas une limitation technique de la plateforme). Le type de données d'une observation détermine la manière dont TSorage la stocke et la présente, ainsi que les transformations auxquelles cette observation peut être soumise.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les tags</strong></p> </li> </ul><p dir="ltr">Les <em>tags </em>sont des propriétés associées aux points de données. Leur utilité est d'aider l'utilisateur à comprendre la signification d'une observation particulière ou à interroger des points de données ayant une signification particulière. Concrètement, un tag est un texte arbitraire (la <em>clé</em>), associé à une valeur textuelle arbitraire (la <em>valeur</em>). Il y a deux types de tags :</p> <p dir="ltr">               - les tags dynamiques :  ils sont directement attachés à un point de données,</p> <p dir="ltr">               - les tags statiques : ils sont attachés à une métrique et sont automatiquement hérités de tous ses points de données.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les tagsets</strong></p> </li> </ul><p dir="ltr">L'ensemble de tags associé à un point de données est appelé <em>tagset</em>. Un tagset combiné à une métrique constitue une série chronologique dans TSorage.</p> <p dir="ltr">Il existe deux manières typiques d'utiliser les tagsets :</p> <ul dir="ltr"><li> <p> - Une métrique identifie un capteur (au sens large du terme), tandis que les tags clarifient le statut du capteur (nom du fabricant, position géographique, etc.) ou certains des points de données générés (qualité de la donnée, état de fonctionnement, etc.).</p> </li> <li> <p>- La métrique fait référence à une propriété d'intérêt (utilisation du processeur, par exemple), tandis que les tags font référence à l'élément à l'origine des points de données (serveur numéro 5, par exemple).</p> </li> </ul><p dir="ltr">Bien que mélanger ces deux approches soit techniquement possible, nous vous recommandons de choisir l'une d'entre elles et de vous y tenir.</p> <p>Nous vous conseillons d’utiliser les tagsets pour appliquer une politique de sémantique, c’est-à-dire une ontologie. Au lieu de placer des informations dans le nom de la métrique, en utilisant certaines conventions spécifiques à l’entreprise qui sont peu respectées et qui souffrent donc de nombreuses exceptions, le nom de la métrique peut être dénué de sens et la sémantique peut être explicitée à l’aide du tagset.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Organisation hiérarchique</strong></p> </li> </ul><p>Veuillez noter que rien ne vous empêche d'organiser les métriques de manière hiérarchique, comme c’est souvent le cas avec les réseaux de capteurs industriels, car les clés de tag peuvent être utilisées pour définir les niveaux hiérarchiques de l'organisation (Vous en découvrirez davantage via la <a href="https://tsorage.readthedocs.io/en/latest/#tagmanagement">documentation officielle</a> ou via cet<a href="https://www.cetic.be/metadonnees-pour-meilleure-exploitation-reseaux-de-capteurs-industriels"> article de blog</a>).</p> <p dir="ltr">Les séries chronologiques sont organisées de manière hiérarchique :  les points de données et les valeurs agrégées des différentes séries chronologiques ayant la même métrique peuvent être combinés afin de produire une série chronologique plus générique.  Bien que les technologies impliquées dans TSorage sont assez efficaces et passent bien à l’échelle, sachez que l'extraction et la fusion de plusieurs séries chronologiques peuvent mener à une consommation importante des ressources disponibles. Par conséquent, le nombre de séries chronologiques qui doivent être fusionnées pour satisfaire une requête de données doit rester raisonnable afin de maintenir la pression sur la base de données à un niveau acceptable. </p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les messages</strong></p> </li> </ul><p dir="ltr">Afin d'offrir de meilleures performances, les communications TSorage sont basées sur le concept de message. Un message est essentiellement un ensemble de points de données liés à la même série chronologique. En d'autres termes, les messages sont un moyen de soumettre plusieurs points de données à la fois, tout en ne soumettant le nom de la métrique, le tagset dynamique et le type de données qu'une fois par message.</p> <p dir="ltr">Chaque message doit contenir les éléments suivants :</p> <ul><li> <p>- metric :  l'identifiant de la métrique pour  laquelle de nouveaux points de données sont fournis.</p> </li> <li dir="ltr"> <p dir="ltr">- tagset : l’ensemble de tags dynamiques associés à tous les points de données décrits dans le message.</p> </li> <li dir="ltr"> <p dir="ltr">- type : le type de tous les points de données décrits dans le message. Bien que l'utilisation du même type pour tous les points de données relatifs à une métrique soit généralement considérée comme une bonne pratique, le type associé à une métrique (ou à une série chronologique) peut changer d'un message à un autre.</p> </li> <li dir="ltr"> <p dir="ltr">- values :  une liste de points de données. Chaque point de données est constitué de deux éléments : une représentation de l'horodatage associé au point de données et  la valeur du point de données.</p> </li> </ul><p dir="ltr">D'un point de vue technique, un message est représenté par un objet JSON (il peut également être représenté par un message Protobuf, cliquez <a href="https://tsorage.readthedocs.io/en/latest/#protobuf-format">ici </a>pour plus d’infos).</p> <p dir="ltr">Le schéma JSON d’un message TSorage est le suivant :</p> <pre dir="ltr"> { "$id": "be.cetic.tsorage.messageschema.json", "type": "object", "properties": { "metric": { "type": "string" }, "tagset": { "type": "object", "additionalProperties": { "type": "string" } }, "type": { "type": "string" }, "values": { "type": "array", "items": [ { "type": "array", "items": [ { "type": "string", "pattern" :"^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(\\.([0-9]){1,3})?$" }, {} ] } ] } }, "required": [ "metric", "type", "values" ] }</pre> <p dir="ltr">Comme illustré ci-dessus, l'attribut tagset doit être un dictionnaire de chaînes de caractères. Chaque valeur (qui représente un point de données) est un tableau contenant l'horodatage et la valeur du point de donnée, dans cet ordre. L'horodatage est représenté par une chaîne de caractères au format <a href="https://fr.wikipedia.org/wiki/ISO_8601">ISO 8601.</a></p> <p dir="ltr">La valeur elle-même peut être n'importe quel objet JSON valide. Son schéma réel dépend du type de donnée spécifié. Il existe plusieurs types de données proposés d’office par TSorage, et des types de données supplémentaires arbitrairement complexes peuvent être ajoutés à volonté.</p> <p dir="ltr">L'extrait ci-dessous est un exemple de message valide décrit à l'aide du format JSON :</p> <pre dir="ltr"> { "metric": "my-temperature-sensor", "tagset": { "quality": "good", "owner": "myself" }, "type": "tdouble", "values": [ [ "2020-01-02T03:04:05.678", 42.1337 ], [ "2020-01-02T03:04:06.123", 654.72 ] ] }</pre> <h2 dir="ltr"><img alt="Architecture" data-entity-type="file" data-entity-uuid="be200399-d425-4570-9907-c936898bb884" height="33" src="/sites/default/files/inline-images/%C3%A9querre_crayon.png" width="33" /> Architecture</h2> <p dir="ltr">Le projet TSorage est basé sur une architecture modulaire, tous les modules étant conçus pour être exécutés dans des conteneurs Docker distincts. Cela fait de TSorage une solution portable, avec des étapes de déploiement simples et standardisées. Il offre également la possibilité de placer les composants sur différentes machines physiques et virtuelles, le rendant disponible sur une large gamme de plateformes et de services.</p> <p>De plus, le (re)dimensionnement d'une architecture conteneurisée est plus facile, puisqu'un composant peut être déplacé vers une plateforme offrant plus de ressources. Sous certaines conditions, les conteneurs peuvent être dupliqués afin d'augmenter les performances des modules sous-jacents.</p> <p dir="ltr">La figure ci-dessous donne un aperçu de l'architecture TSorage.</p> <p dir="ltr"><img alt="architecture TSorage" data-entity-type="file" data-entity-uuid="81f9ae6e-b58a-4d8b-b93f-d51484bbdeb4" height="412" src="/sites/default/files/inline-images/architecture.PNG" width="782" /></p> <p dir="ltr"><strong><img alt="1" data-entity-type="file" data-entity-uuid="3acf6303-6e37-4788-8b28-ffbd9e6814b4" height="15" src="/sites/default/files/inline-images/1_1.png" width="15" /> La passerelle (Gateway) : </strong>le traitement des séries temporelles commence par la couche Gateway, qui contient des composants ad hoc pour collecter ou extraire des valeurs de séries <img alt="gateway" data-entity-type="file" data-entity-uuid="8bde594b-8be8-44e0-99f4-f30dfcb02b90" height="198" src="/sites/default/files/inline-images/couche%20gateway.PNG" width="203" class="align-right" />chronologiques à partir de diverses sources de données. Cette couche prend en charge diverses technologies de communication industrielles, y compris Modbus, OPC-UA et MQTT. Les bases de données distantes peuvent également être consultées pour la collecte de données historiques. Les valeurs de séries chronologiques collectées sont standardisées et temporairement stockées dans un tampon avant d’être finalement transmises à la couche d'ingestion à l'aide des protocoles HTTP ou MQTT.</p> <p dir="ltr"> </p> <p dir="ltr"><strong><img alt="ingestion" data-entity-type="file" data-entity-uuid="e7cc9862-e463-48aa-8576-39f026af8cb0" height="15" src="/sites/default/files/inline-images/2_2.png" width="15" /> La couche d’ingestion :</strong> le système d’ingestion des données est polyvalent et se base sur des technologies standardisées (HTTP, MQTT, etc.) afin de faciliter l’intégration de TSorage dans votre système informatique! Cette couche est celle du  point d'entrée des valeurs de séries chronologiques : la conformité des messages reçus est vérifiée, les messages non autorisés sont rejetés. À partir de là, les entités décrites sont considérées comme des composants internes de TSorage, ce qui signifie essentiellement qu'elles sont gérées par le cluster TSorage. La couche d’ingestion est composée de différents modules d'interface, chacun d'entre eux fournissant un moyen spécifique pour une source de données de soumettre de nouvelles valeurs de séries chronologiques. Les messages acceptés sont poussés vers un topic Apache Kafka12, qui agit comme une file d'attente de messages pour les services internes de traitement de TSorage. </p> <p dir="ltr"><strong><img alt="processing" data-entity-type="file" data-entity-uuid="c4a7526b-a6f3-4558-b7eb-16c26da0514e" height="16" src="/sites/default/files/inline-images/3_2.png" width="16" /> La couche de traitement (processing) : </strong>à ce stade, un ensemble d’applications de traitement gère le flux de messages Kafka. C’est le langage de requêtes de séries chronologiques de Prometheus, PromQL, qui a été implémenté afin d’exploiter les données collectées. Ce langage permet de réaliser des agrégations temporelles, des combinaisons de valeurs, et de filtrer des données tout en prenant en compte la sémantique associée aux capteurs." Il permet d’effectuer des agrégations et des transformations de données en temps réel.</p> <ul dir="ltr"><li> <p>- Les rollups de données (data rollups) sont des agrégations des valeurs au fil du temps. De cette façon, des analyses de haut niveau couvrant de longues périodes peuvent être effectuées plus facilement. Les rollups facilitent également  l’analyse de séries chronologiques, car leurs valeurs sont alignées chronologiquement.</p> </li> <li> <p>- Les transformations de données sont les modifications des valeurs, des noms et des tags des séries chronologiques, en temps réel et selon des fonctions métier, afin d’enrichir les informations traitées. </p> </li> </ul><p dir="ltr"><strong><img alt="Storage" data-entity-type="file" data-entity-uuid="065bf8df-1e0c-45db-b4a1-f5536ab8abef" height="17" src="/sites/default/files/inline-images/4_1.png" width="17" /> La couche de stockage (storage) : </strong><a href="https://aiven.io/cassandra">Apache Cassandra</a> est utilisé pour stocker des valeurs de séries chronologiques de manière permanente. Cette base de données distribuée et décentralisée offre une évolutivité linéaire, tandis que la réplication automatique des données entre différents sites permet à la solution de rester opérationnelle et de se remettre automatiquement de  la défaillance d’un nœud ou même d’un data center entier. De cette façon, la pérennité, la survie et la disponibilité des données sont assurées. TSorage offre également une résilience aux pannes grâce à un mécanisme qui assure la migration automatique des différentes fonctionnalités de la solution d’un serveur défaillant vers un autre fonctionnel, garantissant ainsi une haute disponibilité des différents services.</p> <p dir="ltr">Le modèle de données conçu respecte la nature des données manipulées et des requêtes typiques qui se rapportent à une série chronologique ainsi qu’à un intervalle de temps précis. En plus des valeurs de séries chronologiques, la base de données stocke également les métadonnées qui aident à atteindre plus efficacement les données souhaitées. Par exemple,  une liste de toutes les partitions associées à une métrique particulière, et ayant un tagset particulier, est tenue à jour afin d’améliorer le temps de réponses des requêtes.</p> <p dir="ltr"><strong><img alt="hub" data-entity-type="file" data-entity-uuid="4ce73316-92e7-4d1c-bcc5-5dcf4e9964a2" height="18" src="/sites/default/files/inline-images/5_0.png" width="18" /> La couche Hub : </strong>il s’agit des services qui aident l’utilisateur à interagir avec les autres couches.  Les services déployés dépendent des besoins de l’utilisateur mais ils incluent généralement la gestion des tags, le requêtage de données et les représentations de ces dernières sous forme de tableaux de bord. <a href="https://grafana.com/">Grafana</a> est l’outil proposé pour concevoir et déployer facilement des tableaux de bord, alimentés par les valeurs de séries temporelles ingérées, sous la forme de visualisation <a href="https://scadavis.io/">SCADA</a>. La couche Hub offre une implémentation de <a href="https://prometheus.io/docs/prometheus/latest/querying/basics/">PromQL</a>, le langage de requête de séries chronologiques de Prometheus. Les outils d’analyse et de visualisation supportant ce langage s’intègrent donc aisément avec TSorage.</p> <h2 dir="ltr"><img alt="Exemple" data-entity-type="file" data-entity-uuid="20a6f00a-708c-401e-868c-82514bdde002" height="43" src="/sites/default/files/inline-images/note_list_icon_124054_0.png" width="43" /> Un exemple de cas d’étude</h2> <p dir="ltr">Le CETIC a évalué TSorage dans le cadre du projet de recherche industrielle <a href="//www.cetic.be/ARTEMTEC-en ">SW-ARTEMTEC</a>. L’objectif était de fournir des outils analytiques modernes et avancés issus des technologies liées au big data et à la réalité augmentée afin d’améliorer la maintenance des sites industriels répartis géographiquement dans le monde entier. </p> <p>Le partenaire du CETIC, <a href="https://www.safran-aero-boosters.com/fr">Safran Aero Boosters</a> (SAB), a apporté des flux données provenant de divers capteurs mesurant l’activité d’équipement de test aérospatial. Ces flux de données ont été enregistrés et traités avec TSorage afin de détecter toute anomalie. Le résultat attendu de ce projet est le développement de services innovants répondant aux attentes du marché de SAB.</p> <h2><img alt="conclusion" data-entity-type="file" data-entity-uuid="c50903ee-f184-4410-8b7d-ea7bd1e74247" height="34" src="/sites/default/files/inline-images/pieds_2.png" width="34" /> Pour aller plus loin...</h2> <p dir="ltr">La plateforme TSorage a été développée par le <a href="https://www.cetic.be/">CETIC</a> dans le cadre de l’Industrie 4.0, avec l’ambition de développer un portefeuille d’outils de gestion de données modernes et conformes aux enjeux introduits par l’Internet Industriels des Objets. </p> <p dir="ltr">Vous trouverez la documentation technique <a href="http://doc.tsorage.io">ici</a>, n’hésitez pas à contacter le CETIC pour plus d'informations.</p> <p dir="ltr">Vous pouvez également générer des séries temporelles paramétrables grâce à <a href="http://hub-creatif.ext.cetic.be/fiche/tsimulus-un-generateur-de-series-chronologiques-realistes-open-source">TSimulus </a>pour ensuite les stocker et les visualiser grâce à TSorage. </p> <p dir="ltr">Notez que TSorage peut aussi être déployé à l’aide de <a href="https://fadi.cetic.be">FADI</a>, une plateforme “cloud native” dédiée au Big Data.</p> <p dir="ltr"><strong> </strong></p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Fri, 13 Nov 2020 10:19:18 +0000 laurie 41 at http://hub-creatif.cetic.be Introduction au Data processing http://hub-creatif.cetic.be/fiche/introduction-au-data-processing <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Introduction au Data processing</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/Stockagededonn%C3%A9es" hreflang="en">Stockage de données</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fri, 11/06/2020 - 14:29</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://hub-creatif.cetic.be/sites/default/files/2021-06/Fiche%20introduction%20au%20Data%20processing.pdf" type="application/pdf; length=2887108">Fiche introduction au Data processing.pdf</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p><span><span><span><span><span><span>Data lake, ETL, Data warehouse, Batch processing, Data engineer… tous ces termes sont pour vous du charabia ?  Pas de panique ! Cette fiche vous propose de découvrir tout ce jargon qui appartient en réalité au </span></span></span></span></span></span><span><span><span><span><em><span><strong>Data processing</strong>, </span></em></span></span></span></span><span><span><span><span><span><span>le processus qui <strong>traite vos données </strong>pour les<strong> transformer en information utile</strong> et en <strong>valeur ajoutée</strong> pour votre entreprise.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Découvrez également ce qu’est le<strong><em> Data engineering</em></strong>, la discipline en lien, entre autres, avec la <strong>qualité de vos données</strong> ainsi que le<strong> processus ETL</strong>, détaillé étape par étape, et ses spécificités par rapport au <strong>Big Data</strong>. Ensuite, nous examinerons les particularités de deux modes de stockage de données bien connus que sont les </span></span></span></span></span></span><strong><span><span><span><span><em><span>Data lakes</span></em></span></span></span></span></strong><span><span><span><span><span><span> et les </span></span></span></span></span></span><span><span><span><span><em><span><strong>Data warehouses</strong>. </span></em></span></span></span></span></p> <p><span><span><span><span><span><span>Vous verrez qu'il n’y a pas de solution unique qui soit meilleure que les autres, cela dépend de votre entreprise et surtout de vos besoins. </span></span></span></span></span></span></p> <h2><strong> <strong><img alt="pour quoi faire" data-entity-type="file" data-entity-uuid="dc02ec25-2902-439b-a035-9a05da935a01" height="45" src="/sites/default/files/inline-images/goal2_8.png" width="45" /></strong>  Pour quoi faire ? </strong></h2> <p><span><span><span><span><span><span>A l’heure actuelle, notre société est bouleversée par ce qu’on appelle la  </span></span></span></span></span></span><span><span><span><span><em><span>transformation numérique</span></em></span></span></span></span><span><span><span><span><span><span> : les entreprises intègrent de plus en plus de technologies numériques au sein de leurs activités afin d'accroître leur productivité, leur croissance, leurs innovations,... et donc leur compétitivité. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Les entreprises ont maintenant accès à une multitude de données provenant de sources diverses et variées (vidéos, réseaux sociaux, sites consultés, formulaires complétés,...). Ces données doivent être correctement interprétées pour fournir des informations utiles à l’entreprise, c’est-à-dire des informations qui permettent d’analyser la situation passée et présente afin de prendre des décisions pertinentes concernant le futur (résoudre des problèmes, proposer de nouveaux produits,...). Un des grands défis du Big Data est donc de savoir que faire dire aux données et dans quel but ?  Comment les interpréter correctement afin de les comprendre, de les analyser, de leur ajouter une valeur et les utiliser pour améliorer l’expérience utilisateur ? </span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Le Data Processing </span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Le </span></span></span></span></span></span><span><span><span><span><em><span>data processing </span></em></span></span></span></span><span><span><span><span><span><span> est ce qu’on appelle le traitement des données au sens large, c’est le processus qui va transformer vos données brutes en informations exploitables. Le traitement des données se compose des étapes suivantes : </span></span></span></span></span></span></p> <ol><li> <p><span><span><span><span><span><span>1. La collecte des données </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>2. La préparation des données (</span></span></span></span></span></span><span><span><span><span><em><span>pre-processing</span></em></span></span></span></span><span><span><span><span><span><span>) : on améliore leur qualité.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>3. L’importation: Les données propres sont ensuite saisies dans leur destination.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>4. Le traitement des données (</span></span></span></span></span></span><span><span><span><span><em><span>processing</span></em></span></span></span></span><span><span><span><span><span><span>) : les données sont transformées, par exemple à l’aide d’algorithmes d'apprentissage automatique.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>5. La sortie et l’interprétation  : il s’agit du résultat. Les données sont converties, lisibles et exploitables car elles fournissent de l’information utile. Elles sont présentées sous forme de graphiques, images, vidéos,... </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>6. Le stockage : les  données transformées sont stockées pour être utilisées ultérieurement. </span></span></span></span></span></span></p> </li> </ol><img alt="Data processing" data-entity-type="file" data-entity-uuid="b74ee6b7-8cf0-4db3-bb5c-24379292f338" height="304" src="/sites/default/files/inline-images/data%20processing.PNG" width="325" class="align-center" /><p><span><span><span><span><span><span>Ces étapes forment un cycle qui va  vous permettre d’extraire de la valeur de vos données.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Le Data Engineering</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Bien que certains considèrent que les origines du </span></span></span></span></span></span><span><span><span><span><em><span>Data Engineering</span></em></span></span></span></span><span><span><span><span><span><span> (ou l’</span></span></span></span></span></span><span><span><span><span><em><span>Ingénierie des données </span></em></span></span></span></span><span><span><span><span><span><span> en français) remontent à 1980, voire à 1950, c’est à partir des années 2000 et l’avènement du Big Data que cette discipline devient vraiment nécessaire, et à partir de 2010 que ce terme est popularisé.  </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Souvent confondue avec la </span></span></span></span></span></span><span><span><span><span><em><span>Science des données</span></em></span></span></span></span><span><span><span><span><span><span> (</span></span></span></span></span></span><span><span><span><span><em><span>Data Science</span></em></span></span></span></span><span><span><span><span><span><span> en anglais), l’</span></span></span></span></span></span><span><span><span><span><em><span>ingénierie des données</span></em></span></span></span></span><span><span><span><span><span><span> vise à mettre en place les outils et infrastructures nécessaires et adéquats pour l’analyse, la préparation et le traitement des données volumineuses afin d’en garantir leur pertinence, leur qualité et d'éliminer celles qui sont inutiles. L’</span></span></span></span></span></span><span><span><span><span><em><span>ingénieur des données</span></em></span></span></span></span><span><span><span><span><span><span> (</span></span></span></span></span></span><span><span><span><span><em><span>Data Engineer</span></em></span></span></span></span><span><span><span><span><span><span>) fournit les données traitées et prêtes à l’usage aux </span></span></span></span></span></span><span><span><span><span><em><span>Data Scientists</span></em></span></span></span></span><span><span><span><span><span><span> (</span></span></span></span></span></span><span><span><span><span><em><span>experts en Science des données</span></em></span></span></span></span><span><span><span><span><span><span>) qui effectueront de l’</span></span></span></span></span></span><span><span><span><span><em><span>analyse prédictive</span></em></span></span></span></span><span><span><span><span><span><span>, du </span></span></span></span></span></span><span><span><span><span><em><span>Machine Learning</span></em></span></span></span></span><span><span><span><span><span><span> ou du </span></span></span></span></span></span><span><span><span><span><em><span>Data Mining</span></em></span></span></span></span><span><span><span><span><span><span> à partir de celle-ci.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Le</span></span></span></span></span></span><span><span><span><span><em><span> data engineering</span></em></span></span></span></span><span><span><span><span><span><span> répond aux 5V caractéristiques du Big data : afin d’obtenir davantage de connaissances sur ses clients, ses ventes, ses stratégies marketing, ses besoins,... et donc d’obtenir un avantage concurrentiel sur le marché (<em>véracité</em> et <em>valeur</em>), une entreprise doit ingérer énormément de données (<em>volume</em>) provenant de sources diverses (<em>variété</em>) et les traiter rapidement (<em>vitesse</em>). </span></span></span></span></span></span></p> <img alt="Big Data" data-entity-type="file" data-entity-uuid="d3ea1ba1-e135-44b6-8359-34e13f190b46" height="304" src="/sites/default/files/inline-images/6_2.png" width="315" class="align-center" /><h2><span><span><span><span><span><span>Le processus ETL</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Apparu dans les années 1970, un </span></span></span></span></span></span><span><span><span><span><em><span>ETL </span></em></span></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><em><span>Extraction-Transform-Load</span></em></span></span></span></span><span><span><span><span><span><span>) est le processus utilisé par les </span></span></span></span></span></span><span><span><span><span><em><span>ingénieurs de données (Data Engineer)</span></em></span></span></span></span><span><span><span><span><span><span> pour transformer vos multiples données brutes en informations commerciales exploitables. L’ETL facilite la migration de gros volumes de données provenant de sources multiples vers un emplacement centralisé afin d’en obtenir une vue globale et unifiée, c’est de l’</span></span></span></span></span></span><span><span><span><span><em><span>intégration de données</span></em></span></span></span></span><span><span><span><span><span><span> (</span></span></span></span></span></span><span><span><span><span><em><span>data integration</span></em></span></span></span></span><span><span><span><span><span><span>). Cela se fait en 3 phases : l’extraction, la transformation et le chargement.</span></span></span></span></span></span></p> <img alt="processus ETL" data-entity-type="file" data-entity-uuid="c9d71486-b3ac-4d9b-a725-b4ed76f7938f" height="340" src="/sites/default/files/inline-images/divers%20%284%29_0.png" width="791" class="align-center" /><h3><img alt="1" data-entity-type="file" data-entity-uuid="b086cb73-adcd-439c-b8a1-a634c003604e" height="23" src="/sites/default/files/inline-images/1_4.png" width="23" /><span><span><span><span><span><span> Extraction (</span></span><em><span>extract</span></em></span></span></span></span><span><span><span><span><span><span>)</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>La première phase, l'extraction, est celle de la collecte de données. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Aujourd’hui, il y a une multiplication des flux de données et de leur quantité.  Davantage complexes, les données proviennent de sources multiples (de votre smartphone, de votre montre connectée, des systèmes d'entreprise, des API, de n’importe quel capteur, d’outils de marketing, de bases de données de transactions, de </span></span></span></span></span></span><span><span><span><span><em><span>data lake</span></em></span></span></span></span><span><span><span><span><span><span> et de </span></span></span></span></span></span><span><span><span><span><em><span>data warehouse</span></em></span></span></span></span><span><span><span><span><span><span>,...) et peuvent donc avoir n’importe quelle structure et format. Il existe 3 types de structure de données : </span></span></span></span></span></span></p> <ol><li> <p><span><span><span><span><span><span>1. Les </span></span></span></span></span></span><span><span><span><span><em><span>données non structurées : </span></em></span></span></span></span><span><span><span><span><span><span>elles ne sont absolument pas organisées et sont sous forme brute absolue. Ce sont par exemple des e-mails, des posts de réseaux sociaux, des Powerpoint, des vidéos, des images… </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>2. Les </span></span></span></span></span></span><span><span><span><span><em><span>données semi-structurées </span></em></span></span></span></span><span><span><span><span><span><span>: elles sont partiellement organisées. Elles sont plus facilement gérables que les données non structurées car elles possèdent des propriétés organisationnelles cohérentes et définies telles que des métadonnées ou des balises sémantiques. Cependant, leur structure n’est pas rigide et elles peuvent toutefois contenir des incohérences ou des variabilités. </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>3. Les </span></span></span></span></span></span><span><span><span><span><em><span>données structurées</span></em></span></span></span></span><span><span><span><span><span><span> : ce sont les données organisées dans un référentiel formaté et qui sont structurées en cellules ou en colonnes. Elles peuvent être générées par des machines mais aussi par des humains. Elles dépendent d'une base de données relationnelle ou d'un schéma et sont donc rigides. </span></span></span></span></span></span></p> </li> </ol><p><span><span><span><span><span><span>La qualité des données importées va donc dépendre de la fiabilité des sources et de leur structure. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Les types de chargement des données </span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Concernant le Big data, il y a deux types de chargement des données assez répandus pour traiter rapidement les grands volumes de données. Le choix de l’un d’eux  dépend de votre cas d’utilisation.</span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>1. Le mode Batch (par lots) </span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Le mode de traitement des données par lots/batch est celui qui est mobilisé traditionnellement pour l’approche ETL : il s’agit de traiter un grand volume de données en une seule fois, sur une période donnée (un traitement des données à la demande). Il faut attendre la fin de la phase de collecte de données (extraction et chargement) pour débuter celle de traitement qui se fait par lots de données (la “</span></span></span></span></span></span><span><span><span><span><em><span>fenêtre de batch</span></em></span></span></span></span><span><span><span><span><span><span>”). Il y a donc une période de latence entre le moment où vos données apparaissent dans la couche de stockage et le moment où elles sont disponibles dans les outils d’analyse et de reporting. Vous ne devez que peu intervenir dans cette phase de traitement car les tâches s’exécutent les unes après les autres selon les priorités déterminées et sans interruption. Vous devez juste indiquer le nombre de données à atteindre (la limite) ou le moment précis  où l’ETL par lots doit être exécuté (toutes les 24 heures, tous les 3 jours,...). </span></span></span></span></span></span></p> <p><br /><span><span><span><span><span><span>Le mode </span></span></span></span></span></span><span><span><span><span><em><span>Batch </span></em></span></span></span></span><span><span><span><span><span><span>est souvent utilisé lorsqu’il faut réaliser  des calculs complexes qui prennent du temps comme des facturations, des commandes ou encore pour mettre à jour le profil utilisateur d’un site de ventes et proposer des articles personnalisés par exemple. </span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Mode Batch" data-entity-type="file" data-entity-uuid="569b258a-47ad-4171-80a6-17b4943dea26" height="436" src="/sites/default/files/inline-images/mode%20batch.PNG" width="735" /><figcaption>Illustration du mode Batch provenant de <a href="https://www.upsolver.com/blog/batch-stream-a-cheat-sheet">Upsolver</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p> </p> <h3><span><span><span><span><span><span>2. Le mode Stream</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Avec le mode Stream, les données sont traitées en continu, c’est-à-dire au fur et à mesure de leur arrivée dans la couche de stockage afin de vous permettre d’accéder rapidement aux données et d’y réagir le plus vite possible une fois un événement détecté. Contrairement au mode </span></span></span></span></span></span><span><span><span><span><em><span>batch</span></em></span></span></span></span><span><span><span><span><span><span>, le flux est quasi en temps réel et les systèmes ne doivent pas stocker de grands volumes de données. </span></span></span></span></span></span></p> <p><br /><span><span><span><span><span><span>Le mode </span></span></span></span></span></span><span><span><span><span><em><span>Stream </span></em></span></span></span></span><span><span><span><span><span><span>est surtout conseillé lorsque vous devez détecter des évènements et y répondre rapidement, comme par exemple la surveillance des services, la cybersécurité, l’analyse des comportements, la détection de fraudes, la disponibilité d’un produit en stock, ...  </span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Mode Stream" data-entity-type="file" data-entity-uuid="40016444-7d68-4c45-9003-6645e4d5625d" height="435" src="/sites/default/files/inline-images/mode%20stream.PNG" width="604" /><figcaption>Illustration du mode Stream provenant de <a href="https://www.upsolver.com/blog/batch-stream-a-cheat-sheet">Upsolver</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h2><img alt="2" data-entity-type="file" data-entity-uuid="49e4f7b0-c866-4e55-8b91-a51b99b26657" height="24" src="/sites/default/files/inline-images/2_5.png" width="24" /> <span><span><span><span><span><span>Transformation (</span></span><em><span>transform</span></em></span></span></span></span><span><span><span><span><span><span>)</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>La seconde phase concerne le traitement apporté aux données collectées. Il se fait grâce à l’exécution d’algorithmes de machine learning et dépend des utilisations prévues des données (celles-ci doivent être déterminées à l’avance). </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Le traitement vise à structurer les données, à les convertir et à les homogénéiser en modifiant leur format, en les enrichissant, en les complétant, en les nettoyant,... Car pour pouvoir croiser, comparer et analyser des données, il faut que celles-ci soient comparables !  Le traitement va donc rendre les données brutes interprétables selon les besoins (les finalités déterminées des données) et les transformer en information commerciale exploitable. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Un stockage intermédiaire et temporaire</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Très souvent, les données extraites lors de la première phase sont stockées temporairement dans une </span></span></span></span></span></span><span><span><span><span><em><span>zone de transit </span></em></span></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><em><span>staging</span></em></span></span></span></span><span><span><span><span><span><span> </span></span></span></span></span></span><span><span><span><span><em><span>area</span></em></span></span></span></span><span><span><span><span><span><span>). Cette zone se trouve dans l’ETL utilisé et sert d'intermédiaire entre les sources de données et la cible des données (la destination des données). Vous pouvez y faire toutes les manipulations nécessaires à la transformation de vos données. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Les transformations des données</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Pour analyser vos données, il faut d’abord les préparer, c’est-à-dire qu’il faut effectuer différentes transformations sur celles-ci en fonction de vos besoins. Plus vos sources de données sont de faible qualité, plus vous aurez des transformations et du nettoyage à effectuer pour éviter d’avoir des erreurs telles que des données manquantes, redondantes, une erreur lexicale et/ou  de format,... </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Voici quelques exemples de nettoyages et de transformations possibles de vos données pour que celles-ci soient cohérentes, exploitables et fiables : </span></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><span><span>- Le </span></span></span></span></span></span><span><span><span><span><em><span>mappage des données</span></em></span></span></span></span><span><span><span><span><span><span> : il s’agit de faire correspondre deux modèles de données, les champs des données extraites à ceux associés dans la destination. </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- La </span></span></span></span></span></span><span><span><span><span><em><span>vérification </span></em></span></span></span></span><span><span><span><span><span><span>de la cohérence du format des données  et leur </span></span></span></span></span></span><span><span><span><span><em><span>conversion </span></em></span></span></span></span><span><span><span><span><span><span>si nécessaire (des unités de mesure, des dates et heures,...)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- La </span></span></span></span></span></span><span><span><span><span><em><span>déduplication </span></em></span></span></span></span><span><span><span><span><span><span>: c’est l’identification et la suppression des enregistrements présents en plusieurs exemplaires (autrement dit les doublons).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- Le </span></span></span></span></span></span><span><span><span><span><em><span>filtrage </span></em></span></span></span></span><span><span><span><span><span><span>: c’est la sélection de certains enregistrements selon des règles.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><em><span>- Tri </span></em></span></span></span></span><span><span><span><span><span><span>des données par ordre croissant ou décroissant. </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- La </span></span></span></span></span></span><span><span><span><span><em><span>jointure </span></em></span></span></span></span><span><span><span><span><span><span>des données : il s’agit de lier des données provenant de sources différentes.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- Le </span></span></span></span></span></span><span><span><span><span><em><span>fractionnement </span></em></span></span></span></span><span><span><span><span><span><span>d’une colonne unique en plusieurs colonnes.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- L’</span></span></span></span></span></span><span><span><span><span><em><span>agrégation </span></em></span></span></span></span><span><span><span><span><span><span>: regroupement de différentes données. </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>- La </span></span></span></span></span></span><span><span><span><span><em><span>récapitulation </span></em></span></span></span></span><span><span><span><span><span><span>: calculs pour obtenir des valeurs totales. </span></span></span></span></span></span></p> </li> </ul><h2><img alt="3" data-entity-type="file" data-entity-uuid="a1f68734-f91c-4c55-985a-5a9ca9625ece" height="24" src="/sites/default/files/inline-images/3_4.png" width="24" /> <span><span><span><span><span><span>Chargement (load)</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>La phase de chargement est la phase où vos données traitées et structurées sont chargées et stockées dans la destination cible ;  un système centralisé qui peut être une base de données, un fichier, un serveur mais qui est bien souvent un </span></span></span></span></span></span><span><span><span><span><em><span>datawarehouse </span></em></span></span></span></span><span><span><span><span><span><span>(voir section ci-dessous)</span></span></span></span></span></span><span><span><span><span><em><span>.</span></em></span></span></span></span></p> <h3><span><span><span><span><span><span>Les avantages</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>En résumé, un ETL vous permet d’avoir :</span></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><span><span> Une </span></span></span></span></span></span><span><span><span><span><em><span>migration </span></em></span></span></span></span><span><span><span><span><span><span>et une </span></span></span></span></span></span><span><span><span><span><em><span>intégration </span></em></span></span></span></span><span><span><span><span><span><span>automatisées et rapides de grandes quantités de données provenant de systèmes disparates.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Un</span></span></span></span></span></span><span><span><span><span><em><span> référentiel de données</span></em></span></span></span></span><span><span><span><span><span><span> : les données sont centralisées dans un endroit unique, ce qui vous apporte une meilleure accessibilité à celles-ci.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Les </span></span></span></span></span></span><span><span><span><span><em><span>transformations complexes apportées</span></em></span></span></span></span><span><span><span><span><span><span> unifient vos données (même format,...) et vous apportent une vue globale de vos ressources. De plus, ces processus de traitement sont réutilisables ! </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Un </span></span></span></span></span></span><span><span><span><span><em><span>contrôle </span></em></span></span></span></span><span><span><span><span><span><span>sur l’ensemble de vos ressources : vos données sont de meilleure qualité (les traitements les rendent fiables). </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Une </span></span></span></span></span></span><span><span><span><span><em><span>synchronisation </span></em></span></span></span></span><span><span><span><span><span><span>de vos applications et donc une </span></span></span></span></span></span><span><span><span><span><em><span>actualisation </span></em></span></span></span></span><span><span><span><span><span><span>instantanée de vos données (vous pouvez y accéder en temps réel).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Vous pouvez tirer </span></span></span></span></span></span><span><span><span><span><em><span>profit </span></em></span></span></span></span><span><span><span><span><span><span>de vos données traitées.</span></span></span></span></span></span></p> </li> </ul><h3><span><span><span><span><span><span>Quelques outils clouds open source</span></span></span></span></span></span></h3> <ul><li> <p><a href="https://www.talend.com/fr/products/talend-open-studio/%C2%B5"><span><span><span><span><span><span><span><span>Talend Open studio</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span></p> </li> <li> <p><a href="https://scriptella.org/"><span><span><span><span><span><span><span><span>Scriptella </span></span></span></span></span></span></span></span></a></p> </li> <li> <p><a href="https://www.linuxlinks.com/ketl/"><span><span><span><span><span><span><span><span>Ketl</span></span></span></span></span></span></span></span></a> </p> </li> </ul><h3><span><span><span><span><span><span>Le processus ELT</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Le </span></span></span></span></span></span><span><span><span><span><em><span>processus d’intégration ETL</span></em></span></span></span></span><span><span><span><span><span><span> est traditionnellement utilisé mais avec les nombreuses avancées technologiques, cela évolue. Il existe aussi le processus </span></span></span></span></span></span><span><span><span><span><em><span>ELT (Extraction - Loading - Transform</span></em></span></span></span></span><span><span><span><span><span><span>) : dans ce processus, vos données brutes sont extraites des sources de données et sont directement chargées vers votre système cible (très souvent un </span></span></span></span></span></span><span><span><span><span><em><span>Data lake</span></em></span></span></span></span><span><span><span><span><span><span>, voir la définition dans la section suivante), sans les transformer en fonction de vos besoins métier et sans passer par une zone de transit. Le nettoyage et les transformations des données se font donc après, dans le système/plateforme cible,  quand vous devez les utiliser. </span></span></span></span></span></span></p> <img alt="processus ELT" data-entity-type="file" data-entity-uuid="56bdd3aa-b698-49ac-b9ab-385afeac0192" height="342" src="/sites/default/files/inline-images/5_2.png" width="793" class="align-center" /><h3><span><span><span><span><span><span>Les avantages </span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>En résumé, un </span></span></span></span></span></span><span><span><span><span><em><span>ELT </span></em></span></span></span></span><span><span><span><span><span><span>vous permet d’avoir :</span></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><span><span>une </span></span></span></span></span></span><span><span><span><span><em><span>extraction </span></em></span></span></span></span><span><span><span><span><span><span>et un </span></span></span></span></span></span><span><span><span><span><em><span>chargement plus </span></em></span></span></span></span><span><span><span><span><span><span>rapides de vos données dans le système cible vu qu’il n’y a pas toute l’étape de transformation. </span></span></span></span></span></span></p> </li> </ul><ul><li> <p><span><span><span><span><span><span>une plus grande </span></span></span></span></span></span><span><span><span><span><em><span>flexibilité </span></em></span></span></span></span><span><span><span><span><span><span>et  </span></span></span></span></span></span><span><span><span><span><em><span>facilité </span></em></span></span></span></span><span><span><span><span><span><span>de stockage de nouvelles données non structurées notamment. </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>un temps de réflexion plus long concernant la détermination des données à transformer et à analyser. </span></span></span></span></span></span></p> </li> </ul><h2><span><span><span><span><span><span>Les modes de stockages et de centralisation de vos données </span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Il existe deux modes de stockage et de centralisation de données qui sont souvent confondus : les </span></span></span></span></span></span><span><span><span><span><em><span>Data lakes</span></em></span></span></span></span><span><span><span><span><span><span> et les </span></span></span></span></span></span><span><span><span><span><em><span>Data warehouses</span></em></span></span></span></span><span><span><span><span><span><span>. Ayant chacun des caractéristiques qui leurs sont propres, le choix d’utiliser l’un ou l’autre va surtout dépendre des besoins spécifiques de votre entreprise. </span></span></span></span></span></span></p> <ol><li> <h3><span><span><span><span><span><span>1. Les </span></span></span></span></span></span><span><span><span><span><em><span>Data lakes </span></em></span></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><em><span>lacs de données</span></em></span></span></span></span><span><span><span><span><span><span>) </span></span></span></span></span></span></h3> </li> </ol><p><span><span><span><span><span><span>Un </span></span></span></span></span></span><span><span><span><span><em><span>Data lake </span></em></span></span></span></span><span><span><span><span><span><span>est un référentiel de données qui vous permet de stocker “en vrac” vos données originales et brutes collectées, et d’y accéder rapidement avant leur traitement (la phase de transformation). Vous pouvez donc y trouver des </span></span></span></span></span></span><span><span><span><span><em><span>données non structurées</span></em></span></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><span><em><span>semi-structurées</span></em></span></span></span></span><span><span><span><span><span><span> ou </span></span></span></span></span></span><span><span><span><span><em><span>structurées</span></em></span></span></span></span><span><span><span><span><span><span>. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>En stockant n’importe quel type de données quelles que soient leur nature et leur origine, vous pouvez découvrir de nouvelles questions/problématiques/hypothèses auxquelles vous ne pensiez pas auparavant… C’est d’ailleurs pour cela que les </span></span></span></span></span></span><span><span><span><span><em><span>Data lakes </span></em></span></span></span></span><span><span><span><span><span><span>sont surtout utilisés par des </span></span></span></span></span></span><span><span><span><span><em><span>Data scientists</span></em></span></span></span></span><span><span><span><span><span><span> et </span></span></span></span></span></span><span><span><span><span><em><span>Data engineers</span></em></span></span></span></span><span><span><span><span><span><span> dans le cadre de </span></span></span></span></span></span><span><span><span><span><em><span>Machine learning</span></em></span></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><span><em><span>intelligence artificielle</span></em></span></span></span></span><span><span><span><span><span><span> et </span></span></span></span></span></span><span><span><span><span><em><span>modélisation prédictive</span></em></span></span></span></span><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>L’</span></span></span></span></span></span><span><span><span><span><em><span>ELT</span></em></span></span></span></span><span><span><span><span><span><span> est la solution à privilégier si vous disposez de lacs de données car ce processus ingère des données non structurées, contrairement à l’ETL qui transforme les données brutes en données structurées. </span></span></span></span></span></span></p> <ol start="2"><li> <h3><span><span><span><span><span><span>2. Les </span></span></span></span></span></span><span><span><span><span><em><span>Data warehouses</span></em></span></span></span></span><span><span><span><span><span><span>  (</span></span></span></span></span></span><span><span><span><span><em><span>entrepôts de données</span></em></span></span></span></span><span><span><span><span><span><span>) </span></span></span></span></span></span></h3> </li> </ol><p><span><span><span><span><span><span>Les </span></span></span></span></span></span><span><span><span><span><em><span>Data warehouses</span></em></span></span></span></span><span><span><span><span><span><span> sont des bases de données où sont stockées les vues agrégées des données ingérées. Ils ne sont pas connectés aux sources de données directement : ces dernières passent par une solution </span></span></span></span></span></span><span><span><span><span><em><span>ETL </span></em></span></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><em><span>Extract, Transform and Load</span></em></span></span></span></span><span><span><span><span><span><span>) qui extrait les données pertinentes de sources de données (éventuellement un </span></span></span></span></span></span><span><span><span><span><em><span>data lake</span></em></span></span></span></span><span><span><span><span><span><span>), les transforme et les charge dans le </span></span></span></span></span></span><span><span><span><span><em><span>Data warehouse</span></em></span></span></span></span><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Les Data Warehouses sont surtout utilisés par des analystes, managers et des utilisateurs finaux pour analyser leurs données à l’aide de métriques, reportings et chiffres clés, en vue de prendre plus facilement des décisions.</span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Comparaison entre un Data lake et un Data warehouse</span></span></span></span></span></span></h3> <img alt="comparaison data lake et data warehouse" data-entity-type="file" data-entity-uuid="3db0434b-df9b-49e3-9961-a5901c3ddf58" height="284" src="/sites/default/files/inline-images/comparaison%20data%20lake%20data%20warehouse.PNG" width="579" class="align-center" /><h2><span><span><span><span><span><span>Besoin d’une aide supplémentaire ?</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Le </span></span></span></span></span></span><a href="https://www.hub-charleroi.be/fr/team"><span><span><span><span><span><span><span><span>Hub-C</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop? N'hésitez pas à contacter </span></span></span></span></span></span><a href="https://www.hub-charleroi.be/fr/team"><span><span><span><span><span><span><span><span>un membre du Hub</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> ! </span></span></span></span></span></span></p> <p><br /><span><span><span><span><span><span>Vous avez une question spécifique à propos d’une fiche? Elles sont réalisées par les experts du </span></span></span></span></span></span><a href="https://www.cetic.be/"><span><span><span><span><span><span><span><span>CETIC</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées </span></span></span></span></span></span><a href="https://www.cetic.be/Contact"><span><span><span><span><span><span><span><span>ici</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Fri, 06 Nov 2020 13:29:29 +0000 laurie 48 at http://hub-creatif.cetic.be FADI, un Framework pour l'Automatisation du Déploiement et de l'orchestration d'Infrastructures conteneurisées http://hub-creatif.cetic.be/fiche/fadi-un-framework-pour-lautomatisation-du-deploiement-et-de-lorchestration-dinfrastructures <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">FADI, un Framework pour l&#039;Automatisation du Déploiement et de l&#039;orchestration d&#039;Infrastructures conteneurisées</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/05/2020 - 11:35</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://hub-creatif.cetic.be/sites/default/files/2021-08/Fiche%20FADI.pdf" type="application/pdf; length=4208569" title="Fiche FADI.pdf">Fiche FADI</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p><span><span><span><span><span><span>Vous disposez de nombreuses données (des mails, des pdfs, des communications vocales, des données provenant de vos capteurs, ...) mais ne savez pas comment les exploiter et les capitaliser ? Vous désirez faire un prototype/POC avec une brique logicielle à moindre frais ? Vous recherchez  une solution technologique "neutre" car vous craignez l'enfermement propriétaire/le vendor lock-in ?</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Que vous soyez une grande entreprise ou une plus petite, FADI va vous intéresser : il s’agit d’une solution peu coûteuse en termes d'infrastructure et d'achat de licences. Avec cette suite, vous pouvez en effet procéder étape par étape dans le développement et l’opération de vos prototypes et produits  : les intégrer, déployer, ... </span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Prérequis</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Avoir une  connaissance des technologies liées aux conteneurs (Docker, Kubernetes). </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Savoir écrire des lignes de commandes.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Disposer d’une station de travail récente ou d’un espace de test Kubernetes.</span></span></span></span></span></span></p> <h2><strong><img alt="Image removed." data-entity-type="file" data-entity-uuid="36f45317-7161-465a-987e-51d76edda56c" height="16" src="/sites/default/files/inline-images/goal2_5.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" />  Pour quoi faire ? </strong></h2> <p><span><span><span><span><span><span>Pour faire simple, </span></span></span></span></span></span><a href="https://fadi.presentations.cetic.be/#/2"><span><span><span><span><span><span><span><span>FADI</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> est un framework personnalisable selon vos besoins, qui assemble et configure les outils à votre place afin de faciliter et d’automatiser l’intégration, le déploiement et le suivi de vos applications. </span></span></span></span></span></span></p> <p><br /><span><span><span><span><span><span>À l’origine, FADI est une plateforme dédiée au Big Data qui rassemble des applications </span></span></span></span></span></span><span><span><span><span><em><span>cloud native </span></em></span></span></span></span><span><span><span><span><span><span>et qui se base sur des outils open source éprouvés. Cette plateforme rend le déploiement de solutions Big Data mais aussi celui des piles logicielles plus simples, portables et évolutifs sur diverses infrastructures (clouds privés et publics).</span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Fadi Illustration" data-entity-type="file" data-entity-uuid="e4e8b245-8bb6-48c0-987f-a718a8a5e78c" height="416" src="/sites/default/files/inline-images/fadi%20framework.PNG" width="508" /><figcaption>Illustration des divers composants de <a href="https://fadi.cetic.be/">FADI </a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h2><img alt="concepts" data-entity-type="file" data-entity-uuid="a041bebb-6f07-4cc2-85ae-01ae3fd7625c" height="37" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792.png" width="37" /><span><span><span><span><span><span>  Quelques concepts ...</span></span></span></span></span></span></h2> <h3><span><span><span><span><span><span>Une application “Cloud Native”</span></span></span></span></span></span></h3> <p><br /><span><span><span><span><span><span>Voici une description succincte des caractéristiques d’une application “</span></span></span></span></span></span><a href="https://www.scalair.fr/blog/cloud-native-cest-quoi"><span><span><span><span><em><span><span><span>cloud</span></span></span></em></span></span></span></span><span><span><span><span><span><span><span><span> </span></span></span></span></span></span></span></span><span><span><span><span><em><span><span><span>native</span></span></span></em></span></span></span></span></a><span><span><span><span><span><span>”, et donc des applications assemblées par la plateforme FADI : </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>       <img alt="1" data-entity-type="file" data-entity-uuid="b086cb73-adcd-439c-b8a1-a634c003604e" height="23" src="/sites/default/files/inline-images/1_4.png" width="23" /> Une architecture basée sur les </span></span></span></span></span></span><strong><span><span><span><span><em><span>services </span></em></span></span></span></span></strong><span><span><span><span><span><span>et les </span></span></span></span></span></span><strong><span><span><span><span><em><span>microservices</span></em></span></span></span></span></strong><span><span><span><span><span><span>. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Un </span></span></span></span></span></span><a href="https://www.talend.com/fr/resources/guide-microservices/"><span><span><span><em><span><span><span>microservice</span></span></span></em></span></span></span></a><span><span><span><span><em><span> </span></em></span></span></span></span><span><span><span><span><span><span>est </span></span></span></span></span></span><span><span><span><span><em><span> </span></em></span></span></span></span><span><span><span><span><span><span>une architecture pour les applications :  les services y sont individuels, indépendants, et spécifiques et, une fois assemblés, constituent l’application. Chaque service peut donc être déployé, mis à jour et géré de façon parfaitement autonome.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>       <img alt="2" data-entity-type="file" data-entity-uuid="49e4f7b0-c866-4e55-8b91-a51b99b26657" height="24" src="/sites/default/files/inline-images/2_5.png" width="24" /> Une communication entre les services (internes et externes) basée sur les </span></span><strong><em><span>API </span></em></strong></span></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><span><em><span>Application Programming Interface</span></em></span></span></span></span></span><span><span><span><span><span><span>, interface de programmation d’application).</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>       <img alt="3" data-entity-type="file" data-entity-uuid="a1f68734-f91c-4c55-985a-5a9ca9625ece" height="24" src="/sites/default/files/inline-images/3_4.png" width="24" /> Une infrastructure basée sur les </span></span><strong><em><span>conteneurs </span></em></strong></span></span></span></span><span><span><span><span><span><span>(ce qui facilite la gestion des microservices). </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Un </span></span></span></span></span></span><a href="https://azure.microsoft.com/fr-fr/overview/what-is-a-container/"><span><span><span><em><span><span><span>conteneur</span></span></span></em></span></span></span></a><span><span><span><span><span><span> est un package logiciel léger et indépendant,  une sorte d’enveloppe virtuelle ou d’environnement isolé, qui regroupe tous les éléments nécessaires au bon fonctionnement et à la distribution d’une application : le code, les fichiers de configuration, l’environnement d’exécution, les libraires et toutes les dépendances requises pour l’exécution,... L’ensemble du contenu du conteneur se trouve dans une </span></span></span></span></span></span><span><span><span><span><em><span>image conteneur</span></em></span></span></span></span><span><span><span><span><span><span>, c’est un fichier de code qui contient l’application/service, ses dépendances et sa configuration. Les intérêts des </span></span></span></span></span></span><span><span><span><span><em><span>conteneurs </span></em></span></span></span></span><span><span><span><span><span><span>sont de virtualiser les applications logicielles en utilisant le système d’exploitation de leur hôte et de pouvoir les actualiser sans réorganiser la totalité de l’application. De cette façon, les ressources sont très facilement flexibles et portables d’un système à un autre. Les conteneurs n'intègrent pas leur propre système d’exploitation, ils sont donc très légers et facilement  déployables dans d’autres environnements avec peu, voire aucune modification!  Vous pouvez mettre à jour un seul outil, séparément des autres; vous pouvez installer la dernière version de Grafana et garder Jupyterhub à sa première version par exemple. </span></span></span></span></span></span></p> <p><a href="https://www.docker.com/"><span><span><span><em><span><span><span>Docker</span></span></span></em></span></span></span></a><span><span><span><em><span> </span></em></span></span></span><span><span><span><span><span><span>est la technologie de conteneurisation la plus utilisée. Elle vous permet de </span></span></span></span></span></span><span><span><span><span><span><span>créer aisément vos conteneurs et vos applications basées sur ceux-ci, et est </span></span></span></span></span></span><span><span><span><span><span><span>très facile à déployer. Il s’agit d’une solution open source fonctionnant sous Linux </span></span></span></span></span></span><span><span><span><span><span><span>mais également Windows Server. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>       <img alt="4" data-entity-type="file" data-entity-uuid="877ade13-6c23-406d-984e-e40cd771125d" height="25" src="/sites/default/files/inline-images/4_3.png" width="25" /> La méthode de développement logiciel </span></span></span><strong><em><span>DevOps</span></em></strong></span></span></span><span><span><span><span><span><span><strong> </strong>(contraction de Développement et Opération).</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Les objectifs de cette méthode sont de permettre, grâce à la communication et à la collaboration entre les développeurs et les responsables des opérations IT, la fluidification des processus, l’accélération de la résolution d'incidents ainsi que de la  livraison de nouvelles fonctionnalités avec un niveau de qualité élevé. </span></span></span></span></span></span></p> <p><a href="https://www.netapp.com/fr/devops-solutions/what-is-devops/"><span><span><span><span><span><span><span><span>Les pratiques DevOps lors du cycle de vie de l’application</span></span></span></span></span></span></span></span><span><span><span><span><span><span> </span></span></span></span></span></span></a><span><span><span><span><span><span><span>se caractérisent par une automatisation et une surveillance accrues de toutes les étapes de la création du logiciel. Cela concerne</span></span></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><em><span>L'intégration continue</span></em></span></span></span></span><span><span><span><span><span><span> : il s’agit d'exécuter des tests automatisés afin de vérifier chaque modification du code source pour en garantir sa qualité. Les problèmes d’intégration sont facilement détectés si vous réalisez correctement la planification de votre développement, la compilation, l’intégration, les tests de votre code et la gestion de vos livrables (les </span></span></span></span></span></span><span><span><span><span><em><span>artefacts </span></em></span></span></span></span><span><span><span><span><span><span>prêts à être déployés).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><em><span>Le déploiement continu</span></em></span></span></span></span><span><span><span><span><span><span> : une fois les tests validés lors de l’intégration continue, ils peuvent être mis en production. Le déploiement continu est  l’automatisation de la mise en production des applications lors de chaque modification. </span></span></span></span></span></span></p> </li> </ul><p><span><span><span><span><span><span>Pour en savoir plus sur les applications </span></span></span></span></span></span><span><span><span><span><em><span>cloud natives,</span></em></span></span></span></span><span><span><span><span><span><span> cliquez </span></span></span></span></span></span><a href="https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition"><span><span><span><span><span><span><span><span>ici</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. Quant à la méthode DevOps, vous pouvez consulter les sites suivants : </span></span></span></span></span></span><a href="https://www.appvizer.fr/magazine/services-informatiques/dev-applications/devops"><span><span><span><span><span><span><span><span>Appvizer</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, </span></span></span></span></span></span><a href="https://www.netapp.com/fr/devops-solutions/what-is-devops/,"><span><span><span><span><span><span><span><span>Netapp</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, </span></span></span></span></span></span><a href="https://www.padok.fr/devops-tout-savoir#:~:text=La%20m%C3%A9thodologie%20DevOps%20consiste%20donc,de%20nouvelles%20features%20plus%20rapidement"><span><span><span><span><span><span><span><span>Padok</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Un orchestrateur de conteneurs</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Alors qu’utiliser un ou deux conteneurs peut être facilement gérable et contrôlable, en utiliser plus d’une dizaine peut rapidement se révéler être une tâche fastidieuse, notamment à cause des multiples dépendances et communications entre outils. Un </span></span></span></span></span></span><a href="https://www.redhat.com/fr/topics/containers/what-is-container-orchestration"><span><span><span><span><em><span><span><span>orchestrateur de conteneurs </span></span></span></em></span></span></span></span></a><span><span><span><span><span><span>permet de gérer ces communications en automatisant le déploiement, la gestion, la mise à l’échelle et la mise en réseau des conteneurs. L’orchestrateur ne crée pas les conteneurs (pour cela vous devez utiliser une plateforme de conteneurs comme Docker, cité ci-dessus) mais permet de les gérer. </span></span></span></span></span></span></p> <p><br /><span><span><span><span><span><span>L'orchestrateur de conteneurs le plus connu et mature actuellement est open source et développé par google, il s’agit de </span></span></span></span></span></span><a href="https://kubernetes.io/fr/"><span><span><span><strong><em><span><span><span>Kubernetes</span></span></span></em></strong></span></span></span></a><span><span><span><span><span><span>. Très utilisé dans le monde industriel, il se déploie sur toutes les architectures disponibles (dans le cloud privé, dans du bare metal, c’est-à-dire une serveur dédié physique, dans des clouds publiques,...) et peut fonctionner sur tout type d'infrastructure. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Une pile logicielle</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Une </span></span></span></span></span></span><a href="https://www.techopedia.com/definition/27268/software-stack#:~:text=A%20software%20stack%20is%20a,that%20work%20as%20a%20set."><span><span><span><span><span><span><span><span>pile logicielle</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> est un groupe de logiciels fonctionnant selon un ordre spécifique et permettant le développement de sites et applications en offrant, ensemble, un service. </span></span></span></span></span></span></p> <h2><img alt="Image removed." data-entity-type="file" data-entity-uuid="cd8e2d38-7833-48a6-b924-83938fc09dd3" height="16" src="/sites/default/files/inline-images/stars.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /><span><span><span><span><span><span>  Les atouts de FADI</span></span></span></span></span></span><img alt="Fadi Atouts" data-entity-type="file" data-entity-uuid="5d0fe303-52b5-4ec2-bcec-91eff90811f4" height="340" src="/sites/default/files/inline-images/Figures-sources-Ecosystem.png" width="362" class="align-right" /></h2> <p><span><span><span><span><span><span>Pourquoi FADI est-elle une plateforme très intéressante ?</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Parce vous pouvez développer entièrement vos prototypes et produits ! </span></span></span></span></span></span></p> <h3><strong>          <strong><img alt="1" data-entity-type="file" data-entity-uuid="918d4267-6cad-4bbd-9400-dd22db7dbd9d" height="25" src="/sites/default/files/inline-images/1_3.png" width="25" /></strong>  </strong><span><span><span><span><span><span>Les déploiements sont automatisés et simplifiés</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Déployer chaque outil à la fois prend du temps et rend la maintenance plus compliquée ; l’automatisation des déploiements va vous simplifier la vie !   </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Pour plus de </span>fiabilité</span></span></span></span></span><span><span><span><span><span><span>, vous pouvez prévoir et programmer vos déploiements au moment désiré. Vous pouvez également les contrôler en effectuant une sorte de versionning :  par exemple, vous pouvez réaliser un premier déploiement et faire un correctif pour le second, revenir au premier déploiement,... De cette façon, FADI vous assure une certaine </span></span></span></span></span></span><span><span><span><span><span>traçabilité<span>.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Les déploiements sont simplifiés grâce à des </span>assemblages de services préconfigurés </span></span></span></span></span><span><span><span><span><span><span>basés sur le logiciel </span></span></span></span></span></span><a href="https://helm.sh/"><span><span><span><span><span><span><span>Helm</span></span></span></span></span></span></span></a><span><span><span><span><span><span>, appelés des </span></span></span></span></span></span><span><span><span><em><span>Charts.</span></em></span></span></span><span><span><span><span><span><span> Il s’agit de packages (ou templates) de ressources Kubernetes sous forme de scripts d’installation (des automatisations d’installation) : ces packages sont des sélections d’outils open source pertinents selon le cas d’utilisation/le scénario qui vous intéresse. Par exemple, si vous vous demandez comment installer </span></span></span></span></span></span><a href="http://nifi.apache.org/"><span><span><span><span><span><span><span><span>Apache Nifi</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> sur Kubernetes, vous trouverez toute la démarche </span></span></span></span></span></span><a href="https://github.com/cetic/helm-nifi"><span><span><span><span><span><span><span><span>ici</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. Vous trouverez les autres Helm Charts produites et maintenues par le CETIC dans ce </span></span></span></span></span></span><a href="https://github.com/cetic/helm-charts"><span><span><span><span><span><span><span><span>dépôt GitHub</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> (attention, ils ne concernent pas tous FADI ! ). </span></span></span></span></span></span></p> <h3><strong>          <strong><img alt="2" data-entity-type="file" data-entity-uuid="692b8b0c-5c0f-4339-81a6-fd6a69c03b19" height="25" src="/sites/default/files/inline-images/2_4.png" width="25" /></strong> </strong><span><span><span><span><span><span>Sa portabilité</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>FADI est une solution </span></span></span></span></span></span><span><span><span><span><span>portable</span></span></span></span></span><span><span><span><span><span><span>, c’est-à-dire que vous pouvez la déployer un peu partout : dans un cloud privé, dans un cloud public, sur site, de manière hybride, etc.  Une chose est certaine, là où vous pouvez déployer Kubernetes, vous pouvez déployer FADI.</span></span></span></span></span></span></p> <h3><strong>          <strong><img alt="3" data-entity-type="file" data-entity-uuid="0c5b391e-3bed-4a5b-bc0b-1fa519b2aaee" height="26" src="/sites/default/files/inline-images/3_3.png" width="26" /></strong>  </strong><span><span><span><span><span><span>Sa maintenabilité</span></span></span></span></span></span></h3> <p><span> </span><span><span><span><span><span><span>FADI s'appuie sur la méthodologie </span>DevOps : <span>vous n’aurez pas à vous soucier de grand-chose étant donné que l’installation, l’intégration, les essais, les déploiements continus et les mises à jour de FADI sont automatisés ! La maintenance étant beaucoup plus facile, le système sera toujours à jour au niveau des dépendances.</span></span></span></span></span></span><span> </span></p> <h3><strong>          <strong><img alt="4" data-entity-type="file" data-entity-uuid="3b7eb146-74f3-460a-a387-28dfb7bfee05" height="27" src="/sites/default/files/inline-images/4_2.png" width="27" /></strong>  </strong><span><span><span><span><span><span>Une solution qui vous correspond</span></span></span></span></span></span></h3> <p><span><span><span><span><span>Personnalisable <span>de bout en bout, FADI s’</span></span></span></span></span></span><span><span><span><span><span>adapte</span></span></span></span></span><span><span><span><span><span><span> à vos besoins. Que cela soit le type d’infrastructure (cloud ou pas), de base de données, etc., FADI offre une sélection d’outils qui vous permet de gérer vos données...  Vous pouvez également y </span></span></span></span></span></span><span><span><span><span><span>intégrer </span></span></span></span></span><span><span><span><span><span><span>très facilement vos propres solutions existantes ou de nouveaux services. De plus, FADI étant une solution se basant sur des technologies </span></span></span></span></span></span><span><span><span><span><span>open source<span> matures, vous pouvez toujours la modifier ! </span></span></span></span></span></span></p> <h3><strong>          <strong><img alt="5" data-entity-type="file" data-entity-uuid="11d9fb6d-fcd9-4ff0-b91c-1f81dc573d22" height="28" src="/sites/default/files/inline-images/5_1.png" width="28" /></strong>  </strong><span><span><span><span><span><span>Ses traitements des données</span></span></span></span></span></span></h3> <p><span> <span><span><span><span><span>FADI propose deux modes d’intégration (</span></span><span><span>voir la fiche </span></span></span></span></span></span><span><span><span><span><em><span>Introduction au data processing</span></em></span></span></span></span><span><span><span><span><span><span> pour plus d’informations) :</span></span></span></span></span></span></p> <p><strong>         </strong><span><span><span><span><span><span>Le mode </span></span></span><em><span>batch  </span></em><span><span><span>pour le traitement d’un grand volume de données en une seule fois, sur une période donnée (traitement par lot). </span></span></span></span></span></span></p> <p><strong>         </strong><span><span><span><span><span><span>Le mode </span></span></span><em><span>stream pour le traitement des données en continu</span></em></span></span></span></p> <p><span> </span><span><span><span><span><span><span>L’avantage d’avoir ces deux modes de traitement est que FADI répond à de nombreux use-cases différents : </span></span></span></span></span></span></p> <p><strong>         </strong><span><span><span><span><span><span>Le mode </span></span><em><span>Batch </span></em><span><span>est souvent utilisé lorsqu’il faut réaliser des facturations, commandes, rapports,... </span></span></span></span></span></span></p> <p><strong>         </strong><span><span><span><span><span><span>Le mode </span></span><em><span>Stream </span></em><span><span>est surtout conseillé lorsque vous devez détecter des évènements et y répondre rapidement, comme par exemple la surveillance des services, la cybersécurité, l’analyse des comportements, la détection de fraudes,...</span></span></span></span></span> </span><span> </span><span> </span><strong><span><span><span><span><span><span> </span></span></span></span></span></span></strong><span> </span></p> <h3><strong>          <strong><img alt="6" data-entity-type="file" data-entity-uuid="631f1f43-7a38-46e7-b43f-d034cd138e94" height="28" src="/sites/default/files/inline-images/6_0.png" width="28" /></strong>  </strong><span><span><span><span><span><span>Ses solutions de stockage de données </span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>FADI propose deux manières de stocker et de centraliser vos données :</span></span></span></span></span></span></p> <p><strong>       </strong>  1) <span><span><span><span><span><span>Les </span></span></span><em><span>Data Lakes</span></em><strong><em><span> </span></em></strong></span></span></span><span><span><span><span><span><span>(</span></span></span></span></span></span><span><span><span><span><em><span>lacs de données</span></em></span></span></span></span><span><span><span><span><span><span>) qui sont le référentiel de données vous permettant de stocker “en vrac” les données brutes originales ingérées (audit, relecture, expériences, etc.). Le mode de traitement des données </span></span></span></span></span></span><span><span><span><span><em><span>par lots</span></em></span></span></span></span><span><span><span><span><span><span>/</span></span></span></span></span></span><span><span><span><span><em><span>batch </span></em></span></span></span></span><span><span><span><span><span><span>est préféré pour ce genre d’approche (traitements des données à la demande).</span></span></span></span></span></span></p> <p><strong>       </strong>  2) <span><span><span><span><span><span>Les </span></span></span><em><span>Data Warehouse</span></em><span><span> <span> (</span></span></span></span></span></span><span><span><span><span><em><span>entrepôts de données</span></em></span></span></span></span><span><span><span><span><span><span>) qui sont des bases de données où sont stockées les vues agrégées des données ingérées. Le mode de traitement des données </span></span></span></span></span></span><span><span><span><span><em><span>Stream </span></em></span></span></span></span><span><span><span><span><span><span>est préféré pour cette approche (traitement au moment de l’ingestion des données). </span></span></span></span></span></span></p> <h3><strong>          <strong><img alt="7" data-entity-type="file" data-entity-uuid="6fc7b583-0f9c-4076-927d-ad055d2db126" height="26" src="/sites/default/files/inline-images/7_0.png" width="26" /></strong>  </strong><span><span><span><span><span><span>Monitoring et Data visualisation</span></span></span></span></span></span></h3> <p><span> </span><span><span><span><span><span><span>Il est extrêmement important, à l’heure actuelle, que vous sachiez si vos infrastructures IT sont opérationnelles et sécurisées. Les outils de supervision (</span></span><em><span>monitoring</span></em></span></span></span></span><span><span><span><span><span><span>) sont précieux pour vos </span></span></span></span></span></span><span><span><span><span><span>stratégies de contrôle, d’observation et de décisions<span>.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>FADI utilise des</span> outils open-source de monitoring<span> afin de vous permettre de suivre l’état de santé de vos systèmes, collecter vos données en temps réel et déclencher des alertes dès qu’un problème est rencontré.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>L’aspect open-source de ces outils répond aux défis du</span></span></span></span></span></span><span><span><span><span><span> </span></span></span></span></span><a href="https://www.journaldunet.com/solutions/dsi/1459455-quatre-solutions-open-source-de-monitoring-d-infrastructures/"><span><span><span><span><span><span><span>DevOps</span></span></span></span></span></span></span></a><span><span><span><span><span><span> : le fait de pouvoir remonter n’importe quel type de métriques provenant des applications, et même les indicateurs métiers, répond aux besoins actuels des entreprises en termes de </span></span></span></span></span></span><span><span><span><span><span>rapidité</span></span></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><span><span>flexibilité </span></span></span></span></span><span><span><span><span><span><span>et de </span></span></span></span></span></span><span><span><span><span><span>maîtrise des coûts<span>. </span></span></span></span></span></span><span> </span></p> <p><span><span><span><span><span><span>FADI vous permet donc de monitorer vos données en configurant vous-même </span>vos systèmes d’alertes. </span></span></span></span></span><span><span><span><span><span><span>Comme vous pouvez le constater ci-dessous, les outils proposés servent aussi à faire de la </span></span></span></span></span></span><span><span><span><span><span>data visualisation</span></span></span></span></span><span><span><span><span><span><span> : c’est-à-dire à représenter et à visualiser les données collectées sous forme de graphique, diagramme et/ou tableaux de bord (</span></span></span></span></span></span><span><span><span><span><em><span>dashboards</span></em><span><span>) afin de pouvoir prendre rapidement des décisions. Les outils proposés initialement par FADI sont :</span></span></span></span></span></span></p> <p>             <a href="https://grafana.com/"><span><span><span><span><span><span><span><span>Grafana</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span><span><span><span><strong><span><span>:  </span></span></strong></span></span></span><span><span><span><span><span><span>il s’agit d’un outil orienté data visualisation avec lequel vous pouvez réaliser des tableaux de bords et des graphiques à partir de différentes sources de données, et principalement à partir de séries temporelles.</span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Illustration de Grafana provenant de la présentation de FADI" data-entity-type="file" data-entity-uuid="7d3893bd-0894-482c-bfa2-d199d9184d2d" height="366" src="/sites/default/files/inline-images/monitoring%20donn%C3%A9es2%20.PNG" width="505" /><figcaption>Illustration de Grafana provenant de la présentation de <a href="https://fadi.presentations.cetic.be/#/">FADI</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p>             <a href="https://prometheus.io/"><span><span><span><span><span><span><span><span>Prometheus</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> : ce logiciel est parfait pour la surveillance de vos métriques ! Il les collecte et les stocke sous forme de séquences temporelles. Bien que des représentations visuelles soient possibles, Prometheus est plutôt utilisé pour la collecte, l’analyse de données ainsi que la génération d’alertes. N’incluant pas de tableaux de bord par défaut, préférez </span></span></span></span></span></span><a href="https://grafana.com/"><span><span><span><span><span><span><span><span>Grafana</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> pour la visualisation de vos données ( il prend en charge l’intégration de Prometheus). Si vous désirez plus d’informations sur Prometheus et le monitoring, nous vous conseillons </span></span></span></span></span></span><a href="https://www.infoq.com/fr/articles/prometheus-monitor-applications-at-scale/"><span><span><span><span><span><span><span><span>ce lien</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. </span></span></span></span></span></span></p> <p>             <a href="https://www.zabbix.com/"><span><span><span><span><span><span><span><span>Zabbix</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> : cette plateforme distribuée est relativement facile d’utilisation pour les personnes ayant peu de connaissances techniques. Elle vous permet de collecter et de gérer vos données, de détecter un problème et d’envoyer des notifications selon des règles personnalisables.   Vous pouvez également visualiser et analyser l’état de santé de l’infrastructure IT. Tout comme Prometheus, vous pouvez également interfacer Zabbix avec Grafana.</span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Illustration d’un dashboard provenant de Zabbix" data-entity-type="file" data-entity-uuid="4eac62ab-c54c-41e1-b780-1a1bc725f3a1" height="442" src="/sites/default/files/inline-images/zabbix.PNG" width="525" /><figcaption>Illustration d’un dashboard provenant de <a href="https://www.zabbix.com/server_monitoring">Zabbix</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p>             <a href="https://superset.apache.org/"><span><span><span><span><span><span><span><span>Apache Superset</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> : cet outil open source a été initialement développé par Airbnb. Il fonctionne en tant qu’application web sur les principaux navigateurs internet et permet d’explorer et visualiser vos données très intuitivement sous forme de graphiques, feuilles de calculs et tableaux de bord.</span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="Illustration d’un dashboard provenant de Apache Superset" data-entity-type="file" data-entity-uuid="c4190020-55cd-4cd3-9773-3c647e4997c0" height="297" src="/sites/default/files/inline-images/Superset.PNG" width="474" /><figcaption>Illustration d’un dashboard provenant de <a href="https://superset.apache.org/">Apache Superset</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p><span><span><span><span><span><span>N’oubliez pas que vous pouvez également intégrer très facilement </span></span></span></span></span></span><span><span><span><strong><span><span>vos propres outils</span></span></strong></span></span></span><span><span><span><span><span><span> dans FADI si vous préférez.</span></span></span></span></span></span></p> <p> </p> <h2><span><span><span><span><span><span><img alt="perspective" data-entity-type="file" data-entity-uuid="dc2940b9-d769-4576-9fda-d6a0d39bbdc0" height="37" src="/sites/default/files/inline-images/search_loupe_1.png" width="37" />  Perspectives</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Actuellement (mai 2021),  le CETIC a prévu plusieurs développements à faire pour FADI ; notamment l’ajout d’un wizard pour configurer encore plus facilement FADI et travailler sur les aspects de sécurité (DevSecOps). </span></span></span></span></span></span></p> <h2><img alt="Image removed." data-entity-type="file" data-entity-uuid="20a6f00a-708c-401e-868c-82514bdde002" height="16" src="/sites/default/files/inline-images/note_list_icon_124054_0.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /><span><span><span><span><span><span>  Exemple de cas d'étude</span></span></span></span></span></span></h2> <h3><span><span><span><span><span><span>Le monitoring des bureaux du CETIC</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>L’objectif de ce cas d’utilisation était de fournir des informations (tableaux de bord et alertes) en fonction des données des capteurs placés au sein du bâtiment du CETIC (température, CO2, ...). Dans cet exemple, les mesures de température des capteurs ont été ingérées, stockées affichées dans un tableau de bord assez simple. Rendez-vous sur </span></span></span></span></span></span><a href="https://fadi.cetic.be/USERGUIDE.html"><span><span><span><span><span><span><span><span>ce guide utilisateur FADI</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> pour accéder au tutoriel de cet exemple, vous y apprendrez comment :</span></span></span></span></span></span></p> <p><span><span><span><span><span>       1) Installer <span>FADI via </span></span></span></span></span></span><a href="https://fadi.cetic.be/INSTALL.html"><span><span><span><span><span><span><span><span>ce lien</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span><span><span>. </span></span></span></span></span></span></span></span></p> <p><span><span><span><span><span>       2) Préparer <span>la base de données pour stocker les mesures avec </span></span></span></span></span></span><a href="https://www.postgresql.org/"><span><span><span><span><span><span><span><span>PostgreSQL </span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>(qui est à la fois entrepôt de données et base de données).</span></span></span></span></span></span></p> <p><span><span><span><span><span>       3) Ingérer <span>les mesures des capteurs grâce à </span></span></span></span></span></span><a href="https://nifi.apache.org/"><span><span><span><span><span><span><span><span>Apache Nifi</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, depuis la source de données (un fichier csv dans ce cas) et les stocker dans la base de données.</span></span></span></span></span></span></p> <p><span><span><span><span><span>       4) Afficher <span>les tableaux de bord et configurer des alertes à partir des données ingérées et stockées dans l'entrepôt de données avec </span></span></span></span></span></span><a href="https://grafana.com/"><span><span><span><span><span><span><span><span>Grafana</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <p><span><span><span><span><span>       5) Explorez <span>les données avec </span></span></span></span></span></span><a href="https://superset.apache.org/"><span><span><span><span><span><span><span><span>Superset</span></span></span></span></span></span></span></span></a><span><span><span><span><span>. </span></span></span></span></span></p> <p><span><span><span><span><span>       6) Traiter <span>les données en utilisant </span></span></span></span></span></span><a href="https://jupyter.org/"><span><span><span><span><span><span><span><span>Jupyter</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> comme interface web pour les explorer à l'aide de notebooks et </span></span></span></span></span></span><a href="https://spark.apache.org/"><span><span><span><span><span><span><span><span>Apache Spark</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, un framework de calcul distribué, comme moteur d’analyse pour le traitement de grands ensembles de données.</span></span></span></span></span></span></p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="monitoring des bureaux du CETIC" data-entity-type="file" data-entity-uuid="8629c953-9b22-4594-bcf6-74c861928752" height="359" src="/sites/default/files/inline-images/fadi_monitoring%20bureaux%20cetic.PNG" width="657" /><figcaption>Illustration du processus de monitoring des bureaux du CETIC provenant du<a href="https://fadi.cetic.be/USERGUIDE.html"> guide utilisateur de FADI</a></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h2><span><span><span><span><span><span>Autres exemples de cas d’étude</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Cette liste de projets représente d’autres exemples de cas d’étude où le framework FADI a été utilisé : </span></span></span></span></span></span></p> <p>     <a href="https://www.cetic.be/ARTEMTEC-fr"><span><span><span><span><span><span><span><span>Artemtec</span></span></span></span></span></span></span></span></a></p> <p>     <a href="https://www.cetic.be/GRINDING-40-fr"><span><span><span><span><span><span><span><span>Grinding 4.0</span></span></span></span></span></span></span></span></a></p> <p>     <a href="https://www.cetic.be/CloudMedia-fr"><span><span><span><span><span><span><span><span>UserMEDIA</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>/  </span></span></span></span></span></span><a href="https://www.cetic.be/CloudMedia?lang=fr%2F"><span><span><span><span><span><span><span><span>CloudMedia </span></span></span></span></span></span></span></span></a></p> <p>     <a href="https://www.cetic.be/Newtech4steel-en"><span><span><span><span><span><span><span><span>NewTech4Steel </span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>(European RFCS project)</span></span></span></span></span></span></p> <p>     <a href="https://www.cetic.be/Quality-40-fr"><span><span><span><span><span><span><span><span>Quality4.0 </span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>(European RFCS project)</span></span></span></span></span></span></p> <p>     <a href="https://www.cetic.be/BigData-MA-fr"><span><span><span><span><span><span><span><span>BigData@MA</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> (European, “Manunet” project)</span></span></span></span></span></span></p> <p>     <a href="https://www.cetic.be/Autosurveillance"><span><span><span><span><span><span><span><span>Autosurveillance</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> (European RFCS project)</span></span></span></span></span></span></p> <p>     <a href="https://www.cetic.be/QuadRide-fr"><span><span><span><span><span><span><span><span>QuadRide </span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>(Wallon CWALity project)</span></span></span></span></span></span></p> <h2><strong><img alt="Image removed." data-entity-type="file" data-entity-uuid="c2797e27-acac-42c9-867b-0da74ebf320b" height="47" src="/sites/default/files/inline-images/camera_0.png" width="47" />  La démonstration en vidéo</strong></h2> <p><span><span><span><span><span><span>Voici </span></span></span></span></span></span><a href="https://www.youtube.com/watch?v=x9TBdh6ZdJM"><span><span><span><span><span><span><span><span>le replay du webinaire</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> organisé par le Hub-C le 6 juillet 2021 afin de faire une démonstration de Fadi, un outil qui rend les technologies Big Data plus accessibles. La présentation est réalisée par Faiez Zalila, </span></span></span></span></span></span><span><span><span><span><span><span>expert en Ingénierie logicielle basée sur les modèles et systèmes informatiques distribués au sein du CETIC.</span></span></span></span></span></span></p> <h2><img alt="Image removed." data-entity-type="file" data-entity-uuid="c50903ee-f184-4410-8b7d-ea7bd1e74247" height="16" src="/sites/default/files/inline-images/pieds_2.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" />  <span><span><span><span><span><span>Pour aller plus loin ...</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>FADI est un outil développé par le CETIC, n’hésitez donc pas à prendre </span></span></span></span></span></span><a href="https://www.cetic.be/Contact"><span><span><span><span><span><span><span><span>contact </span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>si vous désirez des informations supplémentaires !</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Voici quelques liens utiles par rapport à FADI :</span></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><span><span>Site officiel de FADI :  </span></span></span></span></span></span><a href="https://fadi.cetic.be/"><span><span><span><span><span><span><span><span>https://FADI.cetic.be/</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> contenant la documentation d’installation et d’utilisation</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Pour en savoir plus : </span></span></span></span></span></span><a href="https://fadi.presentations.cetic.be/index.html?print-pdf&amp;print=1&amp;showNotes#/"><span><span><span><span><span><span><span><span>https://FADI.presentations.cetic.be</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Le code source :  </span></span></span></span></span></span><a href="https://github.com/cetic/fadi"><span><span><span><span><span><span><span><span>https://github.com/cetic/fadi</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Le dépot Github des Helm charts pour installer FADI dans un cluster Kubernetes :  </span></span></span></span></span></span><a href="https://github.com/cetic/helm-fadi"><span><span><span><span><span><span><span><span>https://github.com/cetic/helm-fadi</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> </span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>“R. Sellami, F. Zalila, A. Nuttinck, S. Dupont, J. -C. Deprez and S. Mouton, "</span></span></span></span></span></span><a href="https://ieeexplore.ieee.org/abstract/document/9338535"><span><span><span><span><span><span><span><span>FADI - A Deployment Framework for Big Data Management and Analytics</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>," 2020 IEEE 29th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2020, pp. 153-158, doi: 10.1109/WETICE49692.2020.00038.”</span></span></span></span></span></span></p> </li> </ul><h2><strong><img alt="Image removed." data-entity-type="file" data-entity-uuid="c3f03cf9-540b-4f39-96ca-1aec98d53b0d" height="16" src="/sites/default/files/inline-images/question.png" width="16" title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /></strong><span><span><span><span><span><span>  Besoin d’une aide supplémentaire ?</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Le </span></span></span></span></span></span><a href="https://www.hub-charleroi.be/fr/team"><span><span><span><span><span><span><span><span>Hub-C</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop? N'hésitez pas à contacter </span></span></span></span></span></span><a href="https://www.hub-charleroi.be/fr/team"><span><span><span><span><span><span><span><span>un membre du Hub</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> ! </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Vous avez une question spécifique à propos d’une fiche? Elles sont réalisées par les experts du </span></span></span></span></span></span><a href="https://www.cetic.be/"><span><span><span><span><span><span><span><span>CETIC</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées </span></span></span></span></span></span><a href="https://www.cetic.be/Contact"><span><span><span><span><span><span><span><span>ici</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Thu, 05 Nov 2020 10:35:10 +0000 laurie 47 at http://hub-creatif.cetic.be