Como confirmador de CloudFoundry (pasado) y Kubernetes (presente), probablemente esté calificado de manera única para responder a este.
Similar a PaaS
Me gusta llamar a CloudFoundry una "Aplicación PaaS" ya Kubernetes un "Container PaaS", pero la distinción es bastante sutil y fluida, dado que ambos proyectos cambian con el tiempo para competir en los mismos mercados.
La distinción entre los dos es que CF tiene una capa de ensayo que toma una aplicación de usuario (de 12 factores) (por ejemplo, jar o gem) y un paquete de construcción estilo Heroku (por ejemplo, Java + Tomcat o Ruby) y produce una gota (análoga a una Imagen de Docker). CF no expone la interfaz de contenedorización al usuario, pero Kubernetes sí.
Audiencia
La audiencia principal de CloudFoundry son los desarrolladores de aplicaciones empresariales que desean implementar aplicaciones sin estado de 12 factores utilizando paquetes de compilación estilo Heroku.
La audiencia de Kubernetes es un poco más amplia, e incluye tanto a los desarrolladores de aplicaciones sin estado como a los de servicios con estado que proporcionan sus propios contenedores.
Esta distinción podría cambiar en el futuro:
Comparación de funciones
A medida que ambos proyectos maduran y compiten, sus similitudes y diferencias cambiarán. Así que tome la siguiente comparación de características con un grano de sal.
Tanto CF como K8 comparten muchas características similares, como contenedorización, espacio de nombres, autenticación,
Ventajas competitivas de Kubernetes:
- Agrupe y escale pods de contenedores que comparten una pila de red, en lugar de escalar de forma independiente
- Trae tu propio contenedor
- Capa de persistencia con estado
- Comunidad OSS más grande y activa
- Arquitectura más extensible con componentes reemplazables y complementos de terceros
- GUI web gratuito
Ventajas competitivas de CloudFoundry:
- Autenticación madura, agrupación de usuarios y compatibilidad con múltiples inquilinos [x]
- Trae tu propia aplicación
- Balanceador de carga incluido
- Implementado, escalado y mantenido vivo por BOSH [x]
- Agregación robusta de registros y métricas [x]
- GUI web empresarial [x]
[x] Estas funciones no son parte de Diego ni están incluidas en Lattice.
Despliegue
Una de las ventajas competitivas de CloudFoundry es que tiene un motor de implementación maduro, BOSH, que permite funciones como el escalado, la resurrección y el monitoreo de los componentes centrales de CF. BOSH también admite muchas capas de IaaS con una abstracción de proveedor de nube conectable. Desafortunadamente, la curva de aprendizaje de BOSH y la gestión de la configuración de implementación son una pesadilla. (Como confirmador de BOSH, creo que puedo decir esto con precisión).
La abstracción de implementación de Kubernetes aún está en su infancia. Hay varios entornos de destino disponibles en el repositorio principal, pero no todos funcionan, están bien probados o son compatibles con los desarrolladores principales. Esto es principalmente una cuestión de madurez. Se podría esperar que esto mejore con el tiempo y aumente la abstracción. Por ejemplo, Kubernetes en DCOS permite desplegar Kubernetes a un existente DCOS clúster con un único comando.
Contexto histórico
Diego es una reescritura del Droplet Execution Agent de CF. Se desarrolló originalmente antes de que se anunciara Kubernetes y ha adquirido más funciones a medida que evoluciona el panorama competitivo. Su objetivo original era generar gotas (aplicación de usuario + paquete de compilación CF) y ejecutarlas en contenedores Warden (renombrado Garden cuando se reescribe en Go). Desde su inicio, también se ha vuelto a empaquetar como Lattice , que es algo así como CloudFoundry-lite (aunque ese nombre fue tomado por un proyecto existente). Por esa razón, Lattice es algo parecido a un juguete, ya que ha reducido deliberadamente la audiencia y el alcance de los usuarios, faltando explícitamente características que lo harían "listo para la empresa". Características que CF ya ofrece. Esto se debe en parte a que Lattice se usa para probar los componentes principales, sin algunos de los gastos generales del CF más complejo, pero también puede usar Lattice en entornos internos de alta confianza donde la seguridad y la tenencia múltiple no son una preocupación tan grande. .
También vale la pena mencionar que CloudFoundry y Warden (su motor de contenedores) también son anteriores a Docker, por un par de años.
Kubernetes, por otro lado, es un proyecto relativamente nuevo que fue desarrollado por Google basado en años de uso de contenedores con BORG y Omega. Kubernetes podría considerarse como una orquestación de contenedores de tercera generación en Google, de la misma manera que Diego es una orquestación de contenedores de tercera generación en Pivotal / VMware (v1 escrito en VMware; v2 en VMware con la ayuda de Pivotal Labs; v3 en Pivotal después de que asumió el proyecto) .