scale - guia - tutorial docker windows
Cómo escalar los contenedores Docker en producción (10)
Así que recientemente descubrí esta increíble herramienta, y dice
Docker es un proyecto de código abierto para crear fácilmente contenedores livianos, portátiles y autosuficientes desde cualquier aplicación. El mismo contenedor que un desarrollador crea y prueba en una computadora portátil puede ejecutarse a escala, en producción, en VM, bare metal, clústeres OpenStack, nubes públicas y más.
Digamos que tengo una imagen acoplable que ejecuta Nginx y un sitio web se conecta a una base de datos externa. ¿Cómo escalo el contenedor en producción?
Eche un vistazo a http://rancher.com/ : puede administrar múltiples hosts Docker y mucho más.
La respuesta corta es que tendrías que escribir tu propia lógica para hacer esto.
Esperaría que este tipo de características emergiera de los siguientes proyectos, construidos sobre el acoplador y diseñados para soportar aplicaciones en producción:
Actualización 1
Otro proyecto relacionado que descubrí recientemente:
Actualización 2
La última versión de Openstack contiene soporte para administrar contenedores Docker:
Actualización 3
Sistema para administrar instancias de Docker
Y una presentación sobre cómo usar herramientas como Packer , Docker y Serf para entregar un patrón de infraestructura de servidor inmutable
Actualización 4
Un artículo prolijo sobre cómo conectar juntos contenedores docker usando Serf :
Actualización 5
Ejecutar Docker en Mesos usando el framework Marathon
Tutorial del desarrollador Mesosphere Docker
Actualización 6
Ejecutar Docker en Tsuru ya que es compatible con Docker docker-cluster y segregated scheduler deploy
Actualización 7
Dockers orchestration orchestration
Actualización 8
Actualización 9
Google kubernetes
Actualización 10
Redhat ha rediseñado su PAAS openshift para integrar Docker
Actualización 11
Una versión de Docker NodeJS que envuelve la línea de comandos de Docker y la gestiona desde un archivo json.
Actualización 12
El nuevo servicio de contenedor de Amazon permite escalar en el clúster.
Actualización 13
Hablando estrictamente, Flocker no "escala" las aplicaciones, sino que está diseñado para cumplir una función relacionada de hacer que los contenedores de estado (¿servicios de bases de datos en ejecución?) Sean portátiles en múltiples hosts Docker:
Actualización 14
Un proyecto para crear plantillas portátiles que describen las aplicaciones de Docker:
Actualización 15
El proyecto Docker ahora está abordando la orquestación de forma nativa (ver announcement )
Actualización 16
Ver también:
Actualización 17
El proyecto Openstack ahora tiene un nuevo proyecto llamado "contenedor como servicio" llamado Magnum:
Muestra una gran promesa, permite la fácil configuración de marcos de orquestación Docker como Kubernetes y Docker enjambre.
Actualización 18
Rancher es un proyecto que está madurando rápidamente
Buena interfaz de usuario y fuerte enfoque en las infraestructuras Hyrbrid Docker
Actualización 19
El proyecto Lattice es una rama de Cloud Foundry para administrar clusters de contenedores.
Actualización 20
Docker recientemente compró Tutum:
Actualización 21
Administrador de paquetes para aplicaciones implementadas en Kubernetes .
Actualización 22
Vamp es una plataforma de código abierto y autoalimentada para gestionar arquitecturas orientadas a servicios (micro) que se basan en tecnología de contenedores.
Actualización 23
Un programador distribuido, altamente disponible y compatible con Datacenter.
De los muchachos que nos dieron Vagrant y otras herramientas poderosas.
Actualización 24
Solución de hospedaje de contenedores para AWS, de código abierto y basada en Kubernetes
Actualización 25
Contenedor basado en Apache Mesos alojado en Alemania
https://sloppy.io/features/#features
Y Docker Inc. también ofrece un servicio de alojamiento de contenedores llamado nube Docker
Actualización 26
Jelastic es un servicio PAAS alojado que escala contenedores automáticamente.
Openshift chicos también crearon un proyecto. Puede encontrar más información here , pruebe el contenedor de prueba e información detallada Geard . El único problema es que la solución es Redhat céntrica por ahora :)
Panamax: Docker Management for Humans. http://panamax.io/
Fig: Entornos de desarrollo rápidos y aislados utilizando Docker. fig.sh
Puedes probar Tsuru. Tsuru es un PaaS de código abierto inspirado en Heroku, y ya está con algunos productos en producción en Globo.com (brazo de Internet de la mayor empresa de televisión abierta en Brasil)
Gestiona todo el flujo de una aplicación, desde la creación del contenedor, implementación, enrutamiento (con hipache) con muchas funciones agradables como agrupación de acopladores, escalado de unidades, implementación segregada, etc.
Eche un vistazo en nuestra documentación a continuación: http://docs.tsuru.io/
Aquí nuestra publicación que cubre nuestro entorno: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/
Si bien somos grandes admiradores de Deis (deis.io) y estamos desplegándonos activamente en él, existen otras soluciones de implementación de estilo PaaS de Heroku como, por ejemplo:
Estibador de la gente de Wayfinder:
https://github.com/longshoreman/longshoreman
Decker de la gente de CloudCredo, usando CloudFoundry:
http://www.cloudcredo.com/decker-docker-cloud-foundry/
En cuanto a la orquestación directa, el proyecto Centurion de código abierto de NewRelic parece bastante prometedor:
Un enfoque sensato para escalar Docker podría ser:
- Cada servicio será un contenedor de docker
- Descubrimiento de servicio dentro del contenedor administrado a través de enlaces ( nueva función del acoplador 0.6.5 )
- Los contenedores se desplegarán a través de Dokku
- Las aplicaciones serán administradas a través de Shipyard que a su vez está utilizando hipache
Otro acoplador abierto proyecto de Yandex:
Una opción que no se menciona en otras publicaciones es Helios. Está construido por Spotify y no trata de hacer demasiado.
deis automatiza la escala de los contenedores Docker (entre otras cosas).
Deis (pronunciado DAY-iss) es un PaaS de código abierto que facilita la implementación y administración de aplicaciones en sus propios servidores. Deis se basa en Docker y coreos para proporcionar un PaaS ligero con un flujo de trabajo inspirado en Heroku.
Aquí está el flujo de trabajo del desarrollador:
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 implementa automáticamente sus contenedores Docker en un clúster CoreOS y configura los enrutadores Nginx para enrutar las solicitudes a contenedores Docker saludables. Si un host muere, los contenedores se reinician automáticamente en otro host en segundos. Simplemente busque la URL proxy o use deis open
para deis open
a su aplicación.
Algunos otros comandos útiles:
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
Para ver esto en acción, consulte el video de la terminal en http://deis.io/overview/ . También puede obtener más información sobre los conceptos de Deis o acceder directamente a la implementación de su propio PaaS privado .