Data Analytics

Les scientifiques (et les téléspectateurs de Binge-Watcher) se séparent

Depuis quelques temps, Swisscom Application Cloud dispose d'un Buildpack pour l'outil de statistiques R, qui a fait ses preuves. Cet article présente ce R-Buildpack et donne un exemple de la manière dont tu peux analyser les données qui sont générées par un service Web.

"Est-ce que ce n'est pas le maître de maison des films Harry Potter ?" - "Nein, das ist Walder Frey aus Game of Thrones". - "Oh warte, jetzt wo ich es sehe, hat David Bradley beide Rollen gespielt".

Ce plaisir m'a envahi dès le début, lorsque j'ai vu la série comique et dramatique britannique After Life.


Pour répondre à ces questions, je me suis demandé s'il existait une liste dans laquelle je pouvais trouver le nom de deux séries ou films télévisés. Je voudrais ensuite vous dire que j'ai une liste de comédiens et de comédiennes qui ont joué un rôle dans ces deux productions. Ce chemin de cinq minutes ne m'a pas conduit tout de suite à une solution que j'aurais pu obtenir, mais j'ai eu du mal à la mettre en œuvre moi-même.


J'avais un graphique en tête, dans lequel les acteurs/instrumentistes font des nœuds, et leurs rouleaux respectifs, qui relient ces nœuds entre eux.


De plus, Swisscom Application Cloud est équipé d'un Buildpack intégré pour le programme de statistiques R, qui a fait ses preuves. C'est ainsi que je n'ai eu qu'à rédiger une application R, pour que les données utiles puissent être rassemblées et visualisées dans un graphique unique.


Il est évident que je peux beaucoup mieux créer des applications Java que des applications R. C'est pourquoi j'ai décidé d'écrire une petite application Java sur la base de Spring Frameworks réactifs, qui traite toutes les données à l'arrière-plan et transmet les résultats sur une interface facile à utiliser. De cette manière, je peux aussi m'occuper des grands espoirs du nuage d'applications(ouvre une nouvelle fenêtre) et de la mise en réseau des conteneurs(ouvre une nouvelle fenêtre).


L'application frontale a été créée en tant qu'application Shiny R(ouvre une nouvelle fenêtre). Alors que j'ai déjà rencontré des problèmes et des configurations difficiles à résoudre, je voudrais vous montrer comment, avec le R-Buildpack, vous pouvez créer une application Shiny simple et l'intégrer dans le nuage d'applications.


Nous voulons que les utilisateurs puissent lire quelques noms de films ou de séries télévisées. Le backend crée une banque de données de films de qualité et fournit un graphique basé sur les nœuds et les motifs:

Maintenant, pour afficher ces données, une appli Shiny doit les consommer et les restituer.

Je crée un nouveau R-script et commence par ajouter ces dépendances:

Ensuite, l'interface utilisateur est définie comme suit:

searchQuery est le champ de saisie de l'utilisateur avec quelques titres comme valeurs par défaut. Dans un navigateur, cela ressemble à ceci:

La logique du serveur est mise en œuvre pour analyser cette entrée et récupérer les résultats à partir d'un URI donné. Ensuite, le graphique est rendu à l'aide de visNetwork:

Note que je n'ai pas encore spécifié l'hôte du backend mais que je m'attends à ce qu'une variable appelée URI soit définie.

Je ne voudrais pas vérifier mes informations d'identification dans un VCS comme Git, donc je demande à l'application de lire les détails de la connexion à partir de l'environnement avec une valeur par défaut pour le développement local:

Cela nécessite une instance de magasin secret(ouvre une nouvelle fenêtre) pour fonctionner. J'en ai créé une à l'aide de cette commande:

Enfin, cette commande expose le script en tant qu'application Shiny exécutable:

Maintenant, pour le déployer, j'ai les trois fichiers suivants dans le même répertoire:

- shiny.r (l'application elle-même, comme illustré ci-dessus)
- r.yml
- manifest.yml

Le fichier r.yml contient les dépendances nécessaires et ressemble à ceci:

Note que cela installera les dépendances. N'oublie pas de les utiliser (avec library(...)) dans le script R. Shiny n'est pas installé car il est livré par défaut avec le buildpack de R.

Le manifest.yml est le manifeste de déploiement bien connu avec ce contenu:

Avant de pousser, n'oublie pas de créer une politique de réseau pour permettre au frontend d'accéder au backend tel qu'il est configuré dans l'URI du secret-store:

Le déploiement réussi de l'appli sur le nuage d'applications est aussi simple qu'un cf push. Cependant, cela peut prendre un certain temps jusqu'à ce que le processus de mise en scène ait téléchargé toutes les dépendances R. Une discussion est en cours sur Github pour savoir comment améliorer cela à l'avenir. Une fois l'appli déployée, tu y accèdes via ton navigateur et tu saisis les productions qui t'intéressent. Dans la conversation initiale, David Bradley n'était pas le seul acteur reconnu pour jouer dans plus d'une seule des productions en question:

Et c'est déjà tout. J'espère avoir pu te présenter(ouvre une nouvelle fenêtre) brièvement le buildpack R et tu es maintenant en mesure de déployer toi aussi tes apps Shiny.  

Je tiens à remercier tous les contributeurs pour leur travail sur ce buildpack. Considère-le pour tes prochains tracés scientifiques ou pour dessiner rapidement d'autres données passionnantes.  

Bon traçage!

Roman Bachmann

Roman Bachmann

Head of Cloud Platform Services

Plus d’articles getIT

Prêt pour Swisscom

Trouve ton travail ou le monde de la carrière qui te convient. Dans lequel tu veux participer à la création et te développer.

Ce que tu en fais, c'est ce qui nous définit.

Vers les univers professionnels

Vers les postes vacants cybersécurité