Des serveurs LAMP…

Partons de l’exemple simple d’une page à laquelle vous souhaitez accéder depuis votre ordinateur en cliquant sur un lien. Elle se trouve quelque part sur un serveur, à savoir un ordinateur spécialement prévu pour recevoir des requêtes, constituer et renvoyer les pages correspondantes. Ce serveur a besoin, pour fonctionner, d’un logiciel appelé « système d’exploitation ». La majorité des serveurs de ce type utilisent Linux (Wikipedia, Site officiel), système libre. Le système d’exploitation délègue le traitement des requêtes à un autre logiciel, appelé « serveur web », et dans près de 70 % des cas il s’agit d’Apache (Wikipedia, Site officiel), libre lui aussi. Les pages demandées par les requêtes sont généralement constituées « à la volée » à l’aide d’un programme et d’informations stockées en base de données. Toujours issus du logiciel libre, le langage de programmation PHP (Wikipedia, Site officiel) et le système de gestion de bases de données MySql (Wikipedia, Site officiel) sont parmi les solutions les plus répandues.

Cet configuration composée de Linux, Apache, MySql et PHP, la plus fréquente chez les hébergeurs, est généralement désignée par l’acronyme LAMP. Il s’agit là de considérations techniques, mais ce qu’il faut bien comprendre c’est que d’une part vous utilisez constamment et sans le savoir du logiciel libre, et d’autre part celui-ci vous permet de bénéficier de solutions d’hébergement performantes et accessibles (vous économisez toutes les licences des logiciels mis en oeuvre).

…aux applications complètes

Les solutions d’hébergement évoquées ci-dessus vous permettent de proposer votre site institutionnel, votre boutique et autres genres d’applications Webs. Toutes ces applications sont développées à partir d’un langage de programmation et utilisent une base de données. Depuis les débuts de l’internet, des quantités de projets informatiques ont vu le jour pour répondre à de tels besoins, et les informaticiens se sont aperçu très rapidement qu’ils refaisaient souvent la même chose. Deux sites Webs vont contenir des informations différentes, mais vont permettre de les gérer de manière identique (interface d’administration, gestion des utilisateurs, organisation des informations… ). Très rapidement les développeurs ont donc conçu des outils qu’ils ont pu réutiliser d’un site à l’autre, puis d’autres l’ont fait de manière plus « universelle » pour qu’un même outil puisse être utilisé par des prestataires différents, et aujourd’hui on dispose, pour chaque famille d’application, de solutions complètes à adapter au besoin final. Pour les sites Webs de contenu, par exemple, on appelle les solutions disponibles des CMS, pour « Content Management System ».

Et bien sûr, parmi ces solutions, on trouve… des logiciels libres ! Pour les CMS, les solutions « libres » se comptent par centaines, et parmi les plus répandues on peut citer : WordPress, Drupal, Joomla…

Prenons un cas concret : un projet de site Web pour lequel l’outil (le CMS) choisi est WordPress. La première étape consiste à télécharger gratuitement la dernière version sur le site officiel (wordpress.org), puis à l’installer sur notre hébergement LAMP. WordPress est développé avec le langage de programmation PHP et utilise la base de données MySql, il va donc fonctionner « naturellement », et son installation va prendre quelques minutes. Nous disposons rapidement d’une structure complète de site, avec une interface d’administration particulièrement évoluée, là où quelques années en arrière il aurait fallu budgéter plusieurs mois/homme (et pour arriver à une solution moins performante : conçue par une petite équipe de projet, quand WordPress mobilise une « batterie » de développeurs et est utilisée par une communauté de plusieurs millions de membres !). C’est pourquoi un projet de site Web se comptabilise aujourd’hui en nombre de jours ou de semaines suivant l’importance du site cible.

