Skip to content
Extraits de code Groupes Projets
Valider 9cca54bd rédigé par Frédéric Minne's avatar Frédéric Minne
Parcourir les fichiers

introduction : final

parent 18d2c442
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -4,23 +4,21 @@ ...@@ -4,23 +4,21 @@
## Contexte et enjeux ## Contexte et enjeux
Apparues au début des années 2000, les infrastructures à base de conteneurs sont devenues un des outils clés de l'informatique moderne. Cette tendance a encore été renforcée par le développement des infrastructures dans le cloud qui supportent de plus en plus souvent le déploiement de conteneurs. Apparues au début des années 2000, les infrastructures à base de conteneurs sont devenues un des outils clés de l'informatique moderne. Cette tendance a encore été renforcée par le développement des infrastructures dans le cloud qui supportent de plus en plus souvent le déploiement de conteneurs. On constate donc une multiplication de l'usage des conteneurs, et cette demande en termes de conteneurs va sans doute encore augmenter dans les prochaines années.
### Une multiplication de l'usage des conteneurs ### Une multiplication de l'usage des conteneurs
Au-delà des arguments techniques propres aux applications, on constate une multiplication des l'usage des conteneurs, et cette demande en termes de conteneurs va sans doute encore augmenter dans les prochaines années. Qu’il s’agisse d’applications mises en place au sein des services informatiques ou dans le cadre de projets de recherche ou de fin d'études (mémoires de master…), les demandes pour des infrastructures à base conteneurs se multiplient à l'UCLouvain. Citons par exemple : les infrastructures web pour le nouveau portail web UCLouvain en Drupal (SISG), l'infrastructure elastic search pour le service des bibliothèques (BIB et SISG), l'infrastructure pour DIGIT (SIPS)...
Qu’il s’agisse d’applications mises en place au sein des services informatiques ou dans le cadre de projets de recherche ou de fin d'études (mémoires de master…), les demandes pour des infrastructures à base conteneurs se multiplient à l'UCLouvain. Citons par exemple : les infrastructures web pour le nouveau portail web UCLouvain en Drupal (SISG), l'infrastructure elastic search pour le service des bibliothèques (BIB et SISG), l'- infrastructure pour DIGIT (SIPS), l'intégration continue via Jenkins ou Gitlab-CI (INGI et ICTEAM)... Par ailleurs ce recours de plus en plus fréquent aux conteneurs dans le monde académique ou scientifique n'est pas le monopole de l'UCLouvain et se rencontre dans de nombreuses institutions. L’un des domaines concernés est la mise en place d’infrastructure pour les outils TICE. Les conteneurs sont d'ailleurs devenus un sujet récurrent du JIRES[^jres].
Par ailleurs ce recours de plus en plus fréquent aux conteneurs dans le monde académique n'est pas le monopole de l'UCLouvain et se rencontre dans de nombreuses institutions. L’un des domaines concernés est la mise en place d’infrastructure pour les outils TICE. Les conteneurs sont d'ailleurs devenus un sujet récurrent du JIRES[^jres]. A cela s’ajoute une utilisation de plus en plus fréquente des conteneurs pour la mise en place d’environnements de développement local, que ce soit avec un outil générique comme Docker Compose[^dockrcomp] ou avec des solutions spécifiques comme `ddev`[^ddev] pour les applications PHP\MySQL. Il serait dès lors intéressant de pouvoir déployer en production les applications développées au sein des différentes équipes avec les mêmes technologies utilisées par les équipes de développement.
A cela s’ajoute une utilisation de plus en plus fréquente des conteneurs pour la mise en place d’environnements de développement local, que ce soit avec un outil générique comme Docker Compose[^dockrcomp] ou avec des solutions spécifiques comme, par exemple, `ddev`[^ddev] pour les applications PHP\MySQL. Il serait dès lors intéressant de pouvoir déployer en production les applications développées au sein des différentes équipes avec les mêmes technologies utilisées par les équipes de développement. Mais au-delà du développement d'application, les conteneurs permettent aussi un déploiement d'application pré-configurées (configuration as code), l'upgrade plus sûr des applications en production, des cycles de release plus court (voire de l'intégration continue)...
Mais au-delà du développement d'application, les conteneurs permettent aussi un déploiement d'application pré-configurées (configuration as code), l'upgrade plus sûr des applications en production, des cycles de release plus court (voire de l'intégration continue)... De nombreuses applications propose donc des procédures de déploiement basées sur les conteneurs, par exemple Ceph qui utilise l'orchestrateur Podman pour déployer son cluster. De nombreuses applications propose donc des procédures de déploiement basées sur les conteneurs, par exemple Ceph qui utilise l'orchestrateur Podman pour déployer son cluster, et les compétences dans ce domaine vont devoir se développer au sein des équipes.
Les compétences dans ce domaine vont devoir se développer au sein des équipes. ### Des applications aux besoins variés et plus complexes à mettre en production
### Des applications de plus en plus complexes et aux besoins variés
De petites applications métier disponibles en ligne sont développées et mises en place afin de rendre des services à l’ensemble des informaticien·ne·s et autres usager·e·s de l'UCLouvain : De petites applications métier disponibles en ligne sont développées et mises en place afin de rendre des services à l’ensemble des informaticien·ne·s et autres usager·e·s de l'UCLouvain :
...@@ -38,15 +36,15 @@ La plupart de ces applications sont développées sur base de technologies et d' ...@@ -38,15 +36,15 @@ La plupart de ces applications sont développées sur base de technologies et d'
Tout cela peut causer des difficultés lors de l’installation, de la maintenance ou de la configuration des machines d’hébergement et entraîner une consommation parfois inutile de ressources. De plus cela impose souvent de multiplier les machines virtuelles pour les héberger. Tout cela peut causer des difficultés lors de l’installation, de la maintenance ou de la configuration des machines d’hébergement et entraîner une consommation parfois inutile de ressources. De plus cela impose souvent de multiplier les machines virtuelles pour les héberger.
L'ère des applications monolithiques est aujourd'hui révolue. La plupart des applications modernes se basent sur une pile applicatives constituées de nombreux services (base de données, authentification, environnement d'exécution, service de cache, mailing...) séparés et uns des autres. Cela multiplie les applications à déployer et à maintenir. L'ère des applications monolithiques est aujourd'hui révolue. La plupart des applications modernes se basent sur une pile applicative constituée de nombreux services (base de données, authentification, environnement d'exécution, service de cache, mailing...) séparés et uns des autres. Cela multiplie les applications à déployer et à maintenir.
Parmi les solutions ont été proposées au fil des années, les **technologies de conteneurs** (la plus connue étant Docker) répondent à ces enjeux. Elles permettent de déployer et de faire coexister des environnements d’exécution hétérogènes très facilement sur une même machine[^manyphpdocker]. Elles permettent un meilleur contrôle de l’isolation entre ceux-ci et facilitent leur déploiement et leur mise à jour. Elles permettent également une répartition de la charge sur plusieurs machines hôtes. Enfin, elles facilitent le déploiement des applications à partir de fichiers de configuration de piles applicatives. Parmi les solutions ont été proposées au fil des années, les **technologies de conteneurs** (la plus connue étant Docker) répondent à ces enjeux. Elles permettent de déployer et de faire coexister des environnements d’exécution hétérogènes très facilement sur une même machine[^manyphpdocker]. Elles permettent un meilleur contrôle de l’isolation entre ceux-ci et facilitent leur déploiement et leur mise à jour. Elles permettent également une répartition de la charge sur plusieurs machines hôtes. Enfin, elles facilitent le déploiement des applications à partir de fichiers de configuration de piles applicatives.
Ce type d'infrastructure pourrait également être déployé dans le cadre d'un hébergement web. Ce type d'infrastructure à base de conteneurs pourrait également être déployé dans le cadre d'un hébergement web qui, par nature, est hétérogène et utilise une grande variété de technologies.
## Contenu et délivrables du brevet ## Contenu et délivrables du brevet
Afin d'explorer les possibilités des conteneurs et de constituer une base pour développer les compétences des équipes intéressées par ce type d'infrastructure (équipe système, portail...), il s’agira dans ce brevet d’étudier et d’expérimenter la mise en place d’une infrastructure à base de conteneurs. Comme point de départ, j'ai envisagé une infrastructure qui pourrait succéder à l’infrastructure « webapps » actuelle de SISG[^webappsucl] située dans l’hébergement web. Afin d'explorer les possibilités des conteneurs et de constituer une base pour développer les compétences des équipes intéressées par ce type d'infrastructure (équipe système, portail...), il s’agira dans ce brevet d’étudier et d’expérimenter la mise en place d’une infrastructure à base de conteneurs. Comme point de départ, j'ai envisagé une infrastructure qui pourrait succéder à l’infrastructure « webapps » actuelle de SISG[^webappsucl],
Au-delà de cette infrastructure proprement dite, il s'agira également de tester des outils permettant l'automatisation des tâches de gestion de l’infrastructure et de déploiement d’applications sur celle-ci. Au-delà de cette infrastructure proprement dite, il s'agira également de tester des outils permettant l'automatisation des tâches de gestion de l’infrastructure et de déploiement d’applications sur celle-ci.
...@@ -58,7 +56,7 @@ Les délivrables sont : ...@@ -58,7 +56,7 @@ Les délivrables sont :
- **Une documentation** (le présent document) décrivant la mise en place de l’infrastructure, les étapes nécessaires pour la répliquer ou la reconstruire et les outils permettant d’en automatiser les tâches de gestion. Y sont également abordées les questions relatives à la mise en production d’une telle infrastructure et au déploiement d’applications sur celle-ci. - **Une documentation** (le présent document) décrivant la mise en place de l’infrastructure, les étapes nécessaires pour la répliquer ou la reconstruire et les outils permettant d’en automatiser les tâches de gestion. Y sont également abordées les questions relatives à la mise en production d’une telle infrastructure et au déploiement d’applications sur celle-ci.
- **Les fichiers techniques** (scripts, fichiers de configuration, description des machines virtuels, fichiers images docker…) nécessaire à la mise en place de l'infrastructure et au déploiement d’applications web seront également mis à disposition. - **Les fichiers techniques** (scripts, fichiers de configuration, description des machines virtuels, fichiers images docker…) nécessaire à la mise en place de l'infrastructure et au déploiement d’applications web seront également mis à disposition.
La documentation et les fichiers techniques sont mis à disposition de tous dans un dépôt Gitlab sur la forge institutionnelle. La documentation et les fichiers techniques sont mis à disposition dans un dépôt Gitlab sur la forge institutionnelle.
## Organisation du présent document ## Organisation du présent document
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter