Docker – DevOps

Docker

Docker permet de déployer une application au sein d’un conteneur virtuel pouvant être exécuté sur n’importe quel serveur. Cette technologie facilite le déploiement d’une application et le dimensionnement de l’infrastructure associée.

Ingensi exploite le potentiel offert par Docker pour certains de ses clients et est en mesure de vous proposer cet outil de déploiement rapide et sécurisé pour vos projets et applications Big Data.

 

Docker

Docker Store Applicaiton

Le conteneur n’embarquant pas d’OS, à la différence de la machine virtuelle (VM), il permet un lancement plus rapide, ainsi qu’une migration plus simple d’une machine physique à l’autre, en raison de son faible poids.

Un conteneur est donc lancé à partir d’une image prédéfinie, comme une distribution Linux (Ubuntu, CentOS, etc.) ou directement depuis un programme prêt à l’emploi (Elasticsearch, Nginx, etc.). Docker centralise par ailleurs dans son dépôt un grand nombre d’images applicatives prêtes à l’emploi.


Virtualisation classique effectuée avec VirtualBox :

La couche Gurest OS est présente

Virtualisation effectuée avec Docker :

La couche Guest OS a disparu

Dans les 2 schémas ci-dessus, on peut remarquer que la couche Guest OS a disparu, ce qui permet d’économiser un espace de plusieurs dizaines de Go et de ne disposer que des librairies et binaires nécessaires à votre application, permettant ainsi un gain de performance considérable.

Un premier objectif pourrait être de partager un environnement commun à tous les développeurs d’une équipe, celui de l’application, mettant ainsi fin au clivage développement | production.


De son côté, Ingensi s’est déjà appuyée sur Docker pour développer une solution open-source (intégrée à la communauté Beats) permettant de récupérer et d’indexer les statistiques des conteneurs Docker dans Elastichsearch : DockBeat.


DevOps

Initié principalement par des administrateurs système férus de la méthode agile, le mouvement « DevOps » part du constat suivant : si il est demandé d’un côté à une équipe de développement de livrer rapidement de nouvelles fonctionnalités sur une application, il est demandé par ailleurs à l’équipe d’exploitation de conserver un système qui soit stable. De cette collaboration, naissent alors de potentiels conflits pouvant s’ancrer dans le temps à plus ou moins longues échéances.

Keep C.A.L.M.S and release more!L’idée du mouvement DevOps reflète un ensemble de pratiques humaines pouvant se résumer sous l’acronyme CALMS et visant à casser le « mur de la confusion » qui sépare les “Dev” des “Ops” :

  • Culture : privilégier les personnes et les interactions plutôt que les process ou les outils.
  • Automation : l’automatisation est primordiale pour faciliter les installations afin d’obtenir des retours rapides d’une nouvelle version.
  • Lean : utiliser les principes Lean afin de diminuer le durée d’un cycle de développement (identification des processus amenant de la valeur, amélioration continue, etc.).
  • Measurement : mesurer tout ! Cela permet d’aligner les équipes via des métriques communes et partagées ainsi que de voir les points de blocage empêchant un feedback rapide.
  • Sharing : créer une culture où les personnes partagent des idées, des outils, etc.