Sebastián Martínez, Responsable de desarrollo de negocio de SUSE en España “Las cosas buenas siempre vienen a pares: Kubernetes and Cloud Foundry”
Actualmente son los dos proyectos de contenedores más potentes del mercado. Pero, ¿significa eso que pueden trabajar juntos o que son incompatibles? Como explica Sebastián Martínez, Responsable de desarrollo de negocio de SUSE en España, con la contenerización de Cloud Foundry, Kubernetes se encargará de las tareas de administración, permitiendo que los dos recursos se combinen para formar un sólido equipo.
Los expertos en cloud llevan mucho tiempo anticipando lo que podía llegar en 2018. El primer puesto en la lista de predicciones, por buenas razones, era el aumento en el uso de contenedores de aplicaciones. Cada vez son más las empresas que están girando hacia soluciones de contenedores en IT- de acuerdo con un estudio realizado por la firma analista 451 Research, el mercado crecerá de 762 millones de dólares en 2016 a 2.700 millones de dólares en 2020. Dentro de este mercado en expansión, hay dos actores principales, Kubernetes y Cloud Foundry, considerados por algunos profesionales de TI como proyectos rivales. Existen ciertas funcionalidades que se solapan entre ambas tecnologías:
Ambas tienen propósitos complementarios que se dirigen hacia el mismo objetivo. Ambas adoptan planteamientos que facilitan a las organizaciones la gestión de su entorno global de nube. Y sin embargo, Kubernetes y Cloud Foundry forman un equipo casi inexpugnable. Hay tres razones para ello.
La contenerización es la nueva virtualización
Los contenedores ofrecen nuevas posibilidades de virtualización sin sacrificar rendimiento. Ya que los contenedores son más rápidos y eficientes que los entornos de máquinas virtuales convencionales. Siendo mucho más fáciles de crear y de utilizar de una forma productiva gracias a herramientas como el motor de contenedores y orquestadores.
A día de hoy, dado el rápido ritmo del progreso tecnológico y de aceptación en el mercado de la herramienta de orquestación de Kubernetes, el sector se está dirigiendo hacia un nuevo estándar para plataformas de infraestructura basadas en contenedores. Y por ello ponemos Kubernetes encima de la mesa. En breve, al igual que han hecho con la virtualización, las empresas de TI trabajarán con Kubernetes como una capa siempre presente en todas las infraestructuras de sistemas. Durante mucho tiempo, Cloud Foundry ha estado buscando como hacer que las aplicaciones estén disponibles con contenedores, incluso aunque la propia plataforma se gestione en un entorno tradicional con máquinas virtuales. Por lo que para los usuarios de Cloud Foundry, la integración con Kubernetes es apasionante – ya que incrementa disponibilidad de una infraestructura basada en contenedores de alta calidad que facilita su trabajo.
Un uso muy extendido de los contenedores es la automatización de los procesos de desarrollo dentro del modelo DevOps, especialmente cuando hablamos de entornos de contenedores como servicio. En este escenario, cada vez son más las empresas que utilizan contenedores para automatizar sus propios flujos de trabajo de desarrollo, a través de un sistema pipeline build. En otras palabras, las aplicaciones son servidas automáticamente en una plataforma de forma contenerizada. En la mayoría de los casos, se trata de aplicaciones web o aplicaciones de servidor. Como ejemplo, en el sector de la automoción, y en particular compañías que están trabajando en el campo del machine learning ya están utilizando este tipo de aprovisionamiento acelerado, pero en principio, todas las industrias se pueden beneficiar siempre que dispongan de un servidor.
En consecuencia, un número cada vez mayor de empresas, organismos públicos, instituciones y proveedores de software independientes están sacando provecho de esta nueva infraestructura y están empaquetando sus aplicaciones en contenedores. Por lo tanto, es lógico que Cloud Foundry siga este ejemplo. Las últimas iniciativas en torno a la contenerización están haciendo realidad esta idea. Por lo tanto, Cloud Foundry puede utilizarse fácilmente, en cualquier lugar, lo que requiere sólo una fracción de los recursos que necesitan las implementaciones basadas en máquinas virtuales. En su forma contenerizada, Cloud Foundry también puede utilizar Kubernetes para iniciar nuevos nodos con mayor rapidez, lo que es esencial para restaurar o escalar la plataforma. Y dado que cada vez más personas están adquiriendo conocimientos sobre Kubernetes, sus habilidades pueden utilizarse para reducir los costes de la gestión de Cloud Foundry. Todo ello son grandes ventajas que no deben subestimarse.
Las aplicaciones no son contenedores
A pesar del poder de la contenerización y de la eficacia de Kubernetes, sigue habiendo problemas a nivel de contenedores: ¿Dónde y cuándo debemos lanzar un nuevo contenedor? ¿Cómo funcionan mis contenedores?
El trabajo con aplicaciones se realiza de una manera completamente diferente. Esto se debe a que las aplicaciones constituyen una estructura compuesta, que a menudo comprende un gran número de contenedores distribuidos a través de una red. Para proporcionar una aplicación, los desarrolladores deben crear y gestionar todos estos contenedores de forma coordinada. Y si necesitan proporcionar aplicaciones a gran escala, necesitan herramientas para automatizar este trabajo. Aquí es precisamente donde entra en juego Cloud Foundry, ya que ofrece abstracciones de un mayor nivel, que simplifican y automatizan la entrega de aplicaciones. Estas abstracciones y la creación y gestión oculta de los contenedores subyacentes proporcionan a usuarios y operadores un gran incremento de la productividad.
Kubernetes puede gestionar Cloud Foundry
Para los usuarios de Kubernetes, Cloud Foundry es la mejor forma de añadir funciones de gestión de aplicaciones. Sin embargo, hasta hace poco, la combinación de estas tecnologías era bastante difícil porque las plataformas se habían desarrollado de forma completamente independiente una de otra. La buena noticia es que las cosas han cambiado. Desde que Cloud Foundry ha sido contenerizado y puede ser utilizado y gestionado por Kubernetes, es relativamente sencillo incorporar el poder de Cloud Foundry a un entorno Kubernetes ya existente. Se trata de una novedad muy bien acogida por los usuarios, ya que anteriormente no existían herramientas potentes y sofisticadas para la gestión de aplicaciones.
¿Qué significa todo esto exactamente? Como orquestador, Kubernetes proporciona la base para trabajar con contenedores. Cloud Foundry puede utilizarse como una plataforma «todo en uno». Como distribución de Cloud Foundry, proporciona a los desarrolladores un paquete completo. La plataforma recibe el código fuente del desarrollador e identifica qué lenguaje y qué tipos de contenedores deben utilizarse en función de los paquetes de compilación. La aplicación se compila, se genera y se conteneriza automáticamente. La plataforma proporciona incluso el escalado deseado. Kubernetes también ofrece todas estas posibilidades; sin embargo, los pasos de automatización están preintegrados en productos como SUSE Application Platform, lo que supone un ahorro considerable de tiempo y esfuerzo para los desarrolladores.
Dos mejor que uno
Hay otra razón muy importante para usar Kubernetes y Cloud Foundry juntos. Si los desarrolladores combinan modelos de gestión de código centrados en contenedores y aplicaciones, obtienen lo mejor de ambos mundos en una sola aplicación. Cloud Foundry admite una aproximación orientada a la aplicación para la gestión del código y esta basado en una gama definida de arquitecturas de aplicaciones y patrones de entrega.
Si los desarrolladores quieren crear aplicaciones basadas en la nube utilizando estos patrones disponibles, Cloud Foundry ofrece un gran incremento en la productividad. Pero no todo el código desarrollado encaja en estos patrones y por lo tanto los desarrolladores también necesitan un modelo de gestión centrado en contenedores más flexible, como el soportado por Kubernetes, para cerrar esta brecha y acercar estos dos modelos en la gestión del código de la aplicación. En estos casos, vale la pena sacrificar parte de la productividad ofrecida por Cloud Foundry para beneficiarse de la mayor flexibilidad de Kubernetes. De esta manera, los desarrolladores pueden crear nuevas aplicaciones web nativas en la nube con múltiples microservicios, incluyendo el almacenamiento de datos persistentes en el back-end.
La mayoría de los microservicios probablemente pueden ser gestionados directamente desde Cloud Foundry, lo que hace posible proporcionar estos componentes para maximizar la productividad. Sin embargo, el almacenamiento puede requerir una implementación definida por el usuario, en cuyo caso también debe proporcionarse como contenedor independiente a través de Kubernetes. Al volver a Cloud Foundry, los desarrolladores pueden integrar el almacenamiento en la aplicación web a través de service brokers, lo que garantiza un puente eficaz entre los dos sistemas de gestión y les permite hacer un seguimiento de toda la aplicación desde Cloud Foundry. Esta combinación forma un equipo sin igual que ofrece a las organizaciones lo mejor en microservicios, contenedores y software libre. En última instancia, las empresas no solo ahorran tiempo y esfuerzo con el aprovisionamiento dinámico y el escalado automatizado, sino que también pueden reducir el impacto de sus servicios de TI con Kubernetes y las modernas plataformas basadas en Cloud Foundry. Los primeros pasos en el moderno mundo de DevOps y el machine learning son, por lo tanto, más rápidos, más sencillos y requieren menos esfuerzo.
Sebastián Martínez es Responsable de desarrollo de negocio de SUSE en España
. Leer artículo completo en Frikipandi Sebastián Martínez, Responsable de desarrollo de negocio de SUSE en España «Las cosas buenas siempre vienen a pares: Kubernetes and Cloud Foundry».