# SK8: Pour des applications shiny qui se déploient comment sur des roulettes

Élise Maigné

► To cite this version:

Élise Maigné. SK8: Pour des applications shiny qui se déploient comment sur des roulettes. Rencontres R 2024, Jun 2024, Vannes (Bretagne, France), France. hal-04611375

HAL Id: hal-04611375

https://hal.inrae.fr/hal-04611375

Submitted on 13 Jun 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

Public Domain
# SK8 : Pour des applications Shiny
qui se déploient
comme sur des roulettes

<figure><img src="image_1.png" /></figure>

Rencontres R 2024

Elise Maigné, 12 Juin 2024
# SK8 : Pour des applications Shiny
qui se déploient
comme sur des roulettes

<figure><img src="image_1.png" /></figure>

Rencontres R 2024
Elise Maigné, 12 Juin 2024
# Qui je suis ?

<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /></figure>

<figure><img src="image_4.png" /></figure>
# Qui je suis ?

<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /></figure>

<figure><img src="image_4.png" /></figure>
# Qui je suis ?

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>

<figure><img src="image_9.png" /></figure>
# Qui je suis ?

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>

<figure><img src="image_9.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_10.png" /></figure>

<figure><img src="image_11.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_10.png" /></figure>

<figure><img src="image_11.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_12.png" /></figure>

<figure><img src="image_13.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_12.png" /></figure>

<figure><img src="image_13.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>

<figure><img src="image_16.png" /></figure>
# De quoi va-t'on parler ?

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>

<figure><img src="image_16.png" /></figure>
# Comment déployer son application Shiny ?
# Comment déployer son application Shiny ?
# Comment déployer ?

<figure><img src="image_17.png" /></figure>

## Solutions privées

ShinyApps

<figure><img src="image_18.png" /></figure>

posit™

## Accès à des serveurs de données sécurisés ?

Hébergement hors europe

Facile !
# Comment déployer ?

<figure><img src="image_17.png" /></figure>

## Solutions privées

ShinyApps

<figure><img src="image_18.png" /></figure>

posit™

## Accès à des serveurs de données sécurisés ?

Hébergement hors europe

Facile !
# Comment déployer ?

<figure><img src="image_19.png" /></figure>

## Solutions privées

## AWS/Google Cloud

<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

## Accès à des serveurs de données sécurisés ?

## Hébergement hors europe
# Comment déployer ?

<figure><img src="image_19.png" /></figure>

## Solutions privées

## AWS/Google Cloud

<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

## Accès à des serveurs de données sécurisés ?

## Hébergement hors europe
# Comment déployer ?

<figure><img src="image_22.png" /></figure>

Solutions open sources

ShinyServer

<figure><img src="image_23.png" /></figure>

posit™

Accès à des serveurs de données sécurisés

Hébergement en europe

Montée de version de R

Nécessite un serveur

Compétences admin sys
Administrateur Système
# Comment déployer ?

<figure><img src="image_22.png" /></figure>

Solutions open sources

ShinyServer

<figure><img src="image_23.png" /></figure>

posit™

Accès à des serveurs de données sécurisés

Hébergement en europe

Montée de version de R

Nécessite un serveur

Compétences admin sys
Administrateur Système
# Comment déployer ?

<figure><img src="image_24.png" /></figure>

## Solutions open sources

## Docker

<figure><img src="image_25.png" /></figure>

- Accès à des serveurs de données sécurisés

- Hébergement en europe

- Nécessite un serveur

- Compétences admin sys
- Administrateur Système

- Compétences Docker
# Comment déployer ?

<figure><img src="image_24.png" /></figure>

## Solutions open sources

## Docker

<figure><img src="image_25.png" /></figure>

- Accès à des serveurs de données sécurisés

- Hébergement en europe

- Nécessite un serveur

- Compétences admin sys
- Administrateur Système

- Compétences Docker
# Comment déployer ?

<figure><img src="image_26.png" /></figure>

## Solutions open sources

ShinyProxy

<figure><img src="image_27.png" /></figure>

Accès à des serveurs de données sécurisés

Hébergement en europe

Nécessite un serveur

Compétences admin sys
Administrateur Système

Compétences Docker
# Comment déployer ?

<figure><img src="image_26.png" /></figure>

Solutions open sources

ShinyProxy

<figure><img src="image_27.png" /></figure>

Accès à des serveurs de données sécurisés

