Canalblog
Suivre ce blog Administration + Créer mon blog

Plus proche de vos pensées

17 octobre 2015

DOCKER: UTILITE POUR LES DEVELOPPEURS JAVA EE

Introduction

Les conteneurs  permettent aux développeurs d'emballer leurs applications (et dépendances sous-jacentes) dans de nouveaux moyens qui sont portables et travaillent constamment partout. Sur votre machine, dans la production, dans votre data center, et dans le cloud. Et Docker est devenu le standard de facto pour les récipients portables dans le cloud.

Docker est la technologie de conteneur Linux développeur de l'environnement qui permet la création de votre pile: OS, JVM, serveur d'application, application, et toute votre configuration personnalisée. Donc, avec tout ce qu'elle offre, combien  votre équipe est confortable de prendre Docker du développement à la production? Entendez-vous les développeurs dire  « mais il fonctionne sur ma machine!» Quand les codes ne passent plus dans la production?

Nous vous offrons  séance pratique avec Docker, de l'installation, à l'exploration de Docker Hub, à l'élaboration de leurs propres images, à l'ajout d'applications Java et exécutant des conteneurs personnalisés. Il expliquera également comment utiliser Swarm à Orches orchestrent ces conteneurs ensemble. Alors apportez votre ordinateur portable Windows, OSX ou Linux et être prêt à creuser dans un outil qui promet d'être à la pointe de notre industrie pendant un certain temps à venir.

 

docker

 

I)   PRESENTATION DE DOCKER

Depuis quelque temps, nous utilisons Docker pour gérer des containers Linux LXC. Un container peut être vu comme une machine virtuelle basique. Il va permettre de créer un système de fichiers isolé qui va partager le kernel de l'OS qui l'héberge

Docker est habituellement utilisé pour :

• automatiser le packaging et le déploiement d'applications ;

• la création de PaaS environnement léger et / ou privé ;

• l'intégration continue, déploiement continu, test automatisé : DevOps ;

• la gestion de déploiement d'applications “scalable”.

Docker est un gestionnaire/administrateur de container basé sur un principe de template de container. La gestion de

template de container est un atout majeur de Docker qui propose une riche variété de containers préexistants mais

également grâce à la personnalisation de containers.

Docker utilise LXC qui est l'implémentation de référence de containers dans Linux :

• cgroup ;

• apparmor / selinux ;

• chroots ;

• kernel namespaces.

Docker propose des services pour facilement créer, éditer, publier, exécuter des containers

Quelques projets utilisant DOCKER

Dokku

Dokku est un mini-Heroku, il se démarque par sa simplicité, il est considéré comme la plus petite implémentation de PaaS, en moins de 100 lignes de bash!

Flynn

Le créateur de dokku est également le cofondateur de flynn. C’est un peu le « super dokku », sa version commerciale. Docker est utilisé pour la gestion des containers, les « briques » contenant les services disponibles pour la plate-forme.

CoreOS

CoreOS est une version la plus allégé possible de linux pour améliorer les performances pour des déploiement massifs de serveurs. Il est compatible notamment avec vagrant et Docker.

Deis

Deis est un PaaS open source qui permet de déployer et scaler des containers LXC, des noeuds Chef ou des buildpacks Heroku.

CloudUnit

Notre projet! Docker est un des outils utilisé pour développer notre solution decloud public. Il nous permet de gérer la création des containers hébergeant chacun un service (Tomcat, Mysql) pour nos clients. Chaque container est une réplique d’un même modèle , d’une même image.

Des sociétés importantes comme eBay, CloudFlare et Mailgun planifient de l’utiliser en production prochainement.

 

 II) UTILITE POUR LES DEVELOPPEURS JAVA EE

 Les serveurs d'applications Java EE séparent l'infrastructure stable à partir de code d'application. L'exécution d'applications Java EE sur les contenants de docker peut considérablement accélérer votre construction et commencer à temps. Vous avez seulement à construire ce qui varie et non l'ensemble de l'infrastructure.

 

Une application typique Java EE utilise un serveur d'applications, telle que JBoss, et une base de données, tel que MySQL. En outre, vous pourriez avoir un front-end niveau séparé, dire Apache, pour l'équilibrage de charge un certain nombre de serveur d'application. Une couche de mise en cache, comme Infinispan, peut être utilisé pour améliorer les performances globales de l'application. Système de messagerie, comme ActiveMQ, peuvent être utilisés pour le traitement des files d'attente. Les deux composants de mise en cache et de messagerie peuvent être configurés en tant que cluster pour plus d'évolutivité.

Nous montrerons plus tard quelques recettes simples Docker pour configurer vos contenants qui utilisent le serveur d'applications et de base de données. Après le blog couvrira recettes les plus avancés qui comprendra frontal, la mise en cache, la messagerie, et le clustering.

 

III) ETAPE D'INSTALLATION DE DOCKER

Docker Recette n ° 1: Configuration Docker utilisant Docker machine
Si Docker est pas encore configuré sur votre machine, puis en tant que première étape, vous avez besoin de mettre en place. Si vous êtes sur une version récente de Linux alors vous avez déjà Docker. Ou peut éventuellement être installé en tant que:

