web-dev-qa-db-fra.com

Quelle est la différence entre Cloud Foundry et Docker?

Je suis un développeur Java. Nous utilisons Weblogic pour héberger nos applications. On m'a demandé de remplacer weblogic par une alternative opensource. Nous prévoyons une utilisation avec SpringBoot. Nous examinons également Docker./Cloud Foundry, mais Docker/Cloud Foundry est un nouveau territoire pour moi.

  1. Quelqu'un peut-il s'il vous plaît me dire la différence entre Cloud Foundry et Docker?
  2. Si nous utilisons Docker mais pas la fonderie Cloud, que manque-t-il?
  3. Si nous utilisons Cloud Foundry mais pas Docker, que manque-t-il?

Merci de votre aide.

59
James

Docker est une technologie permettant de créer et d’exécuter des "conteneurs" Linux. Dans un certain sens, vous pouvez les considérer comme des machines virtuelles légères. Un conteneur de menu fixe pour l'application SpringBoot se compose d'une image de menu fixe, qui contient essentiellement un système de fichiers avec tout le matériel nécessaire à l'exécution de votre application (JVM, votre code source, etc.), ainsi que des métadonnées de conteneur de menu fixe, qui indiquent au démon de la station de base comment exécuter l'application dans l'image (par exemple, quelles variables d'environnement à définir, quels ports à exposer, quelles commandes à exécuter, etc.). Le démon docker utilisera des fonctionnalités Linux telles que des groupes de contrôle et des espaces de noms de noyau pour exécuter le conteneur indépendamment des autres processus en cours d'exécution sur la machine hôte. Docker est un peu de bas niveau, en ce sens que vous devez spécifier tout ce qui va dans l'image, et qu'il exécute des choses arbitraires, à savoir tout ce que vous mettez dans votre image et le lui ordonne. Le conteneur Docker que vous obtenez est très portable. Vous pouvez donc créer, tester et exécuter votre conteneur Docker localement pour le développement, puis l'expédier à un hôte de production disposant également d'un démon Docker, et vous assurer que vous obtenez exactement la même chose.

Cloud Foundry fonctionne sur une couche d'abstraction supérieure, les applications étant un concept de première classe. Cloud Foundry utilise une technologie de conteneurisation similaire à celle de docker pour créer des images portables, puis pour les exécuter, mais il s'agit d'un détail d'implémentation et vous n'avez pas besoin de spécifier tous les détails. Dans les versions plus récentes de Cloud Foundry, les images de menu fixe seront également prises en charge. Vous pouvez donc spécifier les détails si vous le souhaitez, mais le flux de travail "buildpack" lui permet de détecter automatiquement une application Java lorsque vous poussez votre application et saura comment inclure tout ce qui est nécessaire pour l'exécution Java) lors de la génération de l'image.

Avec Cloud Foundry, les applications et la gestion des applications étant des concepts de premier ordre, et comme il fonctionne à un niveau supérieur, vous bénéficiez de toutes sortes de choses gratuitement. Par exemple, vous pouvez facilement redimensionner votre application horizontalement (ajouter des instances), par exemple. cf scale my_app -i 5 ou verticalement, cf scale my_app -m 2G (pour définir la mémoire allouée pour chaque instance). Vous obtenez des journaux d'application en continu: cf logs my_app. Cloud Foundry vous offre beaucoup de tolérance aux pannes gratuitement. Par conséquent, si l'une de vos instances d'application tombe en panne ou si le processus exécutant les conteneurs d'applications se bloque (ce qui est similaire au démon docker), ou si l'hôte VM exécutant le processus d’exécution du conteneur ou le cluster de matériel sur lequel VM étant supprimée), Cloud Foundry restaurera automatiquement vos instances.

Le démon docker est un processus unique que vous pouvez exécuter sur n’importe quel ordinateur Linux. Donc, si vous faites quelque chose de petit et de simple, et que vous avez besoin de faire la majeure partie de la configuration, il peut être plus facile de démarrer et d’exécuter à la fois localement et en développement à l’aide de docker. Avec docker, il est également plus facile d'accéder et de partager l'image de docker que vous créez. Ainsi, une fois que vous avez créé une image, vous pouvez la placer dans un référentiel de docker, puis l'exécuter sur n'importe quel autre démon de docker. Avec Cloud Foundry, l'image construite est généralement un détail d'implémentation et vous n'y avez pas vraiment accès. Par exemple, vous ne pouvez pas extraire cette image et l'exécuter sur une autre installation de Cloud Foundry.

Il existe différents projets visant à rendre Cloud Foundry plus accessible et plus facile à configurer, tout en vous offrant de nombreux avantages d'un PaaS. Certains de ces projets visent également à vous permettre de combiner l'utilisation de docker et les avantages de docker tout en bénéficiant de nombreux avantages PaaS obtenus de Cloud Foundry.

Voir Lattice et Cloud Foundry sur BOSH-Lite .

Il existe également plusieurs services Cloud Foundry hébergés.

Voir Services Web Pivotal et IBM BlueMix

De nombreux projets non liés aux FC visent également à créer une couche de plate-forme autour de la technologie de base du docker, qu’il s’agisse de solutions fonctionnant sur le vif ou de services hébergés.

Voir projet Kubernetes de Google et Amazon Container Service

Divulgation complète: Je suis un ingénieur en logiciel travaillant sur Cloud Foundry chez Pivotal

130
Amit Kumar Gupta