Conseils pour utiliser Docker pour vos applications Atlassian

Visionnez nos Webinars à la demande | Agilité à l'échelle, IT Service Management, Cloud, Bonnes pratiques Jira, Témoignages clients... Cliquez-ici !

valiantys-logo
Back

Conseils pour utiliser Docker pour vos applications Atlassian

Docker est un système lancé en 2013 permettant d’exécuter une ou plusieurs applications dans un environnement isolé (on parlera de container). Docker peut être exécuté sur plusieurs plateformes, initialement développé pour Linux, il a ensuite été porté sur OS X et Windows.

Docker est proposé sous deux distributions:

  • « Docker CE » (Docker Community Edition) qui est une distribution open-source sous licence Apache 2.0.
  • « Docker EE » (Docker Docker Enterprise Edition), qui est une distribution payante incluant des fonctionnalisées supplémentaires et du support. Elle est proposée sous trois niveaux : Basic, standard, Advanced.

Pourquoi utiliser Docker plutôt que la virtualisation classique ?

La virtualisation classique, telle qu’on la connait avec VMware ou d’autres solutions, permet aussi d’isoler des applications au sein de machines virtuelles (VM), mais pour cela, elle exécute au sein de la VM un système d’exploitation. Si on exécute 3 VM, alors 4 systèmes d’exploitation tournent (1 pour l’hôte et 1 pour chaque VM). Alors que Docker utilise uniquement le système d’exploitation de l’hôte.

Ceci a pour effet d’alléger considérablement le poids des containers Docker par rapport aux VMs, à la fois d’un point de vue de l’espace disque, mais surtout d’un point de vue des ressources système (RAM et Processeur).

Source: https://www.docker.com/what-container

L’autre avantage de Docker porte sur sa structure modulaire. En effet, le container est une exécution contextualisée d’une image. Ainsi, l’image peut être exécutée plusieurs fois dans des contextes différents, limitant ainsi grandement les tâches d’initialisation d’une nouvelle instance.

Applications supportées

