Comment adapter les conteneurs Docker en production

Donc, j’ai récemment découvert cet outil génial, et il dit

Docker est un projet open-source pour créer facilement des conteneurs légers, portables et autonomes à partir de n’importe quelle application. Le même conteneur que le développeur crée et les tests sur un ordinateur portable peuvent être exécutés à grande échelle, en production, sur des machines virtuelles, des grappes, des grappes OpenStack, des clouds publics, etc.

Disons que j’ai une image de docker qui exécute Nginx et un site Web se connecte à une firebase database externe. Comment puis-je adapter le conteneur en production?

    La réponse courte est que vous devez écrire votre propre logique pour ce faire.

    Je m’attendrais à ce que ce type de fonctionnalité émerge des projets suivants, construits sur docker et conçus pour prendre en charge les applications en production:

    • flynn
    • deis
    • Coreos
    • Mesos

    Mise à jour 1

    Un autre projet connexe que j’ai récemment découvert:

    • maestro

    Mise à jour 2

    La dernière version Openstack contient la prise en charge de la gestion des conteneurs Docker:

    • Docker Openstack
    • Zone Paas dans OpenStack

    Mise à jour 3

    Système de gestion des instances Docker

    • Chantier naval

    Et une présentation sur l’utilisation d’outils tels que Packer , Docker et Serf pour fournir un modèle d’infrastructure de serveur immuable

    • FutureOps avec une infrastructure immuable
    • Diapositives

    Mise à jour 4

    Un article sur la façon de câbler des conteneurs Docker à l’aide de serf :

    • Décentralisation Docker: Comment utiliser serf avec Docker

    Mise à jour 5

    Exécutez Docker sur Mesos en utilisant le framework Marathon

    Didacticiel du développeur de Mesosphere Docker

    Mise à jour 6

    Exécutez Docker sur Tsuru car il prend en charge le déploiement de docker-cluster et du planificateur séparé

    Mise à jour 7

    Orchestration d’environnements basés sur Docker

    maestro-ng

    Mise à jour 8

    decking.io

    Mise à jour 9

    Google kubernetes

    Mise à jour 10

    Redhat a refacturé son PAAS openshift pour intégrer Docker

    • Projet Atomic
    • Geard

    Mise à jour 11

    Une librairie Docker NodeJS encapsulant la ligne de commande Docker et la gérant à partir d’un fichier json.

    • docker-cmd

    Mise à jour 12

    Le nouveau service de conteneur d’ Amazon permet la mise à l’échelle dans le cluster.

    Mise à jour 13

    Au sens ssortingct, Flocker ne fait pas ” évoluer ” les applications, mais il est conçu pour créer une fonction connexe de création de conteneurs à états (exécutant des services de bases de données?) Sur plusieurs hôtes docker:

    https://clusterhq.com/

    Mise à jour 14

    Un projet pour créer des modèles portables décrivant les applications Docker:

    http://panamax.io/

    Mise à jour 15

    Le projet Docker aborde maintenant l’orchestration en mode natif (voir l’ annonce )

    • Docker machine
    • Docker essaim
    • Docker compose

    Mise à jour 16

    Spotify Helios

    Voir également:

    Mise à jour 17

    Le projet Openstack a maintenant un nouveau projet “conteneur en tant que service” appelé Magnum:

    Présente beaucoup de promesses, permet la configuration facile des frameworks d’orchestration Docker tels que Kubernetes et Docker Swarm.

    Mise à jour 18

    Rancher est un projet qui mûrit rapidement

    http://rancher.com/

    Nice UI et un fort accent sur les infrastructures Docker hybrides

    Mise à jour 19

    Le projet Lattice est une émanation de Cloud Foundry pour la gestion des clusters de conteneurs.

    Mise à jour 20

    Docker a récemment acheté Tutum:

    https://www.docker.com/tutum

    Mise à jour 21

    Gestionnaire de packages pour les applications déployées sur Kubernetes .

    http://helm.sh/

    Mise à jour 22

    Vamp est une plate-forme open source et auto-hébergée pour gérer des architectures (micro) orientées services qui reposent sur la technologie des conteneurs.

    http://vamp.io/

    Mise à jour 23

    Un planificateur dissortingbué, hautement disponible et datacenter-aware

    Des gars qui nous ont donné Vagrant et d’autres outils puissants.

    Mise à jour 24

    Solution d’hébergement de conteneurs pour AWS, open source et basée sur Kubernetes

    https://supergiant.io/

    Mise à jour 25

    Conteneur Apache Mesos hébergé en Allemagne

    https://sloppy.io/features/#features

    Et Docker Inc. fournit également un service d’hébergement de conteneurs appelé cloud Docker

    https://cloud.docker.com/

    Mise à jour 26

    Jelastic est un service PAAS hébergé qui règle automatiquement les conteneurs.

    Deis automatise la mise à l’échelle des conteneurs Docker (entre autres).

    Deis (prononcé DAY-iss) est un PaaS open source qui facilite le déploiement et la gestion d’applications sur vos propres serveurs. Deis s’appuie sur Docker et CoreOS pour fournir un PaaS léger avec un stream de travail inspiré d’Heroku.

    Voici le workflow du développeur:

     deis create myapp # create a new deis app called "myapp" git push deis master # built with a buildpack or dockerfile deis scale web=16 worker=4 # scale up docker containers 

    Deis déploie automatiquement vos conteneurs Docker sur un cluster CoreOS et configure les routeurs Nginx pour acheminer les requêtes vers des conteneurs Docker sains. Si un hôte meurt, les conteneurs sont automatiquement redémarrés sur un autre hôte en quelques secondes. Il suffit de naviguer jusqu’à l’URL du proxy ou d’utiliser deis open pour deis open à votre application.

    Quelques autres commandes utiles:

     deis config:set DATABASE_URL= # attach to a database w/ an envvar deis run make test # run ephemeral containers for one-off tasks deis logs # get aggregated logs for troubleshooting deis rollback v23 # rollback to a prior release 

    Pour voir cela en action, consultez la vidéo du terminal à l’ adresse http://deis.io/overview/ . Vous pouvez également en apprendre davantage sur les concepts Deis ou vous lancer dans le déploiement de votre propre PaaS privé .

    Jetez un oeil à Rancher.com – il peut gérer plusieurs hôtes Docker et bien plus encore.

    Vous pouvez essayer Tsuru. Tsuru est un PaaS opensource inspiré de Heroku, et il est déjà en production chez Globo.com (twig internet de la plus grande société de télévision de radiodiffusion au Brésil)

    Il gère l’intégralité du stream d’une application, depuis la création du conteneur, le déploiement, le routage (avec hipache) avec de nombreuses fonctionnalités intéressantes telles que le cluster de docker, la mise à l’échelle des unités, le déploiement séparé, etc.

    Jetez un œil dans notre documentation ci-dessous: http://docs.tsuru.io/

    Voici notre post couvrant notre environnement: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/

    Une approche judicieuse de la mise à l’échelle de Docker pourrait être:

    1. Chaque service sera un conteneur de docker
    2. Découverte du service intra-conteneur géré via des liens ( nouvelle fonctionnalité de docker 0.6.5 )
    3. Les conteneurs seront déployés via Dokku
    4. Les applications seront gérées par le chantier naval qui utilise à son tour hipache

    Un autre projet open source de docker de Yandex:

    • cocaïne

    Les gars de Openshift ont également créé un projet. Vous pouvez trouver plus d’informations ici , essayez le conteneur de test et des informations détaillées ici . Le seul problème est que la solution est centrée sur Redhat pour le moment 🙂

    Bien que nous soyons de grands fans de Deis (deis.io) et que nous y déployions activement, il existe d’autres solutions de déploiement de type PaaS Heroku, notamment:

    Longshoreman des gens de Wayfinder:

    https://github.com/longshoreman/longshoreman

    Decker des gens de CloudCredo, en utilisant CloudFoundry:

    http://www.cloudcredo.com/decker-docker-cloud-foundry/

    En ce qui concerne l’orchestration directe, le projet opensource Centurion de NewRelic semble très prometteur:

    https://github.com/newrelic/centurion

    Jetez également un coup d’oeil à etcd et consul .

    Panamax: Docker Management for Humans. panamax.io

    Fig: environnements de développement rapides et isolés utilisant Docker. fig.sh

    Une option non mentionnée dans d’autres articles est Helios. Il est construit par Spotify et n’essaye pas d’en faire trop.

    https://github.com/spotify/helios