Intégration d’un logiciel libre de partage et de synchronisation

Chapeau
À la recherche d’un logiciel libre destiné à partager et à synchroniser les fichiers de BOSSTEK tout en respectant l’architecture du SI et les droits utilisateurs internes, nous avions envisagé NextCloud (anciennement OwnCloud). Finalement, nous avons décidé d’évaluer la solution Pydio qui, en théorie, correspondrait à nos attentes.
Champ média image
Media Image
Droits d'auteur
Pydio by Patricia Raubo
Commentaire
Pydio by Patricia Raubo

Le besoin de fournir, depuis l’extérieur, un accès aux répertoires personnels et aux partages communs situés sur le LAN a été exprimé à plusieurs reprises chez BOSSTEK. À juste titre, les consultants en mission doivent continuer à acceder à leurs fichiers. La solution devait être sécurisée et s’adapter à l’architecture des partages Samba ainsi qu’à la politique de sécurité. De plus, fournissant l’accès aux applications métier au travers d’un portail SSO, l’intégration avec celui-ci et l’annuaire LDAP était une fonction essentielle du cahier des charges. D’autre part, comme nous travaillons au quotidien dans un univers où l’erreur humaine doit être maitrisée, la possibilité d’industrialiser le dépoiement par un conteneur Docker devait faire partie de notre étude d’intégration.

La solution Pydio

"Le projet a été créé par Charles Du jeu en 2007 sous le nom d’AjaXplorer. Il change de nom en 2013 pour devenir Pydio (acronyme de Put Your Data in Orbit).
Pydio s’installe sur n’importe quel serveur supportant une version récente de PHP.
Sur le plan technique, Pydio diffère de solutions comme Google Drive ou Dropbox : Pydio n’est pas basé sur un cloud public, le logiciel se connecte aux stockages existants ainsi qu’aux répertoires utilisateurs, ce qui permet aux entreprises de conserver leurs données au sein de l'infrastructure existante, en fonction de leur politique de sécurité et de gestion de droits. (1)"

La version évaluée est la dernière version stable : Pydio 8 (2). Le communiqué de presse du 16 mai 2017 nous informe des dernières grandes évolutions : " Pydio 8 […] apporte des améliorations significatives en termes d’UX et de fonctionnalités, le tout au bénéfice de la sécurité des données des entreprises."

Les prérequis (3) sont assez simples, un stack AMP (PHP, MySQL/Maria DB, Apache/Nginx) suffit. Il faudra néanmoins que ce stack soit à jour. PHP 7 est recommandé, avec un système de cache activé. Une extention est requise : IonCube Loader. La base de donnée est quant à elle facultative, mais ce n’est pas recommandé en production. À minima, une base SQLite devrait être utilisée.

Il existe deux distributions, entreprise et communautaire. La première présente quelques avantages : il y a plus de tableaux de bord d’abministration, plus de logs, plus de fonctionnalités comme par exemple la possibilité d’adapter facilement les couleurs de l’interface à la charte graphique de la société.

La distribution communautaire a été retenue comme correspondant le mieux au besoin de BOSSTEK.

Notre méthodologie

Bien qu’inscrit dans une démarche d’amélioration continue, le procédé évolue peu. La grande majorité des projets passe par trois phases. Ne pas oublier qu’une veille technologique permanente est incontournable. Le début de la première phase est très chronophage. Une vision globale du marché, des solutions phares, des solutions émergentes et de leurs potentiels respectifs est un atout non discutable pour prendre un bon départ.

1ere phase : recherche documentaire, découverte et tests

Cette phase consiste à trouver le bon produit. Celui qui, en théorie, sera le plus apte à combler le besoin. Cela passe par une recherche documentaire sur la concordance avec le besoin, une comparaison de la surface fonctionnelle et une analyse des technologies utilisées.

Une fois les candidats potentiels déterminés, l’évaluation d’un indice de pérennité est essentiel. Nous mesurons le niveau de disponibilité des dépôts logiciels et la compatibilité avec les distributions de Linux que nous employons. Il s’agit là de déterminer si la solution est à la fois maintenue et maintenable.

Quand tous les points de contrôle sont satisfaits, nous effectuons une première installation. Nous réalisons les premiers tests de configuration et nous rédigeons la première ébauche de la documentation afin de stabiliser les gestes techniques.

2ème phase : qualification et recette

La deuxième phase permet de s'attaquer aux conditions réelles. C'est une étape d'expérimentation et de tests des fonctionnalités dans un environnement maîtrisé au plus proche de la production.

La recherche d’un ensemble de configurations idéales constitue une grande partie du travail. Les configurations doivent être adaptées à l’environnement comme au besoin en termes de sécurité et de charge.

Une fois la configuration finale validée et documentée, nous procédons à la recette des procédures (installation, sauvegarde, ...). Reprenant à partir de zéro, dans un environnement vierge, nous nous assurons que le fonctionnement, la stabilité et les performances sont celles attendues.