Atlassian propose depuis fin 2017, des images sur le Hub Docker (https://hub.docker.com/u/atlassian/), construites à son initiative pour plusieurs produits, dont Confluence (à partir de la version 6.0.7). Néanmoins, Atlassian ne reconnait la compatibilité de Confluence avec Docker (Supported Plateforms) qu’à partir de la version 6.4. Rien n’est en revanche annoncé pour Jira à ce stade.

Mais je vous rassure, j’ai vu Jira fonctionner parfaitement sous Docker à plusieurs reprises. Cela nécessite la création de sa propre image.

Il faut cependant se poser la question du support Atlassian. En cas d’intervention du Support Atlassian, ils pourraient effectivement ne pas vouloir traiter le problème, justifiant que ce dernier peut avoir été causé par l’utilisation de Docker.

Les images fournies par Atlassian le sont à des fins de test. Elles sont construites autour de OpenJDK qui n’est pas supporté en production. Pour un usage en production, il sera donc nécéssaire de construire ses propres images.

Cas d’usage & niveau de personnalisation : Plateforme de test

Pour déployer un container Confluence, nul besoin de connaitre Docker. Il suffit d’installer Docker et d’exécuter les commandes documentées par Atlassian.

 

Il est toujours possible d’ajouter facilement des paramètres tel que JVM_MINIMUM_MEMORY, JVM_MAXIMUM_MEMORY, …

 

Suite à cette commande, une instance Confluence répond sur le port 8090 de votre hôte local (http://localhost:8090).

Détaillons un peu la première requête :

  • on fait appel au processus docker: docker
  • on définit l’action à exécuter: run 
  • on rend visible à notre hôte une partie de l’arborescence de Confluence: -v /data/your-confluence-home:/var/atlassian/application-data/confluence
  • on nomme le container pour mieux le reconnaître: –name= »confluence »
  • on expose le port 8090 interne au container sur le port 8090 de notre hôte: -d -p 8090:8090
  • de même pour le port 8091: -p 8091:8091
  • on définit l’image source qu’il faut utiliser : atlassian/confluence-server

La mise à jour n’a jamais été aussi simple

Pour mettre à jour la version de notre Confluence, rien de plus simple. On arrête Confluence.

On supprime le container Confluence. Les données (Confluence Home et la base de données) ayant été externalisées sur l’hôte, elles seront conservées.

On relance l’instance. L’image ayant été mise à jour, notre instance est maintenant à jour.

Il n’est pas possible de modifier les fichiers contenus dans le container. Si un tel besoin apparaît, il faut effectuer la modification au niveau de l’image avant de la démarrer.

Pour aller plus loin

Il faut d’abord créer sa propre image. Il est possible d’utiliser le matériel fourni par Atlassian. Pour cela, il faut récupérer avec SourceTree le code source stocké dans Bitbucket : atlassian/docker-atlassian-confluence-server. L’essentiel du travail consiste ensuite à personnaliser le fichier Dockerfile.

Par exemple, pour mettre à jour Confluence avec la version 6.7.3 : « ARG CONFLUENCE_VERSION=6.7.3 » (ce qui installera la version 6.7.3 de Confluence au lieu de la 6.6.1)

On crée ensuite l’image et on relance le container :

 Beaucoup d’informations sont disponibles dans les tutoriels Docker, ainsi que dans le Confluence d’Atlassian dédié à la documentation (notamment sur comment passer l’image docker sur JDK).

Utiliser Docker en Production

Pour l’utilisation en production, nous l’avons vu, il faut donc créer ses propres images. Il y a ensuite plusieurs options intéressantes (même sur la version Docker CE et évidement encore plus sur la version EE) :

  • La clusterisation des Hôtes Docker facilite le partage des images et la haute disponibilité.
  • Docker propose également des déploiements en service permettant de redémarrer automatiquement en cas de redémarrage de l’hôte.
  • Docker permet des déploiements d’infrastructure (on peut par exemple déployer en une fois : un container MySQL, un container HTTPD, un container Jira et un container Confluence)

Industrialisation

En couplant Docker avec une plateforme IC/DC (telle quel Bamboo), il est possible d’automatiser la construction des images et le déploiement dans des containers de recettes, puis des containers de production.

Si on y ajoute Ansible pour effectuer les opérations de préparation de l’Hôte, nous obtenons une plateforme performante, sécurisée, facile à faire évoluer et peu gourmande en ressources.

Mon article vous donne une bonne vision des avantages à utiliser Docker et des conseils pour l’utiliser au mieux. Si vous avez des problématiques spécifiques, nous pouvons certainement vous aider car c’est notre métier. Contactez-nous pour discuter de vos projets.

Cutted Triangle

Inscrivez-vous à notre newsletter

Demande enregistrée ! Demande en cours... Ceci n'est pas un email Une erreur s'est produite

Conformément à notre politique de confidentialité, nous nous engageons à respecter vos données personnelles.

Contactez-nous

Nos consultants certifiés Atlassian seront ravis de vous répondre.

Rejoindre Valiantys

Nous sommes en train de construire un équipe extraordinaire. Vous en êtes ?

Suivez-nous

Nous utilisons des cookies pour le fonctionnement de ce site, pour améliorer son utilisation, personnaliser votre expérience et réaliser des statistiques de visite. Vous pouvez gérer les paramètres et choisir d’accepter ou non certains cookies durant votre navigation. Pour plus d’informations, consultez notre politique de confidentialité. Nos politique de confidentialité

Paramètres de confidentialité

Afin de faciliter votre navigation et de vous apporter le meilleur service possible, nous utilisons des cookies pour améliorer le site aux besoins des visiteurs, notamment selon la fréquentation.  Pour plus d’informations, consultez notre politique de confidentialité. Nos politique de confidentialité

Recaptcha

Google reCAPTCHA est un système conçu pour distinguer les humains des ordinateurs, de telle sorte que les bots soient incapables de remplir les formulaires de manière malveillante au nom d’un être humain.

Analytics

Utilisé pour envoyer des données à Google Analytics sur le périphérique et le comportement du visiteur. Suit l'internaute à travers les appareils et les canaux de marketing. Utilisé par Google Analytics pour diminuer radicalement le taux de requêtes. Enregistre un identifiant unique utilisé pour générer des données statistiques sur la façon dont le visiteur utilise le site.

LinkedIn

Cookies pour une publicité ciblée : Ces cookies peuvent être mis en place au sein de notre site Web par nos partenaires publicitaires. Ils peuvent être utilisés par ces sociétés pour établir un profil de vos intérêts et vous proposer des publicités pertinentes sur d'autres sites Web. Ils ne stockent pas directement des données personnelles, mais sont basés sur l'identification unique de votre navigateur et de votre appareil Internet. Si vous n'autorisez pas ces cookies, votre publicité sera moins ciblée.

Cookies "réseaux sociaux" : Ces cookies sont activés par les services proposés sur les réseaux sociaux que nous avons ajoutés au site Web afin de vous donner la possibilité de partager notre contenu avec votre réseau et vos connaissances. Ils nous permettent également de suivre votre navigation sur d’autres sites Web et d’établir un profil de vos intérêts. Cela peut avoir un impact sur le contenu et les messages affichés sur les autres sites Web que vous consultez. Si vous n'autorisez pas ces cookies, il se peut que vous ne puissiez pas utiliser ou visualiser ces outils de partage.