Hébergement en europe

Nécessite un serveur

Compétences admin sys
Administrateur Système

Compétences Docker
# Comment déployer ?

<figure><img src="image_28.png" /></figure>

## Solutions open sources

Onyxia

<figure><img src="image_29.png" /></figure>

Accès à des serveurs
de données sécurisés

Hébergement en
europe
# Comment déployer ?

<figure><img src="image_28.png" /></figure>

## Solutions open sources

Onyxia

<figure><img src="image_29.png" /></figure>

Accès à des serveurs
de données sécurisés

Hébergement en
europe
# Comment déployer ?

<figure><img src="image_30.png" /></figure>

Solutions open sources

Shinylive +
webR

Applications « légères »

<figure><img src="image_31.png" /></figure>
# Comment déployer ?

<figure><img src="image_30.png" /></figure>

Solutions open sources

Shinylive +
webR

Applications « légères »

<figure><img src="image_31.png" /></figure>
# Comment déployer ?

<figure><img src="image_32.png" /></figure>

- Accès à des serveurs de données sécurisés

- Hébergement en europe

- Montée de version de R

- Nécessite un serveur

- Applications « légères »

- Compétences admin sys
- Administrateur Système

- Compétences Docker
# Comment déployer ?

<figure><img src="image_32.png" /></figure>

- Accès à des serveurs de données sécurisés

- Hébergement en europe

- Montée de version de R

- Nécessite un serveur

- Applications « légères »

- Compétences admin sys
- Administrateur Système

- Compétences Docker
# Comment déployer ?

<figure><img src="image_33.png" /></figure>

<figure><img src="image_34.png" /></figure>
# Comment déployer ?

<figure><img src="image_33.png" /></figure>

<figure><img src="image_34.png" /></figure>
SK8

SK8

<figure><img src="image_35.png" /></figure>

INRAO
SK8
INRAE

<figure><img src="image_36.png" /></figure>

INRAE

Sciences humaines et sociales

Sciences chimiques, sciences des matériaux

Sciences de l'ingénieur et instrumentation scientifique

Sciences du vivant, de la terre et de l'environnement

Sciences du numérique et modélisation
INRAE

<figure><img src="image_35.png" /></figure>

INRAE

Sciences humaines et sociales

Sciences chimiques, sciences des matériaux

Sciences de l'ingénieur et instrumentation scientifique

Sciences du vivant, de la terre et de l'environnement

Sciences du numérique et modélisation
# Le projet SK8

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>
# Le projet SK8

<figure><img src="image_36.png" /></figure>

<figure><img src="image_37.png" /></figure>
# Le projet SK8

<figure><img src="image_39.png" /></figure>
# Le projet SK8

<figure><img src="image_38.png" /></figure>
# Le projet SK8

<figure><img src="image_40.png" /></figure>
# Le projet SK8

Développeur.euse.s
Shiny

<figure><img src="image_39.png" /></figure>

<figure><img src="image_40.png" /></figure>

myapp

<figure><img src="image_41.png" /></figure>

<figure><img src="image_42.png" /></figure>

GitLab

<figure><img src="image_43.png" /></figure>

SK8

Équipe SK8

Automated CI/CD

<figure><img src="image_44.png" /></figure>

SK8 template

fork

`.gitlab-ci.yml`

Shiny

`.gitlab-ci.yml`

Dockerfile

`{renv}`

Shiny

<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>

SK8 Dedicated
gitlab runners

<figure><img src="image_47.png" /></figure>

Docker
image

<figure><img src="image_48.png" /></figure>

Gitlab container
registry

openstack.

<figure><img src="image_49.png" /></figure>

kubernetes

https://myapp.sk8.inrae.fr

<figure><img src="image_50.png" /></figure>

Utilisateur.rice.s
de l'application
# Le projet SK8

<figure><img src="image_41.png" /></figure>

<figure><img src="image_42.png" /></figure>

<figure><img src="image_43.png" /></figure>

## Groupe user

* Développeur.se.s R & Shiny

* Expriment les besoins et retours utilisateur.rice.s

* Accompagnent les utilisateur.rice.s

* Rédigent la documentation

<figure><img src="image_44.png" /></figure>

SK8

<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>

## Groupe devops

* Administrateur.rice.s systèmes

* Gèrent l'infrastructure SK8 (Gitlab, CI/CD, K8S, ...)

