Únete a la Comunidad de Directivos de Tecnología, Ciberseguridad e Innovación Byte TI

Encontrarás un espacio diseñado para líderes como tú.

managed kubernetes ovh contenedores .net

Kubernetes y contenedores impulsan las aplicaciones del futuro

Los contenedores y Kubernetes son el motor del cambio que permite que el sector esté reinventando la manera de desarrollar y ejecutar las aplicaciones e impulsando la eficiencia informática de las empresas. Los contenedores son una unidad de software estándar que empaqueta el código y todas sus dependencias, para que una aplicación se ejecute de un modo rápido y fiable de un entorno informático a otro. Los contenedores facilitan el despliegue de las aplicaciones basadas en la nube, porque contienen toda la información necesaria para ejecutarlas en paquetes gestionables. En septiembre de 2020 anunciamos la adquisición de Portworx®, la plataforma de servicios de datos de Kubernetes líder del sector, por unos 370 millones de dólares, así que podemos afirmar con total seguridad que reconocemos la importancia de esta tecnología.

La importancia de la centralidad de los datos

Los datos son esenciales para las empresas del mañana. Las organizaciones digitales líderes utilizan nuevos componentes tecnológicos «cloud native» para procesar sus datos y obtener valor e información sobre ellos. Las aplicaciones nativas de la nube se han diseñado específicamente para operar de manera semejante a la nube, tanto si se encuentran en la nube pública como en las instalaciones locales, desde el primer día. Pueden desplegarse y repararse más rápidamente y moverse entre diferentes entornos con facilidad. Las aplicaciones nativas de la nube normalmente se componen de microservicios y se empaquetan en contenedores. Esta nueva serie de aplicaciones nativas de la nube incluye un nuevo conjunto de aplicaciones: aplicaciones que analizan datos de transmisión en tiempo real, aplicaciones que indexan cantidades enormes de datos para realizar búsquedas y aplicaciones que entrenan a los algoritmos de aprendizaje automático con conjuntos de datos cada vez más grandes. Y, sin duda, esta revolución nativa de la nube está impulsada por una combinación de contenedores y Kubernetes.

Los contenedores permiten ejecutar de manera eficiente las aplicaciones desagregadas, a gran escala, con gran fluidez y con unos costes generales mínimos, mientras que Kubernetes crea la orquestación automatizada que puede reorganizar todos esos fragmentos de aplicaciones y ensamblarlos para formar una aplicación compuesta según sea necesario.

La adopción de los contenedores habla por sí sola

El ritmo de adopción de esta nueva serie de aplicaciones nativas de la nube es asombroso. Según 451 Research, el 95% de las nuevas aplicaciones se desarrollan en contenedores. Las empresas están cambiando sus estrategias de nube para pasarse a una estrategia multinube y los contenedores son un elemento clave de esta transformación. Gartner informa de que el 81% de las empresas ya se han pasado a la multinube y trabajan con más de dos proveedores de nube. Gartner también prevé que el 85% de todas las empresas globales utilizarán contenedores para la producción en 2025, lo que supone un aumento enorme respecto al 35% de 2019.

Todavía se trata de un mercado incipiente con un potencial de crecimiento muy grande, así que es intrínsecamente difícil de predecir su evolución, pero IDC prevé que solo el mercado comercial de software para infraestructura de contenedores superará los 1.500 millones de dólares en 2022 y las empresas están muy atentas a ello.

Los microservicios y los contenedores, una combinación perfecta

De manera resumida, podemos decir que los microservicios son las funciones individuales que hay en una aplicación y que constituyen la base del enfoque de la arquitectura para el desarrollo de las aplicaciones. Los microservicios permiten que los equipos informáticos desarrollen y ejecuten más fácilmente las aplicaciones que sus usuarios quieren y necesitan para mantenerse por delante de sus competidores. Muchas de las mayores aplicaciones empresariales y de consumo actuales se ejecutan en microservicios, lo que demuestra que no es solo una tendencia para organizaciones pequeñas, sino que también es válida para las organizaciones más grandes y complejas. De hecho, cuanto mayor es la organización, más beneficios obtiene de la adopción de los microservicios, porque los equipos suelen estar diseminados y hay una comunicación directa limitada entre ellos.

Los contenedores y Kubernetes son el motor del cambio que permite que el sector esté reinventando la manera de desarrollar y ejecutar las aplicaciones

