Conecta con nosotros

A Fondo

Kubernetes: cinco dolores de cabeza a los que se enfrentan los desarrolladores y la mejor forma de dar el salto

Publicado el

Kubernetes ha cruzado finalmente el Rubicón. Tras años de hype y de ser considerada como una tecnología emergente, cada vez son más los estudios y encuestas que apuntan a que una gran parte de las empresas han abrazado este sistema de orquestación de contenedores.

Uno de los últimos, elaborado por la Cloud Native Computing Foundation apunta incluso que el 96% de las organizaciones o ya están utilizando o están evaluando el uso de esta tecnología.

El éxito de este orquestador pasa por su escalabilidad, el aislamiento de procesos y aplicaciones, su facilidad para el despliegue de contenedores o su alta disponibilidad…pero desde luego la facilidad de uso o su comodidad no está entre sus ventajas más destacadas.

De hecho, los desarrolladores que se enfrentan a la necesidad de depurar aplicaciones o corregir posibles errores en los despliegues, suelen enfrentarse casi de forma inevitable a unos cuantos dolores de cabeza. Y es que entre los problemas a los que se enfrentan destacan los siguientes:

Recrear el entorno en una máquina local

Una de las formas más habituales en la que los desarrolladores de software suelen depurar aplicaciones y corregir posibles errores es recrear el escenario al que se enfrentan en su equipo local, de modo que pueden implementar cambios sin que estos impacten a los equipos de producción.

Pero cuando se trabaja con Kubernetes y microservicios, a menudo el desarrollador se encuentra con entornos realmente complejos, en los que conviven un gran número de imágenes, servidores y configuraciones distintas. En muchos de estos casos, recrear el entorno en una máquina local es prácticamente imposible, por lo que la corrección de errores y la depuración de aplicaciones solo puede hacerse de forma parcial.

Kubernetes sigue consumiendo muchos recursos

Trabajar con Kubernetes en un equipo local puede llegar a consumir una enorme cantidad de recursos, ya que requiere de unos cuantos componentes obligatorios de los que no podemos prescindir.

Para cada servicio específico que queremos depurar, deberemos recrear localmente todo el entorno que lo soporta, incluyendo Docker o cualquier otra capa de gestión. Además deberemos utilizar Docker Compose para ejecutar el código de forma local y obtener una nueva imagen.

Todo este proceso puede llegar a ser realmente engorroso, e incluso si contamos con un equipo de primer nivel, la ejecución de Kubernetes puede afectar seriamente al rendimiento de nuestro ordenador…lo que puede llegar a ser realmente frustrante para los desarrolladores.

La nueva herramienta kubectl no es precisamente amigable

En 2021 el proyecto Kubernetes introdujo la herramienta kubectl como una forma de ayudar a los desarrolladores a mejorar la forma en la que depuraban sus aplicaciones.

La función funciona en conjunto con los «ephemeral containers», que son contenedores temporales que se ponen en marcha sólo para inspeccionar los pods en funcionamiento. Se supone que facilita la resolución de problemas y la reproducción de errores. Antes de esto, no se podían crear nuevos contenedores en los pods en funcionamiento.

El problema es que además de ser una herramienta engorrosa, su utilidad es limitada, ya que sólo permite ver información del sistema operativo, como son pueden ser las variables del entorno. En cambio, los ingenieros de software a menuda necesitan profundizar a nivel de aplicación, ver los datos que se procesan allí y entender cómo fluye el código y cuál es su estado.

Para conseguirlo, necesitarán añadir una nueva línea de registro, reconstruir el contenedor y actualizar el despliegue subyacente a la nueva versión.

Depurar aplicaciones en Kubernetes es log-dependiente

Cuando se están depurando errores en Kubernetes, los desarrolladores depende en gran medida de los logs que se están ejecutando en ese momento concreto.

Eso quiere decir que dependen de lo que se ha implementado en el pasado y confiar en que los logs se organizaron o analizaron correctamente. En caso contrario, el desarrollador tendrá que volver a desplegar toda la aplicación para aplicar correctamente los cambios, lo que lleva mucho tiempo y requiere permisos elevados en producción.

Resulta complicado implementar cambios a escala

Cuando los errores se replican en un despliegue a escala, puede ser complicado entrar «en las tripas» de Kubernetes para entender qué es lo que está pasando.

A veces, incluso dentro de un solo clúster, un problema puede estar ocurriendo en un nodo y no en el otro, por lo que precisar el problema y la causa raíz es muy complicado.

Por otro lado, reproducir un fallo concreto en Kubernetes puede legar a ser todo un arte, ya que replicar millones de peticiones no es fácil. A menudo, se necesitan varias herramientas diferentes para reproducir el escenario, y puede ser imposible determinar qué contenedor, pod o recurso ha sido el primero en «romperse» con tanta actividad.

La forma más rápida de dar el salto

Trabajar con Kubernetes, como hemos visto, no siempre es sencillo. Pero no tiene por qué ser tampoco un dolor de cabeza. Y precisamente, facilitar la vida a los desarrolladores que se mueven en este entorno es uno de los objetivos de VMware.

Tal y como aseguran desde la empresa, su oferta vSphere with Tanzu pone Kubernetes al alcance de millones de administradores de TI de todo el mundo para fomentar el rápido desarrollo de aplicaciones en la infraestructura de TI existente, con lo que consigue que puedan superar con facilidad los obstáculos que se presentan.

Al mismo tiempo, proporciona una infraestructura preparada para desarrolladores y permite coordinar con facilidad los equipos de DevOps y TI, permitiendo un aprovisionamiento sencillo, rápido y en régimen de autoservicio en cuestión de minutos.

Si quieres descubrir cómo VMware puede ayudar a simplificar tus operaciones en Kubernetes, no te pierdas «VMware vSphere with Tanzu», una guía que te ofrece un enfoque único sobre este desarrollo y que cambiará la forma en la que afrontas la innovación y la gestión de contenedores y microservicios en tu empresa. ¡No te lo pienses!

Periodista tecnológico con más de una década de experiencia en el sector. Editor de MuyComputerPro y coordinador de MuySeguridad, la publicación de seguridad informática de referencia.

Lo más leído