sudo apt-get install docker-io
Sur Mac et Windows, cela signifie l'installation boot2docker qui est un Tinycore Linux VM et est livré avec Docker hôte. Ensuite, vous devez configurer les touches et les certificats ssh.

Heureusement, cela est extrêmement simplifiée en utilisant Docker machine. Il vous emmène à partir de zéro à Docker sur un hôte avec une seule commande. Cet hôte pourrait être votre ordinateur portable, dans le nuage, ou dans votre centre de données. Il crée des serveurs, installe Docker sur eux, puis configure le client Docker de leur parler.

Cette recette est expliquée en détail dans Docker machine à la configuration Docker hôte.

Docker Recette n ° 2: Application Server + base de données en mémoire


Une des fonctionnalités intéressantes de Java EE 7 est la ressource de base de données par défaut. Cela vous permet de ne pas vous soucier de créer une ressource JDBC dans une avant que votre demande est accessible spécifique au serveur application. Toute serveur Java EE 7 application compatible permettra de cartographier le nom de ressource JDBC par défaut (java: comp / DefaultDatasource) à la ressource spécifique au serveur application dans le serveur de base de données groupée.

 

Voici la commande qui exécute Java EE 7 application dans JBoss:

 

docker run it -il -p 8080: 8080 arungupta / javaee7-Hol

docker run it  -il -p 8080: 8080 arungupta / javaee7-Hol
 
Si vous souhaitez exécuter une application typique Java EE 7 en utilisant JBoss et H2 base de données en mémoire, puis cette recette Docker est expliqué en détail dans Java EE 7 Hands-on Lab sur JBoss et Docker.

Docker Recette # 3: deux conteneurs sur le même hôte en utilisant les liaisons

La recette précédente vous permet de démarrer assez rapidement, mais devient un goulot d'étranglement dès que la base de données est uniquement en mémoire. Cela signifie que toutes les modifications apportées à votre schéma et les données sont perdues après le serveur d'application arrête. Dans ce cas, vous devez utiliser un serveur de base de données qui réside à l'extérieur du serveur d'application. Par exemple, MySQL comme serveur de base et JBoss que le serveur d'applications.

Pour garder les choses simples, à la fois le serveur de base de données et serveur d'applications peuvent fonctionner sur le même hôte.

Docker Recette pour Java EE application # 2

Docker Container liens sont utilisés pour relier les deux conteneurs. La création d'un lien entre deux récipients crée un conduit entre un récipient de source et un conteneur cible et transférer des informations au sujet de conteneur de source vers la cible récipient en toute sécurité. Dans notre cas, conteneur cible (JBoss) peut voir des informations sur conteneur source (MySQL). La partie important de comprendre ici est que aucune de ces informations doit être exposée publiquement par le conteneur source, et est seulement à la disposition du conteneur cible.

 

Voici les commandes qui commencent les conteneurs MySQL et JBoss et de les relier:

docker exécuter --name mysqldb -e MYSQL_USER = mysql -e MYSQL_PASSWORD = mysql -e MYSQL_DATABASE = échantillon -e MYSQL_ROOT_PASSWORD = supersecret -d mysql
docker run it --name mywildfly --link mysqldb: db -p 8080: 8080 -d arungupta / JBoss-mysql-javaee7

docker run it --name mysqldb -e MYSQL_USER = mysql -e MYSQL_PASSWORD = mysql -e MYSQL_DATABASE = échantillon -e MYSQL_ROOT_PASSWORD = supersecret -d mysql
docker exécuté --name mywildfly --link mysqldb: db -p 8080: 8080 -d arungupta / JBoss-mysql-javaee7
 
JBoss et MySQL liée sur deux Docker conteneurs explique comment mettre en place cette recette.

Docker Recette # 3: deux conteneurs sur le même hôte en utilisant les liaisons

La recette précédente vous permet de démarrer assez rapidement, mais devient un goulot d'étranglement dès que la base de données est uniquement en mémoire. Cela signifie que toutes les modifications apportées à votre schéma et les données sont perdues après le serveur d'application arrête. Dans ce cas, vous devez utiliser un serveur de base de données qui réside à l'extérieur du serveur d'application. Par exemple, MySQL comme serveur de base et JBoss que le serveur d'applications.

Pour garder les choses simples, à la fois le serveur de base de données et serveur d'applications peuvent fonctionner sur le même hôte.

Docker Recette n °4: Deux conteneurs sur le même hôte 

 

La recette précédente vous avez besoin pour exécuter les conteneurs dans un ordre spécifique. Exécutant des applications multi-conteneurs peuvent rapidement devenir difficile si chaque niveau de votre application est assis dans un récipient. Fig (obsolète en faveur de Docker Compose) est un outil d'orchestration Docker que:

Définir plusieurs conteneurs dans un seul fichier de configuration
Créer des dépendances entre deux conteneurs en créant des liens entre eux
Commencez conteneurs dans le bon ordre

.....A suivre

Publicité
Publicité
Plus proche de vos pensées
Publicité
Archives
Publicité