¿Cuándo ha sido la última vez que has recibido una notificación de mantenimiento de tu servicio de streaming favorito para decirte que no puedes acceder a sus servicios? Es algo que no ocurre nunca. Porque nunca es un buen momento para actualizar estos servicios, ya que siempre habrá alguien haciendo una maratón de una nueva serie. El principio de los microservicios establece que hay que dividir una aplicación en piezas más pequeñas que se comunican a través de API, lo que permite que cada parte pueda actualizarse de manera independiente respecto de las otras partes. Gracias a ello, si un servicio de streaming tiene que actualizar su funcionalidad de restablecimiento de la contraseña, no es necesario dejar a millones de usuarios sin acceso al servicio. Esta característica es un microservicio diferente que puede actualizarse por separado. El resultado son desarrolladores felices y usuarios contentos.

Los microservicios han llegado para quedarse y serán la base de las aplicaciones del futuro. ¿En qué tipo de entorno hay que ejecutarlos? Los contenedores son el componente perfecto para los microservicios. Ofrecen un entorno ligero y homogéneo para estos, que puede seguir a la aplicación desde el escritorio de los desarrolladores hasta el despliegue final, pasando por la fase de pruebas. Además, los contenedores pueden ejecutarse en máquinas físicas o virtuales y se ponen en marcha en segundos o incluso en milisegundos, es decir, más rápidamente que las máquinas virtuales.

Empaquetar las aplicaciones con sus dependencias

Tradicionalmente, los paquetes de software han incluido todo el código necesario para ejecutar la aplicación en un sistema operativo concreto, como Windows o Linux. Sin embargo, para ejecutar una aplicación se necesita algo más que el simple código de esta, se necesitan otras aplicaciones. Por ejemplo, una aplicación para buscar cotizaciones bursátiles puede usar una biblioteca para convertir los nombres de las empresas en símbolos de las acciones y a la inversa. Esta funcionalidad es genérica y no genera un valor añadido, pero es importante para permitir que un usuario teclee «Apple» y obtenga la acción «AAPL». La biblioteca es un ejemplo de una dependencia. Sin que el equipo de TI lo sepa, cualquier aplicación puede tener cientos de este tipo de dependencias.

Una de las principales razones por las que los contenedores se han hecho tan populares es que han proporcionado un mecanismo y un formato para empaquetar el código de la aplicación, con sus dependencias, de una manera que hace que sea fácil ejecutar una aplicación en diferentes entornos. Esto ha resuelto una gran dificultad de los desarrolladores, que se enfrentaban constantemente a problemas de compatibilidad de entorno entre los entornos de desarrollo, los entornos de prueba y la producción. Al usar los contenedores para empaquetar sus aplicaciones, han podido «codificar una vez y ejecutar en cualquier parte», acelerando muchísimo el proceso de entrega de las aplicaciones.

No todos los servicios de contenedores se crean de la misma manera

Por lo que se refiere a los retos, la primera generación de aplicaciones nativas de la nube se diseñó para ser sin estado, utilizando contenedores que realizaban el trabajo de la aplicación, pero que no tenían que almacenar ningún dato persistente en volúmenes asociados. Sin embargo, a medida que el uso de los contenedores evoluciona, los desarrolladores van creando cada vez más aplicaciones con estado dentro de los contenedores, aplicaciones que tienen que almacenar datos en un volumen que sea persistente y se conserve. Aquí es donde el mundo del almacenamiento empieza a plantear retos. La flexibilidad y la accesibilidad de los contenedores se convierten en obstáculos y cuellos de botella en la capa de almacenamiento y las capacidades de almacenamiento sencillas que hemos dado por descontadas durante años en la serie tradicional de aplicaciones (alta disponibilidad, recuperación de desastres, copias de seguridad, encriptado), pasan a ser retos en el mundo de los contenedores. Y lo que es peor, muchas veces cada aplicación tiene su propia estrategia de almacenamiento, lo que hace que resulte imposible garantizar la conformidad de los datos y de los estándares en una organización.

Por esta razón, como mejor práctica recomendamos elegir una solución que proporcione los servicios de datos nativos de Kubernetes que necesitan tanto las aplicaciones nativas de la nube como las tradicionales (ya que estas últimas no van a desaparecer en un futuro próximo). Esto significa que hay que proporcionar servicios de almacenamiento para protocolo de bloque, archivos y objetos, con múltiples clases de rendimiento y aprovisionados bajo demanda tal como Kubernetes requiera. También implica proporcionar un acceso instantáneo a los datos, protección frente a todo tipo de fallos, capacidad para mover los datos entre nubes e incluso hacia/desde el extremo y un sólido nivel de seguridad sin importar adónde vaya la aplicación. Si las organizaciones hacen todo esto, verán por sí mismas por qué Kubernetes se ha convertido en el ingrediente no tan secreto de las organizaciones modernas.

Miguel Pleite, Systems Engineer Manager de Pure Storage

Deja un comentario

Scroll al inicio