run - ¿Cuál es la diferencia entre Cloud Foundry y Docker?
docker tag example (1)
Soy un desarrollador de Java. Usamos Weblogic para alojar nuestras aplicaciones. Me han dicho que busque reemplazar weblogic con una alternativa de código abierto. Estamos planeando usar con SpringBoot. También estamos viendo Docker / Cloud Foundry. Sin embargo, Docker / Cloud Foundry es un territorio nuevo para mí.
- ¿Alguien puede decirme la diferencia entre Cloud Foundry y Docker?
- Si usamos Docker pero no fundición en la nube, ¿qué nos estamos perdiendo?
- Si usamos Cloud Foundry pero no Docker, ¿qué nos estamos perdiendo?
Gracias por tu ayuda.
Docker es una tecnología para crear y ejecutar "contenedores" de Linux. En cierto sentido, puede pensar en estas máquinas virtuales ligeras. Un contenedor de docker para la aplicación SpringBoot consistirá en una imagen de docker, que básicamente contendrá un sistema de archivos con todas las cosas necesarias para ejecutar su aplicación (JVM, su código fuente, etc.) y metadatos del contenedor de docker, que le dice al demonio de docker cómo ejecutar la aplicación dentro de la imagen (por ejemplo, qué variables de entorno configurar, qué puertos exponer, qué comandos ejecutar, etc.). El Docker Daemon utilizará características de Linux como cgroups y espacios de nombres del núcleo para ejecutar el contenedor de forma aislada de otros procesos que se ejecutan en la máquina host. Docker es de bajo nivel, ya que necesita especificar todo lo que entra en la imagen, y ejecuta cosas arbitrarias, es decir, todo lo que ponga en su imagen y le diga que se ejecute. El contenedor de docker que obtienes es muy portátil, por lo que puedes construir, probar y ejecutar tu contenedor de docker localmente para el desarrollo, y luego enviar ese contenedor a un host de producción que también tiene un demonio de docker ejecutándose, y estar seguro de que estás obteniendo exactamente lo mismo.
Cloud Foundry trabaja en una capa más alta de abstracción, siendo las aplicaciones un concepto de primera clase. Cloud Foundry utiliza tecnología de contenedorización similar a la ventana acoplable para construir imágenes portátiles y luego ejecutarlas, pero es un detalle de implementación y no necesita especificar todos los detalles. En las versiones más recientes de Cloud Foundry, las imágenes de Docker también serán compatibles para que pueda especificar los detalles si lo desea, pero también tiene un flujo de trabajo "buildpack", donde detectará automáticamente una aplicación Java cuando presiona su aplicación y sabrá incluya todas las cosas necesarias para el tiempo de ejecución de Java cuando construya la imagen.
Con Cloud Foundry, dado que las aplicaciones y la administración de aplicaciones son conceptos de primera clase, y dado que funciona a un nivel superior, obtienes todo tipo de cosas de forma gratuita.
Por ejemplo, puede escalar fácilmente su aplicación horizontalmente (agregar instancias), por ejemplo,
cf scale my_app -i 5
o verticalmente,
cf scale my_app -m 2G
(para configurar la memoria asignada para cada instancia).
Obtiene registros de aplicaciones de transmisión:
cf logs my_app
.
Cloud Foundry le brinda mucha tolerancia a fallas de forma gratuita, por lo que si una de las instancias de su aplicación falla, o el proceso que ejecuta los contenedores de la aplicación se bloquea (lo que es similar al demonio Docker), o si la máquina virtual host que ejecuta el contenedor - el proceso de ejecución muere, o el clúster de hardware donde reside esa VM muere, Cloud Foundry recuperará automáticamente sus instancias.
El Docker Daemon es un proceso único que puede ejecutar en cualquier máquina Linux. Entonces, si está haciendo algo pequeño y simple, y necesita hacer la mayor parte de la configuración usted mismo, puede ser más fácil comenzar a funcionar localmente y en desarrollo usando Docker. Con Docker también es más fácil tener acceso y compartir la imagen de Docker que creas, así que una vez que hayas creado una imagen, puedes ponerla en un repositorio de Docker, y luego puedes ejecutarla en cualquier otro demonio de Docker. Con Cloud Foundry, la imagen construida generalmente es un detalle de implementación y realmente no tiene acceso a ella, por lo que, por ejemplo, no pudo extraer esa imagen y ejecutarla en otra instalación de Cloud Foundry.
Hay varios proyectos por ahí destinados a hacer que Cloud Foundry sea más accesible y fácil de configurar, al tiempo que le brinda muchos de los beneficios de un PaaS. Algunos de estos proyectos también tienen como objetivo permitirle combinar el uso de Docker y los beneficios de Docker, al tiempo que obtiene muchos de los beneficios de PaaS que obtiene de Cloud Foundry.
Vea Lattice y Cloud Foundry en BOSH-Lite .
También hay varios servicios alojados en Cloud Foundry.
Consulte Servicios web fundamentales e IBM BlueMix
También hay una gran cantidad de proyectos que no son CF destinados a poner una capa de plataforma alrededor de la tecnología de base docker, tanto en variedades de servicio propio como de servicio alojado.
Vea el proyecto Kubernetes de Google y Amazon Container Service
Divulgación completa: soy un ingeniero de software que trabaja en Cloud Foundry en Pivotal