* Veillent sur l'infrastructure (monitoring et logs)

* Mettent en place les solutions
# Le projet SK8

<figure><img src="image_51.png" /></figure>

<figure><img src="image_52.png" /></figure>

<figure><img src="image_53.png" /></figure>

## Groupe user

* Développeur.se.s R & Shiny

* Expriment les besoins et retours utilisateur.rice.s

* Accompagnent les utilisateur.rice.s

* Rédigent la documentation

<figure><img src="image_54.png" /></figure>

SK8

<figure><img src="image_55.png" /></figure>

<figure><img src="image_56.png" /></figure>

## Groupe devops

* Administrateur.rice.s systèmes

* Gèrent l'infrastructure SK8 (Gitlab, CI/CD, K8S, ...)

* Veillent sur l'infrastructure (monitoring et logs)

* Mettent en place les solutions
SK8 : Venez comme vous êtes

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>

<figure><img src="image_49.png" /></figure>
SK8 : Venez comme vous êtes

<figure><img src="image_57.png" /></figure>

<figure><img src="image_58.png" /></figure>

<figure><img src="image_59.png" /></figure>
# SK8 : prérequis

<figure><img src="image_50.png" /></figure>

<figure><img src="image_51.png" /></figure>

<figure><img src="image_52.png" /></figure>

git

git clone

git add

git commit

git push
SK8 : prérequis

<figure><img src="image_60.png" /></figure>

<figure><img src="image_61.png" /></figure>

<figure><img src="image_62.png" /></figure>

git

git clone

git add

git commit

git push
# SK8 : du point de vue utilisateur
# SK8 : du point de vue utilisateur
# SK8 : du point de vue utilisateur

<figure><img src="image_53.png" /></figure>

<figure><img src="image_54.png" /></figure>
# SK8 : du point de vue utilisateur

<figure><img src="image_63.png" /></figure>

<figure><img src="image_64.png" /></figure>
# SK8 : du point de vue de l'utilisateur (1/6)

<figure><img src="image_55.png" /></figure>

## Formulaire de saisie de votre demande

### ⚙️ Vous êtes perdus ?