3ème phase : intégration dans le système d'information (SI)

Le plan d'intégration dans le système d'information est le suivant :

  • Documentation technique d’installation et d’exploitation.
  • Création et intégration dans les dépôts logiciels (ou registres) de la solution logicielle ainsi que de ses dépendances.
  • Mise en pré-production de la solution dans un environnement fidèle à la cible.
  • Intégration dans l’écosystème BOSSTEK en connectant le nouveau service dans le SI en validant les points de contrôles de non-régression.
  • Bascule en production, ouverture de service et information aux utilisateurs.

Les fonctionnalités qui nous ont le plus marqué

La notion de cloud hébergé nous a séduit. A l’heure du cloud, des GAFA et du big data, il faut de solides connaissances à la fois techniques et légales pour s’y retrouver dans certaines offres. Le fait de garder la maîtrise des stockages, facilite la décision.

L’intégration s’est faite facilement au sein du SI. Le respect la sécurité locale s’est fait naturellement grâce à la philosophie du produit qui est de s’adapter à l’architecture déjà présente.

L’API REST facilite l’interfaçage avec d’autres applications. L’API permet également le developpement de  plugins. Ceux-ci sont centralisés et approuvés par les équipes Pydio de manière à s’assurer d’une bonne qualité, conformité et sécurité. À ce propos, des audits de sécurité réguliers sont effectués, ce qui conforte le choix des plus regardants.

Enfin la mécanique des rôles et groupes internes nous a étonné par la fine granularité de la gestion des droits.

Les plus

L’aspect accessible, intuitif et minimal rend la prise en main agréable pour les utilisateurs. On retrouve certaines fonctionnalités qui témoignent du soin porté à l’interface : menu contextuel spécifique (peu présent dans les interfaces web PHP), le drag&drop, la possibilté d’intégration des boîtes mail.

Notre besoin est élémentaire : seules les fonctions de partage sont utilisées. Pour ça, Pydio “fait le job”, sans compliquer ni manquer d’options, juste ce qu’il faut.
 

Les moins

Le parametrage : le manque de documentation est malheureusement le point faible de beaucoup de projets libres encore de nos jours, mais heureusement, les équipes sont réactives sur le forum (sous 24h environs).

Le travail de l’UX a peut être été poussé loin sur certains points. Bien que globalement, la solution soit très agréable à utiliser, nous n’avons pas aimé certains éléments de l’interface d’administration (le panneau latéral qui jailli trop souvent par exemple).

Intégration Docker

Il existe un conteneur sur lequel nous nous sommes appuyés pour nos premiers tests, celui de linuxserver.io. Il s’agit d’une image prête à l’emploi très légère. Elle s’appuie elle même sur un conteneur utilisant AlpineLinux. Le travail réalisé est remarquable. Le conteneur est exploitable et léger tout en intégrant Nginx, php7, Pydio et la glue devops necessaire au bon fonctionnement en plus de l’OS. La base de donnée dans notre cas est externe. De type MariaDB, elle héberge les données de Pydio (utilisateurs, indexation des répertoires et des droits), les paramètres de configuration et les logs.
Rappelons que la base de donnée est facultative, mais cette configuration est non recommandée en production pour des raisons de performances entre autres.

Au niveau de l’intégration Samba 4, en théorie, pas des plus naturelle sur un système Linux, nous n’avons pas vraiment rencontré de difficultés. La recommandation que l’on pourrait faire est de faciliter ce travail en prévoyant une bonne correspondance des groupes LDAP et Samba en amont du projet d’intégration.

Du point de vue devops, il faut citer la présence d’un système de variables d’environnement bien pensé, une bonne scalabilité et la présence de l’API facilite la création d’extensions sous forme de modules.

Par souci de sécurité et pour préserver une adhérence parfaite avec notre SI, un conteneur Docker fait maison a été élaboré (Dockerfile).

Le mot du responsable technique :

“L'intégration de Pydio permet à BOSSTEK de couvrir les besoins d'accès aux fichiers uniquement accessibles à travers le LAN de la société. Désormais, les utilisateurs peuvent accéder à leur répertoire personnel et aux partages Samba sur le réseau. La solution est soumise à nos contraintes de sécurité. Nous ne souhaitons pas de fichier en base de données par exemple. Elle s'appuiera bientôt sur le système SSO LemonLDAP::NG.
Cette solution est parfaite pour notre besoin et en plus elle est libre ! C’est important pour nous de respecter notre philosophie 100% Open Source, l’origine de notre passion et de notre expertise.”

Retrouvez bientôt notre retour d’expérience utilisateur … rendez-vous dans la prochaine actu sur Pydio !

Références
(1) fr.wikipedia.org/wiki/Pydio
(2) github.com/pydio
(3) pydio.com/en/docs/v8/pydio-requirements

Auteur
laurent.bach
Dernière modification
aoû 2017

Newsletter

Restez informé ! Abonnez-vous à notre newsletter
Entrez votre courriel pour vous abonner à la newsletter.