Pour employer une métaphore, disons que l’outil CMS s’apparente à un immeuble, on utilise d’abord l’infrastructure générale pour cheminer jusqu’à votre appartement (interphone, escalier, ascenseur), une fois arrivé on pousse la porte d’entrée, et on pénètre dans votre espace particulier. Et bien sûr, l’intérêt est de mettre en place l’infrastructure générale le plus vite possible pour pouvoir se concentrer sur cet espace particulier, et c’est ce que permet ce genre d’outils (l’immeuble est, pour continuer la métaphore, déjà construit).

Nous avons parlé de solutions pour les sites de contenu, il en existe pour les boutiques/sites marchands (Prestashop, Magento, …), et aussi pour des activités plus ciblées (la gestion de tickets d’incidents avec RT, la CRM/relation commerciale avec SugarCRM, la gestion de projet avec Redmine, …).

Et quand les besoins ne cadrent pas avec un des types de solutions évoqués (activité nécessitant des actions très spécifiques, ou à l’inverse susceptible de n’utiliser qu’une partie réduite d’un, par exemple, CRM, rendant alors le poids du paramétrage démesuré par rapport au besoin), le développement d’une application « clé en main » est tout à fait envisageable. Toujours basée sur cette « brique » Lamp (simple et rapide à mettre en place via la souscription d’un hébergement, accessible financièrement à des TPE/PME et ne nécessitant aucune infrastructure dans leurs locaux), une telle application s’adaptera rigoureusement au cahier des charges défini en collaboration avec le client.

Là non plus, on ne part pas « de zéro » : si les développements informatiques vont être capables de gérer la moindre particularité, ils vont s’appuyer sur un « framework » (ou cadre de travail, Wikipédia), c’est-à-dire un « tronc commun » de projet où les principales fonctionnalités que l’on retrouve dans chaque application (authentification et gestion des utilisateurs, gestion de la sécurité, de la conception et des accès à la base de données, du multilinguisme …) sont mises à disposition et prêts à être adaptés/utilisés, et qui implique l’utilisation des normes de programmation les plus reconnues, comme le standard « MVC », (Modèle-Vue-Contrôleur, Wikipédia), garantissant la mise à disposition d’une application lisible, performante et maintenable . Parmi les frameworks les plus populaires, citons Symfony (Wikipédia, site officiel), formidable outil créé et proposé par une société française, Sensio Labs. Au niveau présentation, les « templates graphiques » (ou gabarits, Wikipédia) proposent pour des tarifs très abordables un ensemble de solutions prêtes à l’emploi et personnalisables : squelettes de pages (tableau de bord, contact, …), menus, éléments de pages (champs de formulaires, cadres de mise en page, …), bibliothèques d’outils permettant une validation optimisée des formulaires, des effets sur les images (zoom, visionneuse, …), le tout respectant le standard « responsive design » qui garantit qu’une même page sera adaptée au support (ordinateur, tablette ou smartphone) sur lequel elle sera lue.

Résumons : un framework pour cadrer et optimiser les développements, un template graphique pour donner un aspect « dernier cri » et « responsive design », ajoutons un système de gestion de version (open source, bien sûr, avec par exemple le plus populaire d’entre eux : git, créé à l’origine par le génial concepteur de Linux, Linus Torvalds) qui va sécuriser l’environnement de production et permettre aux différents acteurs du projet de travailler en harmonie, le socle pour développer une application performante, sécurisée, ergonomique, professionnelle et rigoureusement adaptée à vos besoin est en place. Et bien sûr, cette énumération de technologies n’est là qu’à titre informatif, l’équipe de développement en assurant la maîtrise jusqu’à la mise en place de l’application et au-delà, le client n’ayant plus alors qu’à la prendre en main et retrouver de la manière la plus intuitive possible les réponses à toutes les spécificités de son activité.

Comment en profiter ?

Pour vous aider à profiter au mieux des possibilités offertes par le logiciel libre, nous vous proposons d’étudier votre projet. Si des solutions « clé en main » correspondent à votre besoin, nous sélectionnerons la plus adaptée et vous proposerons de la mettre en place et la paramétrer pour l’ajuster à votre activité.