Si vous découvrez le service SK8, vous pouvez avant tout consulter le [site web](https://www.sk8.inrae.fr) ou la [documentation](https:// documentation.inrae.fr/).

### 1) Vos informations en tant que demandeur

Quel êtes-vous ?

Elise Maigné

S'agit-t-il de votre première demande ?*

Oui

Non

Quel est votre statut au sein d'INRAE ?*

<figure><img src="image_56.png" /></figure>

Personnes (y compris vous) qui doivent avoir accès au code source de l'application ⚙️

@elise.maigne

<figure><img src="image_57.png" /></figure>

Département INRAE d'appartenance:*

<figure><img src="image_58.png" /></figure>

UR/UMR/UE... d'appartenance:* ⚙️

<figure><img src="image_59.png" /></figure>

Appartenez-vous à un CATI ?*

Oui

Non

### 2) Informations générales de votre application

Nom de l'application souhaité (sera utilisé pour l'URL d'accès au format nom-application.sk8.inrae.fr):*
# SK8 : du point de vue de l'utilisateur (1/6)

<figure><img src="image_65.png" /></figure>

## Formulaire de saisie de votre demande

### ⚙️ Vous êtes perdus ?

Si vous découvrez le service SK8, vous pouvez avant tout consulter le [site web](https://www.sk8.inrae.fr) ou la [documentation](https:// documentation.inrae.fr/)

### 1) Vos informations en tant que demandeur

Quel êtes-vous ?

Elise Maigné

S'agit-t-il de votre première demande ?*

Oui

Non

Quel est votre statut au sein d'INRAE ?*

<figure><img src="image_66.png" /></figure>

Personnes (y compris vous) qui doivent avoir accès au code source de l'application ⚙️

@elise.maigne

<figure><img src="image_67.png" /></figure>

Département INRAE d'appartenance:*

<figure><img src="image_68.png" /></figure>

UR/UMR/UE... d'appartenance:* ⚙️

<figure><img src="image_69.png" /></figure>

Appartenez-vous à un CATI ?*

Oui

Non

### 2) Informations générales de votre application

Nom de l'application souhaité (sera utilisé pour l'URL d'accès au format nom-application.sk8.inrae.fr):*
# SK8 : du point de vue de l'utilisateur (1/6)

Issue gitlab dédiée à l'application

<figure><img src="image_60.png" /></figure>

## Demande d'hébergement RShiny : ChromaticDesign

<figure><img src="image_61.png" /></figure>

Closed

<figure><img src="image_62.png" /></figure>

Issue created 6 months ago by Elise Maigné

## Demande d'hébergement d'application Rshiny

### Informations sur le demandeur

* Il ne s'agit pas de ma première demande, j'ai déjà des applications hébergées dans sk8/sk8-apps/miat

* Nom et prénom de la personne référente : Elise Maigné

* Réfèrent permanent de l'application : @elise.maigne

* UR de la personne référente : MIAT

* Département INRAE de la personne référente : MATHNUM

* Eventuel CATI de la personne référente : BIOS4Biol

* UID de la personne référente : @elise.maigne

* Email de contact : elise.maigne@inrae.fr

* Je ne souhaite pas être informé par email

### Informations générales sur l'application

* Nom de l'application souhaité : ChromaticDesign

* Nom de l'application proposé pour respecter la nomenclature SK8 : chromatic-design

* Je souhaite héberger mon application dans un groupe existant : sk8/sk8-apps/miat

* Type d'application : Data visualisation

* Description rapide de l'application : Re-design Chip-SEQ curves to design chromatin - Demo application of functionalities.

* L'application est-elle proposée sur des plateformes externes ?
# SK8 : du point de vue de l'utilisateur (1/6)

Issue gitlab dédiée à l'application

<figure><img src="image_70.png" /></figure>

## Demande d'hébergement RShiny : ChromaticDesign

<figure><img src="image_71.png" /></figure>

Closed

<figure><img src="image_72.png" /></figure>

Issue created 6 months ago by Elise Maigné

## Demande d'hébergement d'application Rshiny

### Informations sur le demandeur

* Il ne s'agit pas de ma première demande, j'ai déjà des applications hébergées dans sk8/sk8-apps/miat

* Nom et prénom de la personne référente : Elise Maigné

* Réfèrent permanent de l'application : @elise.maigne

* UR de la personne référente : MIAT

* Département INRAE de la personne référente : MATHNUM

* Eventuel CATI de la personne référente : BIOS4Biol

* UID de la personne référente : @elise.maigne

* Email de contact : elise.maigne@inrae.fr

* Je ne souhaite pas être informé par email

### Informations générales sur l'application

* Nom de l'application souhaité : ChromaticDesign

* Nom de l'application proposé pour respecter la nomenclature SK8 : chromatic-design

* Je souhaite héberger mon application dans un groupe existant : sk8/sk8-apps/miat

* Type d'application : Data visualisation

* Description rapide de l'application : Re-design Chip-SEQ curves to design chromatin - Demo application of functionalities.

* L'application est-elle proposée sur des plateformes externes ?
SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_63.png" /></figure>

<figure><img src="image_64.png" /></figure>
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_73.png" /></figure>

<figure><img src="image_74.png" /></figure>
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_65.png" /></figure>

<figure><img src="image_66.png" /></figure>

www

<figure><img src="image_67.png" /></figure>

.dockerignore

<figure><img src="image_68.png" /></figure>

.gitignore

<figure><img src="image_69.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_70.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_71.png" /></figure>

README.md

<figure><img src="image_72.png" /></figure>

footer.html

<figure><img src="image_73.png" /></figure>

global.R

<figure><img src="image_74.png" /></figure>

server.R

<figure><img src="image_75.png" /></figure>

ui.R
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_75.png" /></figure>

<figure><img src="image_76.png" /></figure>

www

<figure><img src="image_77.png" /></figure>

.dockerignore

<figure><img src="image_78.png" /></figure>

.gitignore

<figure><img src="image_79.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_80.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_81.png" /></figure>

README.md

<figure><img src="image_82.png" /></figure>

footer.html

<figure><img src="image_83.png" /></figure>

global.R

<figure><img src="image_84.png" /></figure>

server.R

<figure><img src="image_85.png" /></figure>

ui.R
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_76.png" /></figure>

<figure><img src="image_77.png" /></figure>

www

<figure><img src="image_78.png" /></figure>

.dockerignore

<figure><img src="image_79.png" /></figure>

.gitignore

<figure><img src="image_80.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_81.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_82.png" /></figure>

README.md

<figure><img src="image_83.png" /></figure>

footer.html

<figure><img src="image_84.png" /></figure>

global.R

<figure><img src="image_85.png" /></figure>

server.R

<figure><img src="image_86.png" /></figure>

ui.R

## Le code de l'application Shiny
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_86.png" /></figure>

<figure><img src="image_87.png" /></figure>

www

<figure><img src="image_88.png" /></figure>

.dockerignore

<figure><img src="image_89.png" /></figure>

.gitignore

<figure><img src="image_90.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_91.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_92.png" /></figure>

README.md

<figure><img src="image_93.png" /></figure>

footer.html

<figure><img src="image_94.png" /></figure>

global.R

<figure><img src="image_95.png" /></figure>

server.R

<figure><img src="image_96.png" /></figure>

ui.R

## Le code de l'application Shiny
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_87.png" /></figure>

<figure><img src="image_88.png" /></figure>

www

<figure><img src="image_89.png" /></figure>

.dockerignore

<figure><img src="image_90.png" /></figure>

.gitignore

<figure><img src="image_91.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_92.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_93.png" /></figure>

README.md

<figure><img src="image_94.png" /></figure>

footer.html

<figure><img src="image_95.png" /></figure>

global.R

<figure><img src="image_96.png" /></figure>

server.R

<figure><img src="image_97.png" /></figure>

ui.R

Le footer SK8, à mettre dans
l'application pour nous soutenir
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_97.png" /></figure>

<figure><img src="image_98.png" /></figure>

www

<figure><img src="image_99.png" /></figure>

.dockerignore

<figure><img src="image_100.png" /></figure>

.gitignore

<figure><img src="image_101.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_102.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_103.png" /></figure>

README.md

<figure><img src="image_104.png" /></figure>

footer.html

<figure><img src="image_105.png" /></figure>

global.R

<figure><img src="image_106.png" /></figure>

server.R

<figure><img src="image_107.png" /></figure>

ui.R

Le footer SK8, à mettre dans
l'application pour nous soutenir
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_98.png" /></figure>

<figure><img src="image_99.png" /></figure>

www

<figure><img src="image_100.png" /></figure>

.dockerignore

<figure><img src="image_101.png" /></figure>

.gitignore

<figure><img src="image_102.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_103.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_104.png" /></figure>

README.md

<figure><img src="image_105.png" /></figure>

footer.html

<figure><img src="image_106.png" /></figure>

global.R

<figure><img src="image_107.png" /></figure>

server.R

<figure><img src="image_108.png" /></figure>

ui.R

Les fichiers qui gèrent le déclenchement
des actions à chaque push
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_108.png" /></figure>

<figure><img src="image_109.png" /></figure>

www

<figure><img src="image_110.png" /></figure>

.dockerignore

<figure><img src="image_111.png" /></figure>

.gitignore

<figure><img src="image_112.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_113.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_114.png" /></figure>

README.md

<figure><img src="image_115.png" /></figure>

footer.html

<figure><img src="image_116.png" /></figure>

global.R

<figure><img src="image_117.png" /></figure>

server.R

<figure><img src="image_118.png" /></figure>

ui.R

Les fichiers qui gèrent le déclenchement
des actions à chaque push
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_109.png" /></figure>

www

<figure><img src="image_110.png" /></figure>

.dockerignore

<figure><img src="image_111.png" /></figure>

.gitignore

<figure><img src="image_112.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_113.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_114.png" /></figure>

README.md

<figure><img src="image_115.png" /></figure>

footer.html

<figure><img src="image_116.png" /></figure>

global.R

<figure><img src="image_117.png" /></figure>

server.R

<figure><img src="image_118.png" /></figure>

ui.R

Permettent d'ignorer des fichiers pour

**git** (fichiers que vous gardez en local)
ou

**Docker** (dans le repo git mais pas dans l'application)
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_119.png" /></figure>

www

<figure><img src="image_120.png" /></figure>

.dockerignore

<figure><img src="image_121.png" /></figure>

.gitignore

<figure><img src="image_122.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_123.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_124.png" /></figure>

README.md

<figure><img src="image_125.png" /></figure>

footer.html

<figure><img src="image_126.png" /></figure>

global.R

<figure><img src="image_127.png" /></figure>

server.R

<figure><img src="image_128.png" /></figure>

ui.R

Permettent d'ignorer des fichiers pour

**git** (fichiers que vous gardez en local)
ou

**Docker** (dans le repo git mais pas dans l'application)
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_119.png" /></figure>

## Emplacement des fichiers statiques (css, images, ...) de l'application

<figure><img src="image_120.png" /></figure>

www

<figure><img src="image_121.png" /></figure>

.dockerignore

<figure><img src="image_122.png" /></figure>

.gitignore

<figure><img src="image_123.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_124.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_125.png" /></figure>

README.md

<figure><img src="image_126.png" /></figure>

footer.html

<figure><img src="image_127.png" /></figure>

global.R

<figure><img src="image_128.png" /></figure>

server.R

<figure><img src="image_129.png" /></figure>

ui.R
# SK8 : du point de vue de l'utilisateur (2/6)

<figure><img src="image_129.png" /></figure>

www

<figure><img src="image_130.png" /></figure>

.dockerignore

<figure><img src="image_131.png" /></figure>

.gitignore

<figure><img src="image_132.png" /></figure>

.gitlab-ci-sk8.yml

<figure><img src="image_133.png" /></figure>

.gitlab-ci.yml

<figure><img src="image_134.png" /></figure>

README.md

<figure><img src="image_135.png" /></figure>

footer.html

<figure><img src="image_136.png" /></figure>

global.R

<figure><img src="image_137.png" /></figure>

server.R

<figure><img src="image_138.png" /></figure>

ui.R

<figure><img src="image_139.png" /></figure>

## Emplacement des fichiers statiques (css, images, ...) de l'application
# SK8 du point de vue de l'utilisateur (2/6)

<figure><img src="image_130.png" /></figure>

## Message de retour :

- où ?

- comment ?

- CI/CD

- liens vers la documentation SK8
# SK8 du point de vue de l'utilisateur (2/6)

<figure><img src="image_140.png" /></figure>

## Message de retour :

- où ?

- comment ?

- CI/CD

- liens vers la documentation SK8
# SK8 du point de vue de l'utilisateur (2/6)

<figure><img src="image_131.png" /></figure>

Bonjour @elise.maigne et @raphael.mourad,

J'ai créé le repo pour votre application ChromatinDesign.
Le projet sera hébergé ici : https://forgemia.inra.fr/sk8/sk8-apps/miat/chromatin-design
et l'application accessible à cette adresse : https://chromatin-design.sk8.inrae.fr une fois déployée.

Vous pouvez désormais intégrer le code de votre application dans le repo, comme indiqué dans la documentation (Aide: configuration de git pour SK8 et Travailler avec mon dépôt).

Il vous faudra aller dans les pipelines de votre application pour mettre à jour l'application en ligne, ça n'est pas automatique à chaque push.
https://forgemia.inra.fr/sk8/sk8-apps/miat/chromatin-design/-/pipelines
Vous pourrez cliquer sur "01-Publier"

La documentation est ici : https://docs.sk8.inrae.fr/

Vous pouvez utiliser cette issue pour communiquer avec nous sur votre application, en cas de pb ou d'incompréhension.
Bon hébergement !
# SK8 du point de vue de l'utilisateur (2/6)

<figure><img src="image_141.png" /></figure>

Bonjour @elise.maigne et @raphael.mourad,

J'ai créé le repo pour votre application ChromatinDesign.

Le projet sera hébergé ici : https://forgemia.inra.fr/sk8/sk8-apps/miat/chromatin-design
et l'application accessible à cette adresse : https://chromatin-design.sk8.inrae.fr une fois déployée.

Vous pouvez désormais intégrer le code de votre application dans le repo, comme indiqué dans la documentation (Aide: configuration de git pour SK8 et Travailler avec mon dépôt).

Il vous faudra aller dans les pipelines de votre application pour mettre à jour l'application en ligne, ça n'est pas automatique à chaque push.

https://forgemia.inra.fr/sk8/sk8-apps/miat/chromatin-design/-/pipelines

Vous pourrez cliquer sur "01-Publier"

La documentation est ici : https://docs.sk8.inrae.fr/

Vous pouvez utiliser cette issue pour communiquer avec nous sur votre application, en cas de pb ou d'incompréhension.

Bon hébergement !
# SK8 : du point de vue utilisateur (3-4-5/6)

<figure><img src="image_132.png" /></figure>

<figure><img src="image_133.png" /></figure>

* L'utilisateur récupère le code : **git clone**

* Il fait des modifications en local (intègre son propre code shiny)

* Envoie les modifications au repo : **git add | commit | push**
# SK8 : du point de vue utilisateur (3-4-5/6)

<figure><img src="image_142.png" /></figure>

<figure><img src="image_143.png" /></figure>

* L'utilisateur récupère le code : **git clone**

* Il fait des modifications en local (intègre son propre code shiny)

* Envoie les modifications au repo : **git add | commit | push**
# SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_134.png" /></figure>

## Configuration (Automatique)

<figure><img src="image_135.png" /></figure>

Configuration

<figure><img src="image_136.png" /></figure>

## Construction (Automatique)

<figure><img src="image_137.png" /></figure>

Construire-l-application

<figure><img src="image_138.png" /></figure>

<figure><img src="image_139.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_140.png" /></figure>

## Gérer mon application

<figure><img src="image_141.png" /></figure>

01-Publier

<figure><img src="image_142.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_143.png" /></figure>

03-Dépublier

<figure><img src="image_144.png" /></figure>

## Debuggage

<figure><img src="image_145.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_146.png" /></figure>

<figure><img src="image_147.png" /></figure>

<figure><img src="image_148.png" /></figure>
# SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_144.png" /></figure>

## Configuration (Automatique)

<figure><img src="image_145.png" /></figure>

Configuration

<figure><img src="image_146.png" /></figure>

## Construction (Automatique)

<figure><img src="image_147.png" /></figure>

Construire-l-application

<figure><img src="image_148.png" /></figure>

<figure><img src="image_149.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_150.png" /></figure>

## Gérer mon application

<figure><img src="image_151.png" /></figure>

01-Publier

<figure><img src="image_152.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_153.png" /></figure>

03-Dépublier

<figure><img src="image_154.png" /></figure>

## Debuggage

<figure><img src="image_155.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_156.png" /></figure>

<figure><img src="image_157.png" /></figure>
# SK8 : du point de vue application
# SK8 : du point de vue application
# SK8 : du point de vue application

<figure><img src="image_149.png" /></figure>

## Job « Configuration »

Y'a t'il un
Dockerfile
?
# SK8 : du point de vue application

<figure><img src="image_158.png" /></figure>

## Job « Configuration »

Y'a t'il un
Dockerfile
?
# SK8 : du point de vue application

<figure><img src="image_150.png" /></figure>

## Job « Configuration »

<figure><img src="image_151.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_159.png" /></figure>

## Job « Configuration »

<figure><img src="image_160.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_152.png" /></figure>

## Job « Configuration »

<figure><img src="image_153.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_161.png" /></figure>

## Job « Configuration »

<figure><img src="image_162.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_154.png" /></figure>

## Job « Configuration »

<figure><img src="image_155.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_163.png" /></figure>

## Job « Configuration »

<figure><img src="image_164.png" /></figure>
SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_156.png" /></figure>

Configuration (Automatique)

<figure><img src="image_157.png" /></figure>

Configuration

<figure><img src="image_158.png" /></figure>

Construction (Automatique)

<figure><img src="image_159.png" /></figure>

Construire-l-application

<figure><img src="image_160.png" /></figure>

Gérer mon application

<figure><img src="image_161.png" /></figure>

01-Publier

<figure><img src="image_162.png" /></figure>

Debuggage

<figure><img src="image_163.png" /></figure>

<figure><img src="image_164.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_165.png" /></figure>

<figure><img src="image_166.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_167.png" /></figure>

<figure><img src="image_168.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_169.png" /></figure>

<figure><img src="image_170.png" /></figure>

03-Dépublier

<figure><img src="image_171.png" /></figure>
# SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_165.png" /></figure>

Configuration (Automatique)

<figure><img src="image_166.png" /></figure>

Configuration

<figure><img src="image_167.png" /></figure>

Construction (Automatique)

<figure><img src="image_168.png" /></figure>

Construire-l-application

<figure><img src="image_169.png" /></figure>

Gérer mon application

<figure><img src="image_170.png" /></figure>

01-Publier

<figure><img src="image_171.png" /></figure>

Debuggage

<figure><img src="image_172.png" /></figure>

<figure><img src="image_173.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_174.png" /></figure>

<figure><img src="image_175.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_176.png" /></figure>

<figure><img src="image_177.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_178.png" /></figure>

<figure><img src="image_179.png" /></figure>

03-Dépublier

<figure><img src="image_180.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_172.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_181.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_173.png" /></figure>
# SK8 : du point de vue application

<figure><img src="image_182.png" /></figure>
# SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_174.png" /></figure>

## Configuration (Automatique)

<figure><img src="image_175.png" /></figure>

Configuration

<figure><img src="image_176.png" /></figure>

## Construction (Automatique)

<figure><img src="image_177.png" /></figure>

Construire-l-application

<figure><img src="image_178.png" /></figure>

<figure><img src="image_179.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_180.png" /></figure>

## Gérer mon application

<figure><img src="image_181.png" /></figure>

01-Publier

<figure><img src="image_182.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_183.png" /></figure>

03-Dépublier

<figure><img src="image_184.png" /></figure>

## Debuggage

<figure><img src="image_185.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_186.png" /></figure>

<figure><img src="image_187.png" /></figure>

<figure><img src="image_188.png" /></figure>
# SK8 : du point de vue utilisateur (6/6)

<figure><img src="image_183.png" /></figure>

## Configuration (Automatique)

<figure><img src="image_184.png" /></figure>

Configuration

<figure><img src="image_185.png" /></figure>

## Construction (Automatique)

<figure><img src="image_186.png" /></figure>

Construire-l-application

<figure><img src="image_187.png" /></figure>

<figure><img src="image_188.png" /></figure>

Examen-sécurité-image-docker

<figure><img src="image_189.png" /></figure>

## Gérer mon application

<figure><img src="image_190.png" /></figure>

01-Publier

<figure><img src="image_191.png" /></figure>

<figure><img src="image_192.png" /></figure>

02-Annuler-dernière-mise-à-jour

<figure><img src="image_193.png" /></figure>

<figure><img src="image_194.png" /></figure>

03-Dépublier

<figure><img src="image_195.png" /></figure>

## Debuggage

<figure><img src="image_196.png" /></figure>

Recevoir-les-logs-de-mon-app

<figure><img src="image_197.png" /></figure>

<figure><img src="image_198.png" /></figure>
# SK8 : plus qu'une solution de déploiement
# SK8 : plus qu'une solution de déploiement
# Accompagnement aux bonnes pratiques

<figure><img src="image_189.png" /></figure>
# Accompagnement aux bonnes pratiques

<figure><img src="image_199.png" /></figure>
# Accompagnement aux bonnes pratiques

- Environnement R maîtrisé ({renv})

- Environnement système maîtrisé

- Détection et installation des librairies systèmes

- Création automatique d'un container Docker
# Accompagnement aux bonnes pratiques

- Environnement R maîtrisé ({renv})

- Environnement système maîtrisé

- Détection et installation des librairies systèmes

- Création automatique d'un container Docker
# Sensibilisation à la vie d'une application

- Pour combien de temps ?

- Archivage ?

- Qui est référent du code ?
# Sensibilisation à la vie d'une application

- Pour combien de temps ?

- Archivage ?

- Qui est référent du code ?
# Accompagnement... si nécessaire

Oui mais les utilisateurs avancés ?

<figure><img src="image_190.png" /></figure>

<figure><img src="image_191.png" /></figure>
# Accompagnement... si nécessaire

Oui mais les utilisateurs avancés ?

<figure><img src="image_200.png" /></figure>
<figure><img src="image_192.png" /></figure>

Communauté Shiny à INRAE
<figure><img src="image_201.png" /></figure>

Communauté Shiny à INRAE
<figure><img src="image_193.png" /></figure>

Partage des outils SK8
<figure><img src="image_202.png" /></figure>

Partage des outils SK8
# Conclusion

Un projet qui roule comme sur des roulettes !

<figure><img src="image_194.png" /></figure>

<figure><img src="image_195.png" /></figure>
# Conclusion

Un projet qui roule comme sur des roulettes !

<figure><img src="image_203.png" /></figure>

<figure><img src="image_204.png" /></figure>
Merci !

* https://sk8.inrae.fr

* https://docs.sk8.inrae.fr

* https://forgemia.inra.fr/sk8

* sk8-contact@groupes.renater.fr

<figure><img src="image_196.png" /></figure>

<figure><img src="image_197.png" /></figure>
Merci !

* https://sk8.inrae.fr

* https://docs.sk8.inrae.fr

* https://forgemia.inra.fr/sk8

* sk8-contact@groupes.renater.fr

<figure><img src="image_205.png" /></figure>

<figure><img src="image_206.png" /></figure>