Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
LES PAQUETS SNAPS
« Les paquets d’applications Linux universels, nouvelle génération »
«D’abord qui, ensuite quoi ! »
PRESENTATION
Prénom NOM : Vincent JOBARD
Surnom : Winael
Blog : https://winael.github.io
Email : vinzjobard@ubuntu.com
Wik...
Plan de la séance
I - Les snaps, qu’est-ce que c’est ?
II - Oui, mais qu’est-ce que cela nous apporte ?
III - Et comment ç...
LES SNAPS
Qu’est-ce que c’est ?
A L’ORIGINE
A l’origine
> Version 2.0 du paquet click développé pour l’univers mobile sous
Ubuntu
> Format de paquet conçu...
A L’ORIGINE
Pendant la Keynote d’UbuCon Summit en Janvier
2016, Mark Shuttleworth a annoncé l'arrivée des
snaps sur la ver...
ET MAINTENANT ?
> Le 14 juin, les snaps s’ouvrent au
monde Linux au travers du projet
snapcraft.io.
> Grâce aux efforts co...
MAIS QU’EST-CE QUE
CELA NOUS APPORTE ?
LES PAQUETS LINUX TRADITIONNELS
> Durs à réaliser
> Des formats adaptés à chaque
“transporteurs” (distributions)
> Besoin ...
PROBLEMES RENCONTRES
Avec les paquets Linux traditionnels
> Collusions (plusieurs paquets incluent le même
fichier dans de...
> Lors de l’installation les paquets ont accès root à
l’ensemble des fichiers du système en lecture écriture
PROBLEMES REN...
ET COMMENT CA
MARCHE ?
ET TECHNIQUEMENT ?
Un snap est une archive
squashfs :
> contenant du code et
des actifs
code du snap & actifs
(squashfs, m...
ET TECHNIQUEMENT ?
Un snap peut offrir un ou
plusieurs services (démon,
interface en ligne de
commande, interface
graphiqu...
ET TECHNIQUEMENT ?
Un snap a accès à des
zones en lecture et
écriture :
> Des zones partagées par
l’ensemble des utilisate...
ET TECHNIQUEMENT ?
Chaque processus est isolé
des autres, donc par ex.,
chacun va avoir son propre
répertoire /tmp.
code d...
ET TECHNIQUEMENT ?
Certains accès sont
facultatifs (/home,
/dev/<devices>, ....) et
sont contrôlé par les
interfaces et le...
ET TECHNIQUEMENT ?
Chaque snap peut être
mis à jour et annulé (y
compris les données!)
Indépendamment (et
même automatique...
Comment les snaps
interagissent entre eux ?
snap applicatifsnap applicatif
zone d’écriture du
snap
zone d’écriture du
snap...
Comment les snaps
interagissent entre eux ?
snap applicatifsnap applicatif
zone d’écriture du
snap
zone d’écriture du
snap...
Comment les snaps
interagissent entre eux ?
snap applicatifsnap applicatif
zone d’écriture du
snap
zone d’écriture du
snap...
Mais quels sont les
avantages ?
LES AVANTAGES DES SNAPS
Pour VLC
VLC
Pour les développeurs :
> système d’empaquettement facile
> n’avoir à empaqueter qu’u...
LES AVANTAGES DES SNAPS
Pour NextCloud
Pour les développeurs :
> Réduction de la fragmentation des versions des
distributi...
LES AVANTAGES DES SNAPS
Pour RocketChat
Pour les développeurs :
> Mise à disposition de versions différentes dans les
cana...
Peut-on imaginer un
système complet basé
sur des snaps ?
Ubuntu Core
Un système complet basé sur les snaps
> L’intégrité du code est assurée par des archives
squashfs signées en l...
Quelle est la différence
entre conteneurisation
et confinement ?
Docker/LXD vs Snaps
Docker et LXD fournissent de la conteneurisation :
> Processus unique ou propre contrôle de processus
...
Essayez snapd par vous
même !
(Démo Time !)
Installer et exécuter un
snap
Démo 1
Services et commandes dans un snap
Démo 2
Mise à jour, changement de version et désinstallation d’un snap
Démo 3
Un snap plus complexe : face-detection-demo
Démo 4 (partie 1)
> Installation de face-detection-demo
> L’interface web est ...
Un snap plus complexe : face-detection-demo
Démo 4 (partie 2)
> Mise à jour vers la dernière version à tester
> C’est cass...
Un snap plus complexe : face-detection-demo
Démo 4 (partie 3)
> Retour arrière vers la dernière version fonctionnelle
> To...
Questions fréquentes
QUESTIONS DE BASES SUR
LES SNAPS
QUESTIONS FRÉQUENTES
> Les snaps remplacent-elles les paquet rpm ou deb ?
Non (pour le sy...
QUESTIONS SUR LES DÉPÔTS
ET MAGASINS DE SNAPS
QUESTIONS FRÉQUENTES
> Un magasin tiers est-il possible ?
Oui, il peut y avo...
QUESTIONS SUR LA
CONSTRUCTION DES SNAPS
QUESTIONS FRÉQUENTES
> Quel outils pour créer un snap ?
Il y a un outil : Snapcraf...
Avez-vous des questions?
MERCI !
Prochain SlideShare
Chargement dans…5
×

Les paquets snaps « les paquets d’applications linux universels, nouvelle génération »

346 vues

Publié le

Le paquet snap est un nouveau format de paquet d'applications pour système Linux, adapté autant à l'IoT au Serveur ou au Poste de travail, fonctionnant aussi bien sur Debian, Fedora ou Ubuntu (entre autres). Decouvrez ce nouveau format d'applications, sont fonctionnement et ses opportunités.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Les paquets snaps « les paquets d’applications linux universels, nouvelle génération »

  1. 1. LES PAQUETS SNAPS « Les paquets d’applications Linux universels, nouvelle génération » «D’abord qui, ensuite quoi ! »
  2. 2. PRESENTATION Prénom NOM : Vincent JOBARD Surnom : Winael Blog : https://winael.github.io Email : vinzjobard@ubuntu.com Wiki : https://wiki.ubuntu.com/Winael @vinzjobard vincent-jobard-26b046117 Vincent JOBARD +Vincent JOBARD
  3. 3. Plan de la séance I - Les snaps, qu’est-ce que c’est ? II - Oui, mais qu’est-ce que cela nous apporte ? III - Et comment ça marche ? IV - Mais quels sont les avantages ? V - Peut-on imaginer un système complet avec des snaps ? VI - Quelle est la différence entre conteneurisation et confinement ? VII - Essayez snapd par vous-même VIII - Questions fréquentes IX - Vos questions
  4. 4. LES SNAPS Qu’est-ce que c’est ?
  5. 5. A L’ORIGINE A l’origine > Version 2.0 du paquet click développé pour l’univers mobile sous Ubuntu > Format de paquet conçu pour Snappy Ubuntu Core > D’abord sur le Cloud (Décembre 2014) > Puis sur l’Internet des objets (Courant 2015)
  6. 6. A L’ORIGINE Pendant la Keynote d’UbuCon Summit en Janvier 2016, Mark Shuttleworth a annoncé l'arrivée des snaps sur la version traditionnelle du poste de travail pour Ubuntu 16.04 LTS. Les snaps sur le poste de travail Mark Shuttleworth, fondateur de Canonical et Ubuntu
  7. 7. ET MAINTENANT ? > Le 14 juin, les snaps s’ouvrent au monde Linux au travers du projet snapcraft.io. > Grâce aux efforts conjoints des développeurs d’Ubuntu, d’Arch Linux, de Fedora, de Gentoo, et de Debian, snapd est porté sur ces plateformes > Le paquet d’installation snap devient un paquet d’application Linux Universel, s’installant aussi bien sur de l’IdO, du poste de travail, des serveurs ou du Cloud
  8. 8. MAIS QU’EST-CE QUE CELA NOUS APPORTE ?
  9. 9. LES PAQUETS LINUX TRADITIONNELS > Durs à réaliser > Des formats adaptés à chaque “transporteurs” (distributions) > Besoin de mainteneurs pour chaque transporteurs, qui n’a pas forcément le même contexte utilisateur > Les projets en amont ne maîtrisent pas la livraison des mises à jour Ils sont...
  10. 10. PROBLEMES RENCONTRES Avec les paquets Linux traditionnels > Collusions (plusieurs paquets incluent le même fichier dans des versions différentes) > Incompatibilité des APIs, ou des comportements entre les applications
  11. 11. > Lors de l’installation les paquets ont accès root à l’ensemble des fichiers du système en lecture écriture PROBLEMES RENCONTRES Avec les paquets Linux traditionnels TOUT LE SYSTÈME PEUT ÊTRE ENDOMMAGÉ LORS D’UNE MISE A JOUR
  12. 12. ET COMMENT CA MARCHE ?
  13. 13. ET TECHNIQUEMENT ? Un snap est une archive squashfs : > contenant du code et des actifs code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP > montée en lecture seule (mises à jour transactionnelles, intégrité du contenu, …) > offrant une compression de 1 pour 3
  14. 14. ET TECHNIQUEMENT ? Un snap peut offrir un ou plusieurs services (démon, interface en ligne de commande, interface graphique, …). code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI Un snap est multi- processus.
  15. 15. ET TECHNIQUEMENT ? Un snap a accès à des zones en lecture et écriture : > Des zones partagées par l’ensemble des utilisateurs du système, et seulement accessible en écriture par root (pour les services, par ex.) code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP > Des zones utilisateur, et seulement accessible en écriture par l’utilisateur dans son propre répertoire > Certains chemins sont versionnés, à chaque mise à jour, les données sont copiées dans un nouveau répertoire. Les autres sont communs à toutes les versions du snap code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI Zone d’écriture versionnée root (pour les services) $SNAP_DATA Zone d’écriture versionnée user $SNAP_USER_DATA Zone d’écriture commune root (pour les services) $SNAP_COMMON Zone d’écriture commune user $SNAP_USER_COMMON
  16. 16. ET TECHNIQUEMENT ? Chaque processus est isolé des autres, donc par ex., chacun va avoir son propre répertoire /tmp. code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI Zone d’écriture versionnée root (pour les services) $SNAP_DATA Zone d’écriture versionnée user $SNAP_USER_DATA Zone d’écriture commune root (pour les services) $SNAP_COMMON Zone d’écriture commune user $SNAP_USER_COMMON Zone d’écriture versionnée root (pour les services) $SNAP_DATA Zone d’écriture versionnée user $SNAP_USER_DATA Zone d’écriture commune root (pour les services) $SNAP_COMMON Zone d’écriture commune user $SNAP_USER_COMMON /tmp (par service et processus applicatif)
  17. 17. ET TECHNIQUEMENT ? Certains accès sont facultatifs (/home, /dev/<devices>, ....) et sont contrôlé par les interfaces et les prises. code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI Zone d’écriture versionnée root (pour les services) $SNAP_DATA Zone d’écriture versionnée user $SNAP_USER_DATA Zone d’écriture commune root (pour les services) $SNAP_COMMON Zone d’écriture commune user $SNAP_USER_COMMON /tmp (par service et processus applicatif) ~ /dev/<device> /sys / (from ubuntu-core snap) /var/lib/snapd/hostfs (/ from host) Ils sont globalement isolés du reste du système, et ont un accès refusé.
  18. 18. ET TECHNIQUEMENT ? Chaque snap peut être mis à jour et annulé (y compris les données!) Indépendamment (et même automatiquement via le bilan de santé) ! code du snap & actifs (squashfs, monté-lié en lecture seule dans /snap/<nom-du-snap>/<version>) $SNAP Service Service CLI GUI Zone d’écriture versionnée root (pour les services) $SNAP_DATA Zone d’écriture versionnée user $SNAP_USER_DATA Zone d’écriture commune root (pour les services) $SNAP_COMMON Zone d’écriture commune user $SNAP_USER_COMMON /tmp (par service et processus applicatif) ~ /dev/<device> /sys / (from ubuntu-core snap) /var/lib/snapd/hostfs (/ from host)
  19. 19. Comment les snaps interagissent entre eux ? snap applicatifsnap applicatif zone d’écriture du snap zone d’écriture du snap Les applications sont confinées et isolées snap applicatif zone d’écriture du snap snap applicatif zone d’écriture du snap A (consomme) B (fournit) plug slot Les applications sont isolées via AppArmor et SecComp. Elles ne peuvent lire les fichiers des autres.
  20. 20. Comment les snaps interagissent entre eux ? snap applicatifsnap applicatif zone d’écriture du snap zone d’écriture du snap Les applications sont confinées et isolées snap applicatif zone d’écriture du snap snap applicatif zone d’écriture du snap A (consomme) B (fournit) plug slot Le contrôle est fin : > Les snaps peuvent avoir plusieurs services et commandes, partageant le même système de fichiers > Les applications du même composant peuvent envoyer des signaux entre les processus. > Les snaps peuvent demander et exposer des interfaces claires et définies, réutilisables par d’autres snaps
  21. 21. Comment les snaps interagissent entre eux ? snap applicatifsnap applicatif zone d’écriture du snap zone d’écriture du snap Les applications sont confinées et isolées snap applicatif zone d’écriture du snap snap applicatif zone d’écriture du snap A (consomme) B (fournit) plug slot Aucun script n’est exécuté en tant que root lors de l’installation ou de la suppression !
  22. 22. Mais quels sont les avantages ?
  23. 23. LES AVANTAGES DES SNAPS Pour VLC VLC Pour les développeurs : > système d’empaquettement facile > n’avoir à empaqueter qu’une seule fois > avoir le contrôle de la livraison des versions Pour les utilisateurs : > bénéficient de la dernière version, quelles que soient la distribution Linux utilisée parmis les suivantes.
  24. 24. LES AVANTAGES DES SNAPS Pour NextCloud Pour les développeurs : > Réduction de la fragmentation des versions des distributions, ils contrôlent le délai de livraison des mises à jour. > Ils contrôlent leurs dépendances, ce qui est expédié est ce que l'utilisateur obtiendra. > Les snaps ont une isolation d'application (la boîte de Nextcloud avec des applications de tiers installées). Pour les utilisateurs : > Ils obtiennent la version exacte et le contexte que les développeurs ont testé. > Ils réduisent leur Time-To-Market pour produire la NextCloud Box. > Processus robuste de mise à jour avec possibilité de retour arrière
  25. 25. LES AVANTAGES DES SNAPS Pour RocketChat Pour les développeurs : > Mise à disposition de versions différentes dans les canaux de mise à jour sélectionnables par l'utilisateur (edge, beta, candidate, stable ...) > Peut être installé sur plusieurs systèmes, comme la boîte Nextcloud ! Pour les utilisateurs : > Ils peuvent facilement devenir des bêta-testeurs > Peut s’installer comme n’importe quel autre paquet, via la ligne de commande ou la logithèque. La configuration de RocketChat passe de 3h à moins d’une minute !
  26. 26. Peut-on imaginer un système complet basé sur des snaps ?
  27. 27. Ubuntu Core Un système complet basé sur les snaps > L’intégrité du code est assurée par des archives squashfs signées en lecture seule Une manière moderne de construire une distribution Linux Architecture système modulaire en Snaps Snap Noyau Snap Base Snap Gadget Snap ApplicatifSnap applicatif Snap Applicatif Snap Interface de contenu > Pas besoin de reconstruire ou de re-flasher une image entière pour une seul changement applicatif
  28. 28. Quelle est la différence entre conteneurisation et confinement ?
  29. 29. Docker/LXD vs Snaps Docker et LXD fournissent de la conteneurisation : > Processus unique ou propre contrôle de processus Snap fournit du confinement : > Noyau partagé, propre système de fichiers/réseau > Les paquets des applications s’exécutent comme n’importe quel autre processus du système > Noyau/réseau partagé, système de fichiers propre > Processus gérés par des outils traditionnels > Pas de routage réseau compliqué > Les fichiers sont directement accessibles > Prise en charge de plusieurs utilisateurs LXD snap
  30. 30. Essayez snapd par vous même ! (Démo Time !)
  31. 31. Installer et exécuter un snap Démo 1
  32. 32. Services et commandes dans un snap Démo 2
  33. 33. Mise à jour, changement de version et désinstallation d’un snap Démo 3
  34. 34. Un snap plus complexe : face-detection-demo Démo 4 (partie 1) > Installation de face-detection-demo > L’interface web est disponible à l’adresse http://localhost:8080 > On peut activer la caméra soit dans l’interface, soit via la commande face- detection-demo --enable-camera > La commande communique (via un socket Unix) avec notre service, qui est branché à la caméra et écoute le réseau.
  35. 35. Un snap plus complexe : face-detection-demo Démo 4 (partie 2) > Mise à jour vers la dernière version à tester > C’est cassé et nos données sont corrompues! > Il faut donc faire un retour arrière > Testons la nouvelle version : http://localhost:8080
  36. 36. Un snap plus complexe : face-detection-demo Démo 4 (partie 3) > Retour arrière vers la dernière version fonctionnelle > Tout est revenu à la normal > Re-testons la nouvelle version : http://localhost:8080
  37. 37. Questions fréquentes
  38. 38. QUESTIONS DE BASES SUR LES SNAPS QUESTIONS FRÉQUENTES > Les snaps remplacent-elles les paquet rpm ou deb ? Non (pour le système de base). > La même snap fonctionnera-t-elle sur n’importe quelle distribution supportant les snaps ? Oui. > Les snaps ont-elles un lien avec les paquets click d’Ubuntuphone ? Oui, c’est en quelque sorte les paquets clicks 2.0. > Les snaps sont-elles totalement isolées ou supportent-elles les bibliothèques partagées ? Il existe un système d'interface à relier au système. Les bibliothèques partagées sont possibles via des interfaces de contenu, privées pour les développeurs. > Comment les snaps gèrent-elles les systèmes multi utilisateurs ? Les snaps sont installées globalement pour tous les utilisateurs. Chaque utilisateur dispose de données utilisateur distinctes.
  39. 39. QUESTIONS SUR LES DÉPÔTS ET MAGASINS DE SNAPS QUESTIONS FRÉQUENTES > Un magasin tiers est-il possible ? Oui, il peut y avoir un magasin de marque (hébergé par Canonical) ou la mise en place d’un magasin open source tiers. > Les snaps peuvent-elles être installées sans passer par un dépôt ou un magasin ? Oui, les snaps peuvent être installées localement (en fonction des possibilités offertes par votre appareil). > Comment les espaces de noms sont-ils gérés avec les snaps ? Les conflits de nom de snaps sont-ils possibles ? Les espaces de noms sans suffixe sont réservés à la gestion officielle de projets. Les snaps non officielles doivent utiliser un espace de noms basé sur un suffixe.
  40. 40. QUESTIONS SUR LA CONSTRUCTION DES SNAPS QUESTIONS FRÉQUENTES > Quel outils pour créer un snap ? Il y a un outil : Snapcraft. - Vous pouvez écrire un fichier snapcraft.yaml et construire votre snap - Ou vous pouvez déverser votre logiciel déjà construit dans un répertoire, y ajouter des métadonnées et exécuter "snapcraft snap dir/" On peut aussi utiliser des usines logicielles : - Launchpad - https://build.snapcraft.io/ + https://github.com (Ne prends pas en compte les PPAs) > Est-ce qu’il est possible pour de multiples développeurs, comme par exemple une équipe de gérer le même snap ? Oui. > Comment la sécurité des bibliothèques tierces est-elle gérée ? Les bibliothèques sont exécutées comme votre application, et donc confinées. Le système des “parties” de snapcraft avec des parties venant du nuage vous permet de reconstruire facilement votre logiciel et de le tester avec de nouveaux correctifs de sécurité avant de les publier.
  41. 41. Avez-vous des questions?
  42. 42. MERCI !

×